{"version":3,"sources":["webpack:///./src/assets/images/pdf-icon.png","webpack:///./src/assets/images/docx_icon.png","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/core-js/modules/es6.array.reduce.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/xlsx/xlsx.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/xlsx/jszip.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./src/views/apps/projects/imagePopUp.vue?4a84","webpack:///./src/services/inventoryService.js","webpack:///./node_modules/xlsx/dist/cpexcel.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/buffer/node_modules/isarray/index.js","webpack:///./src/views/apps/projects/challanDetails.vue?6c36","webpack:///src/views/apps/projects/challanDetails.vue","webpack:///./src/views/apps/projects/challanDetails.vue?1b98","webpack:///./src/views/apps/projects/challanDetails.vue","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/assets/images/excelLogo.png","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./src/services/expenseService.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./src/views/apps/expenses/creditNoteMasterView.vue?1ff0","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./src/services/shootLocationService.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/vue-awesome-swiper/dist/vue-awesome-swiper.js","webpack:///./src/services/departmentService.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/core-js/modules/_array-reduce.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./src/views/apps/projects/expenseDetails.vue?d8fc","webpack:///src/views/apps/projects/expenseDetails.vue","webpack:///./src/views/apps/projects/expenseDetails.vue?f760","webpack:///./src/views/apps/projects/expenseDetails.vue","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/ieee754/index.js","webpack:///./src/services/projectService.js","webpack:///./src/services/companyService.js","webpack:///./src/services/ContractService.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./src/views/apps/expenses/moveToBudget.vue?0bc1","webpack:///src/views/apps/expenses/moveToBudget.vue","webpack:///./src/views/apps/expenses/moveToBudget.vue?8411","webpack:///./src/views/apps/expenses/moveToBudget.vue","webpack:///./src/services/purchaseOrderService.js","webpack:///./src/assets/images/icons/export-excel.svg","webpack:///./node_modules/moment/locale/fr.js","webpack:///./src/views/apps/projects/imagePopUp.vue?cc9e","webpack:///src/views/apps/projects/imagePopUp.vue","webpack:///./src/views/apps/projects/imagePopUp.vue?2256","webpack:///./src/views/apps/projects/imagePopUp.vue?2204","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/en-SG.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/swiper/dist/js/swiper.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./src/views/apps/expenses/crList.vue?4577","webpack:///src/views/apps/expenses/crList.vue","webpack:///./src/views/apps/expenses/crList.vue?7b09","webpack:///./src/views/apps/expenses/crList.vue","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./src/views/components/extra-components/datetime-picker/DatetimePickerStartEnd.vue?09c5","webpack:///src/views/components/extra-components/datetime-picker/DatetimePickerStartEnd.vue","webpack:///./src/views/components/extra-components/datetime-picker/DatetimePickerStartEnd.vue?3f39","webpack:///./src/views/components/extra-components/datetime-picker/DatetimePickerStartEnd.vue","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./src/views/apps/expenses/poList.vue?e2f3","webpack:///src/views/apps/expenses/poList.vue","webpack:///./src/views/apps/expenses/poList.vue?32cc","webpack:///./src/views/apps/expenses/poList.vue","webpack:///./src/services/categoryService.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/vuejs-datepicker/dist/vuejs-datepicker.esm.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./src/views/apps/expenses/creditNoteMasterView.vue?8b0d","webpack:///./src/views/apps/expenses/creditNoteList.vue?53b0","webpack:///./src/views/apps/expenses/filteredCreditNote.vue?8169","webpack:///src/views/apps/expenses/filteredCreditNote.vue","webpack:///./src/views/apps/expenses/filteredCreditNote.vue?f2f3","webpack:///./src/views/apps/expenses/filteredCreditNote.vue","webpack:///src/views/apps/expenses/creditNoteList.vue","webpack:///./src/views/apps/expenses/creditNoteList.vue?18f1","webpack:///./src/views/apps/expenses/creditNoteList.vue","webpack:///src/views/apps/expenses/creditNoteMasterView.vue","webpack:///./src/views/apps/expenses/creditNoteMasterView.vue?0fff","webpack:///./src/views/apps/expenses/creditNoteMasterView.vue?54b0","webpack:///./node_modules/moment/locale/se.js"],"names":["module","exports","global","factory","this","moment","uzLatn","defineLocale","months","split","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","week","dow","doy","ml","monthsParseExact","meridiemParse","meridiemHour","hour","meridiem","minute","isLower","cv","output","affix","exec","dayOfMonthOrdinalParse","ordinal","plural","n","translate","number","withoutSuffix","key","isFuture","result","is","fo","ja","l","ll","lll","llll","isPM","input","now","period","monthsShortDot","monthsParse","monthsRegex","esDo","format","test","month","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","weekdaysParseExact","hours","arMa","processRelativeTime","gomLatn","$export","$reduce","P","F","reduce","callbackfn","arguments","length","frCh","enAu","b","suffixes","1","5","8","70","80","2","7","20","50","3","4","100","6","9","10","30","60","90","tr","a","c","da","tlPh","eu","th","XLSX","make_xlsx_lib","version","current_codepage","current_ansi","cptable","window","VALID_ANSI","i","push","CS2CP","0","77","128","129","130","134","136","161","162","163","177","178","186","204","222","238","255","69","set_ansi","cp","indexOf","reset_ansi","set_cp","reset_cp","char_codes","data","o","len","charCodeAt","utf16leread","String","fromCharCode","join","utf16beread","debom","c1","c2","slice","_getchar","x","_getansi","utils","decode","DENSE","DIF_XL","Base64","map","encode","c3","e1","e2","e3","e4","isNaN","charAt","replace","has_buf","Buffer","process","versions","node","Buffer_from","nbfs","from","e","buf","enc","bind","alloc","allocUnsafe","new_raw_buf","Array","new_unsafe_buf","s2a","s2ab","ArrayBuffer","view","Uint8Array","a2s","isArray","a2u","Error","ab2a","bconcat","bufs","concat","apply","chr0","chr1","SSF","make_ssf","_strrev","fill","pad0","v","t","pad_","rpad_","pad0r1","Math","round","pad0r2","p2_32","pow","pad0r","isgeneral","days","init_table","table_fmt","default_map","defi","default_str","frac","D","mixed","sgn","B","P_2","P_1","Q_2","Q_1","Q","A","floor","q","parse_date_code","opts","b2","date","time","dout","out","T","u","H","S","abs","date1904","Date","setDate","getDate","getFullYear","getMonth","getDay","fix_hijri","basedate","dnthresh","getTime","base1904","datenum_local","epoch","getTimezoneOffset","general_fmt_int","toString","_general_int","general_fmt_num","trailing_zeroes_and_decimal","strip_decimal","mantissa_zeroes_and_decimal","exp_with_single_digit","normalize_exp","small_exp","w","toFixed","toPrecision","toExponential","large_exp","general_fmt_num_base","V","log","LOG10E","substr","toUpperCase","general_fmt","write_date","type","fmt","val","ss0","tt","outl","outstr","commaify","j","_general_num","_general","write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","match","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","parseInt","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dec","_frac","carry","flr","write_num_flt","ffmt","ri","ff","oa","min","max","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","lastIndexOf","split_fmt","in_str","_split","abstime","fmt_is_date","eval_fmt","flen","dt","lst","hr","toLowerCase","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","is_date","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","f","lat","m1","m2","dateNF","table","load_entry","undefined","load","_table","get_table","load_table","tbl","XLMLFormatMap","SSFImplicit","dateNFregex","dateNF_regex","RegExp","dateNF_fix","Y","forEach","datestr","timestr","CRC32","DO_NOT_EXPORT_CFB","signed_crc_table","Int32Array","crc32_bstr","bstr","seed","C","crc32_buf","crc32_buf_8","crc32_str","_fs","CFB","fs","namecmp","R","Z","dirname","p","filename","write_dos_date","hms","getHours","getMinutes","getSeconds","write_shift","ymd","parse_dos_date","read_shift","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","parse_extra_field","blob","prep_blob","flags","sz","tgt","mtime","atime","ctime","mt","get_fs","parse","file","options","parse_zip","mver","ssz","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","fat_addrs","mv","check_get_mver","header","check_shifts","dir_cnt","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","name","ENDOFCHAIN","files","Paths","FileIndex","FullPaths","read_directory","build_full_paths","shift","raw","HEADER_SIGNATURE","nsectors","ceil","FI","FP","pl","dad","get_mfat_entry","entry","payload","mini","start","size","MSSZ","__readInt32LE","new_buf","cnt","sector","get_sector_list","chkd","buf_chain","modulus","addr","nodes","__toBuffer","sl","k","seen","minifat_store","namelen","__utf16le","color","clsid","state","ct","read_date","storage","content","offset","__readUInt32LE","read_file","readFileSync","read","init_cfb","cfb","root","CLSID","seed_cfb","nm","find","rebuild_cfb","gc","_file","pop","HEADER_CLSID","sort","elt","_write","_opts","fileType","write_zip","mini_size","fat_size","mini_cnt","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","path","UCFullPaths","UCPaths","UCPath","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","write_file","writeFileSync","write","use_zlib","zlib","InflateRaw","InflRaw","_processChunk","_finishFlushFlag","bytesRead","console","error","message","_inflateRawSync","usz","_inflate","_deflateRawSync","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","read_bits_3","read_bits_4","read_bits_5","read_bits_7","read_bits_n","realloc","copy","set","zero_fill_array","_deflateRaw","boff","off","build_tree","clens","cmap","MAX","maxlen","ccode","bl_count","Uint16Array","ctree","cleni","fix_lmap","fix_dmap","dlens","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","next_code","hcodes","h1","h2","inflate","outbuf","woff","OL","max_len_1","max_len_2","bits","code","len_eb","dst_eb","dst","warn_or_throw","wrn","msg","fcnt","start_cd","csz","efsz","fcsz","EF","parse_local_file","meth","crc32","_csz","_usz","ef","_crc32","cfb_add","unsafe","cdirs","method","compression","desc","fp","fi","crcs","sz_cd","namebuf","cfb_new","fpath","cfb_gc","cfb_del","splice","cfb_mov","old_name","new_name","writeFile","ReadShift","CheckField","_inflateRaw","blobify","write_dl","fname","utf8write","IE_SaveFile","Blob","navigator","msSaveBlob","saveAs","URL","document","createElement","createObjectURL","url","chrome","downloads","download","revokeObjectURL","setTimeout","href","body","appendChild","click","removeChild","$","File","Folder","open","encoding","close","read_binary","infile","keys","ks","Object","o2","prototype","hasOwnProperty","call","evert_key","obj","K","evert","evert_num","evert_arr","datenum","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date","good_pd","parseDate","fixdate","cc2str","arr","dup","JSON","stringify","fuzzynum","Number","isFinite","NaN","wt","fuzzydate","getYear","jszip","safe_split_regex","split_regex","re","def","getdatastr","asNodeBuffer","asBinary","_data","getContent","getdatabin","getdata","safegetzipfile","zip","g","getzipfile","getzipdata","safe","getzipstr","getzipbin","zipentries","zip_add_file","zip_new","zip_read","base64","resolve_path","target","step","JSZipSync","XML_HEADER","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","skip_LC","z","eq","quot","trim","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","text","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","escapexlml","xlml_fixstr","entregex","entrepl","xlml_unfixstr","parsexmlbool","value","utf8read","orig","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","matches","baseType","res","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","xlsx","XMLNS","XLMLNS","read_double_le","Infinity","write_double_le","bs","av","LN2","__lpp4","___lpp4","___toBuffer","__readUInt16LE","___utf16le","__hexlify","___hexlify","__utf8","__readUInt8","___utf8","__lpstr","___lpstr","__cpstr","___cpstr","__lpwstr","___lpwstr","__double","___double","__8lpp4","___8lpp4","is_buf","isBuffer","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","end","hexstr","fld","pos","parsenoop","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","next","_bufs","write_record","ba","XLSBRE","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","range","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_row","encode_col","OFFCRYPTO","make_offcrypto","O","_crypto","crypto","rc4","md5","hex","createHash","update","digest","decode_row","rowstr","unfix_row","row","cstr","decode_col","colstr","unfix_col","col","split_cell","decode_cell","decode_range","encode_range","cs","ce","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheet","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","ws","_R","_C","origin","_origin","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","write_StrRun","run","parse_RichStr","rgsStrRun","dwSizeStrRun","write_RichStr","parse_BrtCommentText","write_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBShortCell","write_XLSBShortCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","write_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","parse_BrtColor","xColorType","index","nTS","bR","bG","bB","auto","icv","XLSIcv","rgb","rgb2Hex","theme","tint","write_BrtColor","parse_FontFlags","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","write_FontFlags","font","grbit","italic","strike","outline","shadow","condense","extend","parse_ClipboardFormatOrString","ClipFmt","14","parse_ClipboardFormatOrAnsiString","parse_ClipboardFormatOrUnicodeString","VT_I2","VT_I4","VT_BOOL","VT_VARIANT","VT_UI4","VT_LPSTR","VT_FILETIME","VT_BLOB","VT_CF","VT_VECTOR","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","DocSummaryRE","SummaryRE","CountryEnum","XLSFillPattern","rgbify","_XLSIcv","RBErr","ct2type","CT_LIST","workbooks","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","styles","type2ct","new_ct","rels","links","coreprops","extprops","custprops","themes","calcchains","vba","drawings","TODO","xmlns","parse_ct","ctext","Extension","ContentType","PartName","CT","calcchain","sst","style","defaults","CTYPE_XML_ROOT","xsd","xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","VBA","get_rels_path","parse_rels","currentFilePath","hash","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","RELS_EXTERN","add_rels","rId","relobj","targetmode","CT_ODS","parse_manifest","Rn","FEtag","xlml_normalize","xlmlregex","write_manifest","manifest","write_rdf_type","write_rdf_has","write_rdf","rdf","write_meta_ods","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","dc","dcterms","dcmitype","cp_doit","write_core_props","Props","CreatedDate","ModifiedDate","EXT_PROPS","PseudoPropsPairs","load_props_pairs","HP","TOP","props","hp","parts","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","parse_ext_props","xml","HeadingPairs","TitlesOfParts","EXT_PROPS_XML_ROOT","vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","XLMLDocPropsMap","Title","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","evert_XLMLDPM","xlml_set_prop","xlml_write_docprops","xlml_write_custprops","Custprops","BLACKLIST","parse_FILETIME","dwLowDateTime","dwHighDateTime","write_FILETIME","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecLpwstrValue","ret","parse_VtVecUnalignedLpstrValue","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_dictionary","CodePage","dict","parse_BLOB","bytes","parse_ClipboardData","Size","write_TypedPropertyValue","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","entries","RE","hdr","piao","prop","pr","pio","unshift","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","rval","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writezeroes","parslurp","writebool","parseuint16","writeuint16","parseuint16a","parse_Bes","write_Bes","parse_ShortXLUnicodeString","cch","fHighByte","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","width","cRun","write_XLUnicodeRichExtendedString","xlstr","nfmts","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_ControlInfo","accel","parse_URLMoniker","extra","parse_FileMoniker","cAnti","preamble","ansiPath","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","write_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","guid","fileTime","Loc","Tooltip","write_Hyperlink","hl","hashidx","Pretarget","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","write_XLSCell","parse_frtHeader","rt","parse_OptXLUnicodeString","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","id","parse_FtNts","fSharedNote","parse_FtCf","cf","parse_FtSkip","FtTab","parse_FtArray","fts","ft","parse_BOF","BIFFVer","write_BOF","wb","parse_InterfaceHdr","parse_WriteAccess","UserName","write_WriteAccess","b8","parse_WsBool","fDialog","fBelow","fRight","parse_BoundSheet8","hidden","hs","write_BoundSheet8","parse_SST","ucnt","Count","Unique","write_SST","parse_ExtSST","extsst","dsst","parse_Row","miyRw","level","hpt","parse_ForceFullCalculation","fullcalc","parse_RecalcId","parse_DefaultRowHeight","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","write_Window1","parse_Window2","RTL","write_Window2","parse_Pane","parse_Font","dyHeight","write_Font","b5","parse_LabelSst","isst","write_LabelSst","os","parse_Label","biffguess","write_Label","parse_Format","fmtstr","write_Format","parse_BIFF2Format","parse_Dimensions","write_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_MulBlank","ixfes","parse_CellStyleXF","patternType","cellStyles","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","icvFore","icvBack","fsxButton","parse_XF","fStyle","write_XF","ixfeP","parse_Guts","write_Guts","guts","parse_BoolErr","write_BoolErr","parse_Number","xnum","write_Number","parse_XLHeaderFooter","parse_SupBook","ctab","sbcch","virtPath","rgst","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","Name","XLSLblBuiltIn","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","parse_ExternSheet","parse_BIFF5ExternSheet","parse_NameCmt","cchName","cchComment","comment","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","write_MergeCells","parse_Obj","parse_BIFF5Obj","cmo","parse_BIFF5OT","parse_TxO","texts","lastobj","cchText","parse_HLink","hlink","write_HLink","parse_HLinkTooltip","wzTooltip","write_HLinkTooltip","TT","parse_Country","write_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","crc","parse_ColInfo","coldx","write_ColInfo","parse_Setup","footer","parse_ShtProps","area","write_RRTabId","parse_Blank","parse_Scl","parse_String","parse_ImData","env","lcb","parse_BIFF2STR","parse_BIFF2NUM","num","write_BIFF2NUM","write_BIFF2Cell","parse_BIFF2INT","write_BIFF2INT","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_RString","DBF","dbf_codepage_map","dbf_reverse_map","DBF_SUPPORTED_VERSIONS","dbf_to_aoa","memo","vfp","l7","nrow","fpos","rlen","current_cp","codepage","fields","field","hend","sheetRows","dbf_to_sheet","dbf_to_workbook","_RLEN","sheet_to_dbf","aoa","sheet_to_json","headers","hcnt","coltypes","guess","_guess","hf","_f","hb","rout","_s","to_workbook","to_sheet","from_sheet","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","_","decode_sylk_char","newcc","sylk_to_aoa","sylk_to_aoa_str","records","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","rstr","record","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","wch","process_col","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_workbook","write_ws_cell_sylk","a1_to_rc","write_ws_cols_sylk","cols","rec","wpx","width2px","px2char","write_ws_rows_sylk","rows","px2pt","sheet_to_sylk","RS","coord","DIF","dif_to_aoa","dif_to_aoa_str","metadata","dif_to_sheet","dif_to_workbook","sheet_to_dif","push_field","topic","push_value","ETH","eth_to_aoa","eth_to_sheet","eth_to_workbook","sep","meta","sheet_to_eth_data","sheet_to_eth","PRN","set_text_arr","prn_to_aoa_str","lines","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","FS","sepcc","startcc","_re","finish_cell","fuzzyfmla","cellText","cellNF","outer","prn_to_sheet_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","read_wb_ID","OLD_WTF","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook","lotus_to_workbook_buf","next_n","sidx","snames","realnames","refguess","vers","qpro","tmpcell","WK3Enum","osheets","rnames","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","write_INTEGER","write_NUMBER","write_LABEL","book_to_wk3","write_BOF_WK3","write_XFORMAT_SHEETNAME","wsidx","write_NUMBER_17","write_LABEL_16","wscnt","parse_RANGE","parse_cell","parse_LABEL","parse_INTEGER","parse_NUMBER","parse_FORMULA","wk1_fmla_to_csf","wk1_parse_rc","FuncTab","BinOpTab","argc","argL","argR","args","parse_cell_3","parse_LABEL_16","parse_NUMBER_18","parse_NUMBER_17","v1","v2","log2","parse_FORMULA_19","parse_NUMBER_25","parse_NUMBER_27","parse_FORMULA_28","parse_SHEETNAMECS","parse_SHEETNAMELP","parse_SHEETINFOQP","parse_XFORMAT","parse_rpr","rpr","pass","uval","family","valign","parse_rs","tregex","rpregex","parse_r","rregex","rend","rs","filter","rs_to_html","nlregex","parse_rpr2","intro","outro","align","r_to_html","terms","sitregex","sirregex","sirphregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","count","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","main","sitag","parse_BrtBeginSst","parse_sst_bin","R_n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceVersionInfo","U","parse_DataSpaceMapEntry","comps","parse_DataSpaceMap","parse_DataSpaceDefinition","parse_TransformInfoHeader","parse_Primary","ename","cmode","parse_EncryptionHeader","AlgID","valid","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncryptionInfo","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","verifier","KeyData","encryptedHmacKey","encryptedHmacValue","encs","uri","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","PasswordArray","PasswordByte","Intermediate1","Intermediate2","Intermediate3","PasswordDecoded","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Temp","PasswordLastChar","PadIndex","Index","ObfuscationArray","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","insitu","parse_FilePassHeader","Info","parse_FilePass","RTF","rtf_to_sheet","rtf_to_sheet_str","rowtf","rtfre","last_index","lastIndex","rtf_to_workbook","sheet_to_rtf","hex2RGB","rgb2HSL","G","H6","L2","hsl2RGB","hsl","X","h6","rgb_tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","delta","_MDW","coll","customWidth","DEF_PPI","PPI","pt","XLMLPatternTypeMap","parse_borders","Borders","border","diagonalUp","diagonalDown","parse_fills","Fills","bgColor","indexed","fgColor","parse_fonts","Fonts","bold","underline","vertAlign","scheme","themeElements","clrScheme","parse_numFmts","NumberFmt","formatCode","write_numFmts","NF","cellXF_uint","cellXF_bool","parse_cellXfs","xf","CellXf","alignment","vertical","horizontal","textRotation","indent","wrapText","write_cellXfs","cellXfs","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","STYLES_XML_ROOT","write_sty_xml","parse_BrtFmt","stFmtCode","write_BrtFmt","parse_BrtFont","bls","bCharSet","charset","write_BrtFont","sss","STY","XLSBFillPTNames","rev_XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","parse_BrtXF","ixfeParent","ifmt","write_BrtXF","flow","write_Blxf","parse_BrtBorder","write_BrtBorder","write_BrtStyle","xfId","builtinId","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","parse_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","write_BORDERS_bin","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","write_STYLES_bin","write_DXFS_bin","write_TABLESTYLES_bin","write_COLORPALETTE_bin","write_sty_bin","THEME","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","Themes","themeXLSX","parse_Theme","dwThemeVersion","themeXML","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xfext","xfe","parse_cc_xml","parse_BrtCalcChainItem$","parse_cc_bin","parse_xlink_xml","parse_xlink_bin","parse_drawing","IMG","DRAW","_shapeid","write_comments_vml","csize","bbox","joinstyle","gradientshapeok","coordsize","fillopts","angle","fillparm","fillxml","shadata","on","fillcolor","strokecolor","sheet_insert_comments","encoded","author","parse_comments_xml","authors","commentList","authtag","cmnttag","cm","authorId","textMatch","CMNT","CMNT_XML_ROOT","write_comments_xml","iauthor","parse_BrtBeginComment","rfx","write_BrtBeginComment","parse_BrtCommentAuthor","write_BrtCommentAuthor","parse_comments_bin","write_comments_bin","CT_VBA","make_vba_xls","newcfb","newpath","fill_vba_xls","VBAFMTS","parse_ds_bin","parse_ds_xml","parse_ms_bin","parse_ms_xml","DS","MS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_RgceLocRel","parse_RgceLocRel_BIFF2","cl","rl","parse_PtgArea","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrIfError","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgNameX_BIFF5","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgRefErr3d","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgTbl","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfCol","parse_PtgElfColS","parse_PtgElfColSV","parse_PtgElfColV","parse_PtgElfLel","parse_PtgElfRadical","parse_PtgElfRadicalLel","parse_PtgElfRadicalS","parse_PtgElfRw","parse_PtgElfRwV","PtgListRT","parse_PtgList","coltype","parse_PtgSxName","parse_PtgSheet","parse_PtgEndSheet","parse_PtgMemAreaN","parse_PtgMemNoMemN","parse_PtgAttrNoop","PtgTypes","PtgDupes","Ptg18","Ptg19","parse_RgbExtra","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","quoteCharacters","formula_quote_sheet_name","sname","get_ixti_raw","supbooks","XTI","SID","get_ixti","ixtiraw","stringify_formula","stack","nameidx","last_sp","sp","fflen","func","lbl","names","XLSXFutureFunctions","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","PtgNonDisp","_left","rgcb","parse_XLSCellParsedFormula","parse_FormulaValue","write_FormulaValue","parse_Formula","cbf","shared","write_Formula","o1","o3","bf","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_3D","csf_to_ods_3D","_ssfopts","WS","browser_has_Map","Map","get_sst_id","has","revarr","get","col_obj_w","outlineLevel","default_margins","margins","mode","defs","left","right","top","bottom","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fmtid","fillid","raw_rgb","check_ws","parse_ws_xml_dim","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","sheetprregex2","svsregex","parse_ws_xml","data1","data2","mtch","sheetPr","parse_ws_xml_sheetpr","parse_ws_xml_sheetpr2","ridx","svs","parse_ws_xml_sheetviews","columns","parse_ws_xml_cols","parse_ws_xml_data","afilter","parse_ws_xml_autofilter","_merge","parse_ws_xml_hlinks","parse_ws_xml_margins","tmpref","write_ws_xml_merges","codeName","CodeName","write_ws_xml_sheetpr","needed","vbaraw","cname","Workbook","outlineprops","summaryBelow","summaryRight","above","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_protection","location","Rel","tooltip","rng","margin","write_ws_xml_margins","seencol","coli","colm","colM","write_ws_xml_cols","write_ws_xml_autofilter","Names","Sheet","Ref","sviewregex","Views","zoomScale","zoom","rightToLeft","write_ws_xml_sheetviews","sview","workbookViewId","write_ws_xml_cell","oldt","oldv","Strings","revStrings","cellregex","rowregex","isregex","refregex","match_v","match_f","sdata","sstr","ftag","cells","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","rstarti","outa","ht","rslice","cellFormula","xlfn","___f","si","_tag","_r","write_ws_xml_data","params","height","_cell","customHeight","WS_XML_ROOT","write_ws_xml","rdata","_drawing","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","relc","ignoreEC","numberStoredAsText","sqref","parse_BrtRowHdr","write_BrtRowHdr","ncolspan","lcs","caddr","first","last","write_row_header","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsFmtInfo","parse_BrtWsProp","write_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","ncell","parse_BrtShortBlank","write_BrtShortBlank","parse_BrtCellBool","fBool","write_BrtCellBool","parse_BrtShortBool","write_BrtShortBool","parse_BrtCellError","bError","write_BrtCellError","parse_BrtShortError","write_BrtShortError","parse_BrtCellIsst","write_BrtCellIsst","parse_BrtShortIsst","write_BrtShortIsst","parse_BrtCellReal","write_BrtCellReal","parse_BrtShortReal","write_BrtShortReal","parse_BrtCellRk","write_BrtCellRk","parse_BrtShortRk","write_BrtShortRk","parse_BrtCellSt","write_BrtCellSt","parse_BrtShortSt","write_BrtShortSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","write_BrtMergeCell","write_BrtBeginMergeCells","parse_BrtHLink","relId","display","write_BrtHLink","locidx","parse_BrtPane","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","write_BrtColInfo","BrtMarginKeys","parse_BrtMargins","write_BrtMargins","parse_BrtBeginWsView","write_BrtBeginWsView","write_BrtCellIgnoreEC","write_BrtSheetProtection","parse_BrtDVal","parse_BrtDVal14","parse_ws_bin","ai","af","aii","_d","write_ws_bin_cell","last_seen","write_CELLTABLE","cap","write_MERGECELLS","write_COLINFOS","write_IGNOREECS","write_HLINKS","write_LEGACYDRAWING","write_AUTOFILTER","write_WSVIEWS2","write_WSFMTINFO","write_SHEETPROTECT","write_ws_bin","parse_Cache","nf","parse_chart","csheet","nc","cache","CHART","CHARTEX","CS","parse_cs_xml","parse_BrtCsProp","parse_cs_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","safe1904","badchars","check_ws_name","_good","check_wb_names","N","codes","cn","check_wb","wbnsregex","parse_wb_xml","dname","dnstart","Hidden","Comment","localSheetId","WB_XML_ROOT","write_wb_xml","write_names","workbookPr","sheetId","parse_BrtBundleSh","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","filterPrivacy","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_BrtName","Ptg","parse_wb_bin","write_BUNDLESHS","viz","write_BrtFileVersion","write_BrtBookView","write_BOOKVIEWS","vistab","write_wb_bin","parse_wb","parse_ws","parse_cs","parse_ms","parse_ds","parse_sty","parse_theme","parse_sst","parse_cmnt","parse_cc","parse_xlink","write_wb","write_ws","write_sty","write_sst","write_cmnt","attregexg2","attregex2","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","oval","safe_format_xlml","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","csty","sid","StyleID","interiors","Parent","UTC","Formula","ArrayRange","xlml_clean_comment","parse_xlml_xml","opening","ishtml","_o","HTML_","tmp","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","cmd","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","Range","parse_fods","Margin","pagemargins","Top","Left","Right","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_props_xlml","write_wb_xlml","write_sty_xlml","write_name_xlml","write_names_xlml","write_ws_xlml_names","write_ws_xlml_wsopts","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_comment","write_ws_xlml_cell","attr","mi","_v","write_ws_xlml_row","write_ws_xlml_table","skip","write_ws_xlml","write_xlml","parse_compobj","AnsiUserType","AnsiClipboardFormat","Reserved1","UnicodeClipboardFormat","Reserved2","slurp","XLSRecordEnum","safe_format_xf","make_cell","parse_workbook","lastcell","cmnt","rngC","rngR","temp_val","country","Directory","last_formula","cur_sheet","Preamble","last_cell","XFs","palette","get_rgb","process_cell_style","line","xfd","addcell","file_depth","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_Rn","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","RecordType","Date1904","WriteProtect","cpval","CalcRefMode","FullCalc","ExternCount","tmpri","fakebs8","_fr","_fc","_fe","_arraystart","_j","_ixfe","b4idx","b2idx","TxO","ImData","noteobj","Encryption","Metadata","Country","PSCLSID","SI","DSI","UDI","parse_xls_props","DocSummary","Summary","write_xls_props","Keys","DSEntries","SEntries","CEntries","CEntries2","parse_xlscfb","CompObj","WorkbookP","bookVBA","bookFiles","write_xlscfb","wbpath","write_biff_buf","XLSRE","write_biff_continue","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff2_cell","write_ws_biff2","write_biff2_buf","write_FONTS_biff8","write_FMTS_biff8","write_FEAT","write_CELLXFS_biff8","write_ws_biff8_hlinks","HL","write_ws_cols_biff8","write_ws_biff8_cell","write_ws_biff8","_WB","_sheet","MAX_ROWS","write_biff8_global","_sheets","_wb","blen","write_biff8_buf","fix_write_opts","html_to_sheet","mtch2","hd","midx","colspan","rowspan","_t","html_to_book","book_new","book_append_sheet","make_html_row","editable","make_html_preamble","_BEGIN","_END","sheet_to_html","_row","BEGIN","END","_preamble","sheet_add_dom","or_R","or_C","getElementsByTagName","is_dom_element_hidden","elts","hasAttribute","getAttribute","innerHTML","Aelts","Aelti","parse_dom_table","table_to_book","element","get_computed_style","get_get_computed_style_function","getPropertyValue","ownerDocument","defaultView","getComputedStyle","parse_content_xml","parse_text_p","fixed","number_formats","day","year","minutes","seconds","era","quarter","sheetag","rowtag","textptag","NFtag","ctag","textp","textpidx","textR","row_ol","number_format_map","mrange","mR","mC","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","rptR","rpt","nrange","ptp","parse_ods","write_styles_ods","master_styles","write_content_ods","write_text_p","null_cell_xml","covered_cell_xml","ods","ROWS","_Fref","text_p","_tgt","write_automatic_styles_ods","cidx","colobj","fods","write_ods","NUMBERS","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","__markAsModule","__export","all","enumerable","__reExport","copyDefault","__toCommonJS","temp","WeakMap","numbers_exports","parse_numbers","numbers_default","u8_to_dataview","array","DataView","buffer","byteOffset","byteLength","u8str","u8","TextDecoder","u8concat","u8a","acc","popcnt","parse_varint49","ptr","varint","varint_to_i32","i32","parse_shallow","mappa","_a","deframe","parse_snappy_chunk","chunks","parse_iwa","messages","parseit","rsst","dv","ctype","getUint32","data_offset","ieee","getFloat64","docroot","packets","packet","iwams","iwam","mtype","parse_docroot","parse_Reference","pb","parse_TST_TableDataList","le","rtp","rtpref","tswpsa","parse_TST_TileRowInfo","offsets","getUint16","subarray","parse_TST_Tile","parse_TST_TableModelArchive","store","tile","tiles","tl","tile2","parse_TST_TableInfoArchive","tableref","parse_sheetroot","shapeoffs","sheetoffs","root2","fix_opts_func","get_sheet_type","safe_parse_wbrels","wbrels","safe_parse_sheet","relsPath","sheetRels","stype","dfile","drelsp","draw","chartp","crelsp","strip_front_slash","_zip","binname","dir","link","propdata","deps","bookDeps","wbsheets","wbext","wbrelsi","wbrelsfile","nmode","wsloop","snjseen","snj","Deps","Styles","bin","parse_xlsxcfb","dsm","seds","einfo","decrypt_agile","decrypt_std76","foo","vbafmt","_sn","_i","wsrels","_type","need_vml","rId1","read_cfb","read_zip","read_plaintext","read_plaintext_raw","read_utf16","bstrify","read_prn","readSync","ab","vu","write_obj_str","write_htm_str","write_csv_str","sheet_to_csv","write_slk_str","write_dif_str","write_prn_str","write_rtf_str","write_txt_str","sheet_to_txt","write_dbf_buf","write_eth_str","write_wk1_buf","write_cfb_ctr","write_zip_type","oopts","generate","encrypt_agile","write_cfb_type","write_string_type","bom","write_stxt_type","write_binary_type","writeSync","resolve_book_type","_BT","writeFileAsync","_cb","Function","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","counter","CC","blankrows","qreg","make_csv_row","txt","forceQuotes","endregex","skipHidden","strip","sheet_to_formulae","cmds","sheet_add_json","js","skipHeader","JS","sheet_get_cell","json_to_sheet","get_formulae","make_csv","make_json","make_formulae","table_to_sheet","sheet_to_row_object_array","add_consts","get_default","ws_get_cell_stub","RC","wb_sheet_idx","sh","book_set_sheet_visibility","vis","cell_set_number_format","cell_set_hyperlink","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","strmod","Readable","write_csv_stream","stream","BOM","_read","write_html_stream","write_json_stream","objectMode","to_json","to_html","to_csv","readFile","translator","correctGrammaticalCase","wordKey","srCyrl","lastWeekDays","DO_NOT_EXPORT_JSZIP","globalThis","self","require","_dereq_","_keyStr","utf8","chr2","chr3","enc1","enc2","enc3","enc4","CompressedObject","compressedSize","uncompressedSize","compressionMethod","compressedContent","getCompressedContent","STORE","magic","compress","uncompress","compressInputType","uncompressInputType","DEFLATE","getTypeOf","iTop","DataReader","checkOffset","checkIndex","newIndex","setIndex","byteAt","readInt","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","binary","createFolders","string2binary","string2Uint8Array","uint8Array2String","string2Blob","arrayBuffer2Blob","outputType","checkSupport","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object","USE_TYPEDARRAY","Uint32Array","pako","deflateRaw","inflateRaw","clone","newObj","support","compressions","ZipEntries","zipEntries","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","11","12","Uint8ArrayReader","NodeBufferReader","13","signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","getBinaryData","nodebuffer","dataToString","asUTF8","utf8decode","utf8encode","ZipObject","_initialMetadata","asText","asUint8Array","asArrayBuffer","decToHex","prepareFileAttrs","fileAdd","parent","dataType","parentFolder","folderAdd","substring","lastSlash","generateCompressedObjectFrom","generateZipParts","compressedObject","dosTime","dosDate","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","extraFields","unicodePathExtraField","unicodeCommentExtraField","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","search","relativePath","fileClone","regexp","folder","arg","newFolder","remove","kids","writer","zipData","localDirLength","centralDirLength","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","append","finalize","string","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","15","StringReader","16","17","arraybuffer","uint8array","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob","18","sig0","sig1","sig2","sig3","19","_utf8len","string2buf","m_pos","str_len","buf_len","utf8border","buf2string","c_len","utf16buf","applyFromCharCode","chunk","nextBoundary","21","identity","stringToArrayLike","arrayLikeToString","canUseApply","resultStr","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","inputType","supported","22","ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraFieldId","extraFieldLength","extraFieldValue","extraDataSize","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","23","isEncrypted","bitFlag","useUTF8","prepareCompressedContent","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField","24","assign","deflate","constants","25","zlib_deflate","strings","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","chunkSize","windowBits","memLevel","strategy","to","opt","gzip","err","ended","strm","avail_out","status","deflateInit2","deflateSetHeader","deflator","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","26","zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","inflator","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","ungzip","27","TYPED_OK","sources","source","TypeError","fnTyped","dest","src","src_offs","dest_offs","fnUntyped","setTyped","Buf16","Buf32","28","STR_APPLY_OK","STR_APPLY_UIA_OK","__","29","adler32","adler","s1","s2","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","31","makeTable","crcTable","32","trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","pending","pending_buf","pending_out","total_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","configuration_table","Config","good_length","max_lazy","nice_length","max_chain","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","hcrc","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","33","GZheader","xflags","extra_len","done","34","BAD","TYPE","_in","_out","dmax","wsize","whave","wnext","hold","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","35","inflate_fast","inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","InflateState","havedict","check","total","wbits","ncode","nlen","ndist","have","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","lenfix","distfix","virgin","fixedtables","sym","updatewindow","put","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","order","inf_leave","inflateInfo","36","MAXBITS","lbase","lext","dbase","dext","lens_index","table_index","incr","low","mask","curr","drop","used","huff","base_index","offs","extra_index","37","38","STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","xbits","stree","overflow","gen_codes","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","scan_tree","curlen","prevlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb","39","ZStream","symbolMap","pluralForm","plurals","pluralize","arLy","preparse","postformat","toByteArray","fromByteArray","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","maxChunkLength","len2","word","forms","relativeTimeWithPlural","be","standalone","isFormat","ka","organization_id","localStorage","getItem","getAllTempInventory","filters","Api","page","getAllInventory","editInventory","DO_NOT_EXPORT_CODEPAGE","cpt","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpdcache","cpecache","sfcc","cca","mdl","mdb","make_EE","E","EE","sbcs_encode","ofmt","sbcs_decode","DD","dbcs_encode","dbcs_decode","utf8_d","direct","encache","null_enc","cp_decache","decache","last_enc","last_cp","sbcs","dbcs","BM","SetD","isstr","dash","o64","hascp","ko","token","isUpper","render","_vm","_h","$createElement","_c","_self","staticClass","class","purchase_status","$event","popupActive","showModal","attrs","purchase_id","challanDetails","$vs","rtl","swiperOption","_l","challan","challanKey","swiperOption1","image","imageKey","tempToken","excelurl","challan_no","challan_description","currency","challan_amount","user_name","po_name","slot","staticRenderFns","components","swiper","swiperSlide","images","challanDe","slidesPerView","spaceBetween","pagination","el","clickable","breakpoints","1024","768","640","navigation","nextEl","prevEl","autoHeight","watch","beforeDestroy","_id","setAttribute","beforeMount","methods","downloadWithAxios","responseType","forceFileDownload","downloadItem","paymentMode","purchaseOrderService","submitForm","mounted","component","numberMap","ku","units","translateSeconds","translateSingular","special","lt","vi","me","uz","enCa","enGb","relativeTimeMr","mr","ne","40","tg","ta","kn","arKw","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","lastDigit","firstDigit","lb","webpackContext","req","webpackContextResolve","__webpack_require__","resolve","az","zhHk","hm","ga","ur","esUs","getExpense","post","getAllExpense","permisProj","permissionProject","purchaseStatus","project_id","checkInvoice","vendor_id","invoicenumber","getSingleExpense","getExpenseByFilter","addExpense","addCreditNote","showCreditExpenseList","addVendorAdvanceRequest","getAllVendorRequestOrderByProject","page_no","tallySync","getUserExpenses","getMyExpenses","approveMultipleExpenses","getVendorFRBalance","getExpenseData","addAdvanceExpense","getAdvanceExpense","getSingleAdvanceExpense","tet","weekEndings","hu","zhCn","te","sv","ugCn","msMy","eo","sd","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","br","mk","last2Digits","nb","kk","arTn","it","itCh","enNz","addShootLocation","editShootLocation","getAllShootLocation","getActiveShootLocation","monthsShortWithDots","monthsShortWithoutDots","fy","configurable","__esModule","default","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","beforeCreate","_injectStyles","esModule","install","Swiper","globalOptions","slideClass","ready","$parent","updated","attached","writable","required","classes","wrapperClass","mountInstance","$nextTick","activated","destroy","$el","bindEvents","$emit","addDepartment","getAllDepartmentsByCompany","company_id","editDepartment","getAllDepartments","archive","getDepartment","enIl","sw","aFunction","toObject","IObject","toLength","that","aLen","isRight","sk","yo","numbersPast","numbersFuture","verbalNumber","arSa","hideIcon","getPreview","_e","expenseSettings","showInvoiceNumber","showGstPopup","invoice_number","payment_mode_name","invoice_date","gst_name","gst_amount","toLocaleString","payment_due_date","location_name","parent_name","category_name","is_var","expense_invoice_number","exp_payment_due_date","expense_amount","credit_invoice_no","credit_amount","expDetailsParamsData","userDetail","singleUserId","userEmpDetails","getExpenseSettings","UserService","bg","my","gl","es","isFunction","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","monthsNominative","monthsSubjective","fa","ar","bn","zhTw","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","addProject","addProjectLevels","editProjectLevels","editProject","deleteProject","delete","getAllProjects","user","getAllProjectsByUserRole","getAllBudgetProjects","getPOPdf","getProject","getProjectLevels","user_id","addCompany","editCompany","getAllCompanies","getCompany","getVendorPCRInfo","addContractVendor","contract_type","addContractVendorNew","editContractVendor","editContractVendorNew","editContractSubCategory","getContractVendor","getContractVendorNew","default_alt_org_id","listType","is_impressed","is_old","forFRR","getContractProjects","addContractProject","vendorMap","getSingleContractProject","getContractVendorListMou","contractType","getGrantChart","formType","getContractSubCategory","category_id","addContractSubCategory","getAllContractData","getAllContractDataLevel","getAllMouFormList","getAllFlaFormList","getSignleMouFormDetails","addMouForm","getComments","addMouFormCommet","addMouFormReplyCommet","getSignleFlaFormDetails","addFlaForm","getFlaComments","addFlaFormComments","addFlaFormReplyComments","getStatusData","getReasonMou","getReasonFla","getDraft","addDraft","moveToBudget","moveToBudgetFLA","ru","mn","ky","separator","ro","cy","this$1","budget_id","inventory_id","purchaseData","project_name","VHC_code","country_name","city_name","price","purchase_description","categories","form","onSuggestSelect","scopedSlots","_u","fn","option","model","callback","$$v","categoryValue","expression","directives","rawName","errors","subcategories","onSuggestSelectSub","subcategoryValue","onChangeUpdateExp","isUpdated","onChangeMoveToBudget","privStatus","projectID","parent_id","getCategoryList","loading","item_name","company_name","company_address","sgst","cgst","purchase_image","city_id","country_id","approved_percentage","purchase_active","getSubcategoryList","selected","moveData","addPurchaseOrder","showLogs","editPurchaseOrder","getAllPurchaseOrder","getPurchaseOrder","getchallanDetails","getChallan","getPurchaseOrderMaping","isVar","getAllPurchaseOrderByProject","tallyType","isDashboard","approvePurchaseOrder","approvePurchaseOrderDashboard","rejectPurchaseOrder","rejectPurchaseOrderDashboard","getApprovedPurchaseOrder","getCreditNoteList","fr","staticStyle","ignoredImages","includes","extensions","nativeOn","downloadPdf","imagePopParamsData","img","show","budget_code","eventBus","onClickCloseButton","ignored_image","addEventListener","arDz","bm","weekdaysCaseReplace","nounCase","processHoursFunction","uk","lo","deAt","de","tzmLatn","jv","ieee754","typedArraySupport","__proto__","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","fromArrayBuffer","fromString","fromObject","assertSize","checked","isEncoding","actual","fromArrayLike","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","Symbol","species","allocUnsafeSlow","_isBuffer","compare","list","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","_arr","MAX_ARGUMENTS_LENGTH","codePoints","toHex","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","leadSurrogate","byteArray","hi","nn","relativeTimeWithSingular","relativeSeconds","lv","deCh","tzm","hookCallback","some","hooks","setHookCallback","isObject","isObjectEmpty","isUndefined","isNumber","isDate","hasOwnProp","valueOf","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","copyConfig","_isAMomentObject","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","absFloor","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","_calendar","defaultLongDateFormat","_longDateFormat","formatUpper","defaultInvalidDate","invalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","isLeapYear","parseTwoDigitYear","getSetYear","makeGetSet","getIsLeapYear","keepTime","set$1","daysInMonth","stringGet","stringSet","prioritized","mod","modMonth","MONTHS_IN_FORMAT","defaultLocaleMonths","localeMonths","_months","defaultLocaleMonthsShort","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","dayOfMonth","getSetMonth","getDaysInMonth","defaultMonthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","createDate","ms","createUTCDate","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","fwdlw","getUTCDay","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","localeWeekdays","_weekdays","defaultLocaleWeekdaysShort","localeWeekdaysShort","_weekdaysShort","defaultLocaleWeekdaysMin","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","defaultWeekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","localeMeridiem","globalLocale","getSetHour","baseConfig","locales","localeFamilies","normalizeLocale","chooseLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","values","getLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","weekdayOverflow","GG","createLocal","curWeek","gg","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","calculateOffset","obsOffset","militaryOffset","numOffset","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","second","millisecond","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","weeks","isoWeek","milliseconds","_milliseconds","_days","_bubble","isDuration","absRound","utcOffset","offsetFromString","chunkOffset","matcher","cloneWithOffset","local","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","direction","dur","isAdding","invalid","getCalendarFormat","myMoment","calendar$1","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","keepOffset","toDate","zone","prefix","datetime","suffix","inputString","defaultFormatUtc","defaultFormat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","isValid$2","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","isoWeekYear","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","parseMs","getSetMillisecond","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME_SECONDS","TIME_MS","he","sq","enSG","sr","tzl","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","one","tlh","doc","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","children","childNodes","win","userAgent","history","CustomEvent","Image","screen","clearTimeout","Dom7","selector","context","els","tempParent","toCreate","nodeType","unique","uniqueArray","addClass","className","classList","removeClass","hasClass","contains","toggleClass","toggle","arguments$1","attrName","removeAttr","removeAttribute","dom7ElementDataStorage","dataKey","elStyle","webkitTransform","transition","webkitTransitionDuration","transitionDuration","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","parents","handleEvent","events","event$1","dom7LiveListeners","proxyListener","event","dom7Listeners","handlers","handler","dom7proxy","trigger","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","offsetWidth","outerHeight","offsetHeight","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","css","each","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","returnIndex","newChild","tempDiv","firstChild","prepend","insertBefore","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","parentNode","closest","foundElements","toAdd","Class","Methods","methodName","Utils","deleteProps","nextTick","delay","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","parseUrlQuery","param","query","urlToParse","paramsPart","decodeURIComponent","constructor","len$1","nextSource","keysArray","nextIndex","nextKey","Support","testDiv","touch","Modernizr","maxTouchPoints","DocumentTouch","pointerEvents","pointerEnabled","PointerEvent","prefixedPointerEvents","msPointerEnabled","transforms3d","csstransforms3d","flexbox","observer","passiveListener","supportsPassive","gestures","Browser","isSafari","ua","isIE","isEdge","isUiWebView","SwiperClass","eventsListeners","eventName","staticAccessors","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","updateSlides","$wrapperEl","swiperSize","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","slidesPerColumnFill","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","slidesPerGroup","groupIndex","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","boxSizing$1","swiperSlideSize","centeredSlides","effect","setWrapperSize","i$1","slidesGridItem","i$2","slidesGridItem$1","centerInsufficientSlides","allSlidesSize","slideSizeValue","allSlidesOffset","snap","snapIndex","emit","watchOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","visibleSlides","slideProgress","minTranslate","slideBefore","slideAfter","isVisible","progress","updateProgress","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","loop","slideDuplicateClass","slideDuplicateActiveClass","nextSlide","slideNextClass","prevSlide","slidePrevClass","slideDuplicateNextClass","slideDuplicatePrevClass","updateActiveIndex","newActiveIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","once","onceHandler","f7proxy","eventHandler","eventsArray","useModulesParams","instanceParams","instance","modules","moduleName","useModules","modulesParams","moduleParams","modulePropName","moduleProp","moduleEventName","create","use","installModule","static","defineProperties","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","previousTranslate","transitionStart","runCallbacks","transitionEnd$1","animating","transition$1","slideTo","internal","slideIndex","preventInteractionOnTransition","initialSlide","allowSlideNext","allowSlidePrev","onSlideToWrapperTransitionEnd","destroyed","slideToLoop","loopedSlides","slideNext","loopFix","_clientLeft","slidePrev","normalize","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","currentSnap","nextSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","slideChanged","slideChanged$1","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","grabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","manipulation","Device","device","ios","android","androidChrome","desktop","windows","iphone","ipod","ipad","cordova","phonegap","osVersion","webView","osVersionArr","metaViewport","minimalUi","pixelRatio","devicePixelRatio","onTouchStart","touchEventsData","touches","originalEvent","isTouchEvent","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","preventDefault","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","position","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","clickTimeout","freeModeMomentum","lastMoveEvent","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","newTranslate","autoplay","running","paused","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","attachEvents","touchEvents","wrapperEl","touchEventsTarget","passiveListeners","passive","move","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","directionChanged","needsReLoop","changeDirection","points","point","breakpointsInverse","innerWidth","addClasses","classNames","containerModifierClass","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","complete","onload","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","checkOverflow$1","init","uniqueNavElements","noSwipingClass","slideBlankClass","prototypes","extendedDefaults","prototypeGroup","protoMethod","moduleParamName","swiperParams","passedParams","swipers","containerEl","newParams","touchEventsTouch","touchEventsDesktop","spv","breakLoop","translated","translateValue","newDirection","needUpdate","currentDirection","slideEl","deleteInstance","cleanStyles","extendDefaults","newDefaults","Device$1","Support$1","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","Observer","MutationObserver","WebkitMutationObserver","attach","ObserverFunc","mutations","observerUpdate","requestAnimationFrame","observe","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","Observer$1","Virtual","force","ref$1","addSlidesBefore","addSlidesAfter","ref$2","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","renderExternal","slidesToRender","prependIndexes","appendIndexes","$slideEl","numberOfNewSlides","newCache","cachedIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","shiftKey","altKey","ctrlKey","metaKey","keyboard","onlyInViewport","inView","windowWidth","windowHeight","innerHeight","swiperOffset","swiperCoord","returnValue","enable","disable","Keyboard$1","isEventSupported","isSupported","implementation","hasFeature","Mousewheel","lastScrollTime","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","releaseOnEdges","rtlFactor","forceToAxis","invert","sensitivity","timeout","autoplayDisableOnInteraction","stop","eventsTarged","Mousewheel$1","Navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","Navigation$1","hideOnClick","hiddenClass","toEdge","fromEdge","isHidden","Pagination","current","paginationType","bullets","firstIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bullet","$bullet","bulletIndex","bulletActiveClass","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","formatFractionCurrent","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","renderFraction","currentClass","totalClass","renderProgressbar","progressbarFillClass","clickableClass","modifierClass","progressbarOppositeClass","Pagination$1","bulletElement","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragEl","draggable","Scrollbar$1","dragClass","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Parallax$1","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","maxRatio","isScaling","onGestureChange","scaleMove","minRatio","onGestureEnd","changedTouches","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","in","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","Zoom$1","containerClass","zoomedSlideClass","touchStart","touchEnd","doubleTap","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Lazy$1","loadOnTransitionStart","preloaderClass","scroll","scrollbarDragMove","Controller","LinearSpline","i1","i3","binarySearch","interpolate","getInterpolateFunction","controller","spline","setTranslate$1","multiplier","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","Controller$1","a11y","makeElFocusable","addElRole","role","addElLabel","label","disableEl","enableEl","onEnterKey","$targetEl","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","A11y","notificationClass","paginationUpdate","History","pushState","hashNavigation","paths","getPathValues","scrollToSlide","replaceState","setHistoryPopState","pathArray","pathname","part","setHistory","slugify","currentState","slideHistory","History$1","HashNavigation","onHashCange","newHash","activeSlideHash","setHash","slideHash","watchState","HashNavigation$1","Autoplay","$activeSlideEl","reverseDirection","stopOnLastSlide","pause","waitForTransition","Autoplay$1","disableOnInteraction","beforeTransitionStart","sliderFirstMove","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","EffectFade","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowAngle","sin","cos","scale1","shadowScale","scale2","zFactor","EffectCube","Flip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectFlip","Coverflow","coverflowEffect","center","slideOffset","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","perspectiveOrigin","EffectCoverflow","Thumbs","thumbsParams","thumbs","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","initial","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","Thumbs$1","slideChange","bo","totalExpense","updateSearchQuery","searchQuery","downloadExcel","gridOptions","columnDefs","defaultColDef","expenseList","paginationPageSize","onCellClicked","totalPageCheck","maxPageNumbers","currentPage","showimageModal","AgGridVue","flatPickr","VxTour","DatetimePickerStartEnd","imagePopUp","showPoOrderModal","showPoOrder1Modal","editPoParamsData","editPo1ParamsData","showExpDetailsModal","isActiveFirst","configTodateTimePicker","maxDate","minDate","configFromdateTimePicker","User","users","users_option","projects","projects_option","category_option","statuses_option","status_id","dateFrom","dateTo","statuses","gridApi","sortable","resizable","suppressMenu","cityOptions","contacts","columnApi","setColumnPinned","computed","expenseFilter","$store","getters","paginationGetPageSize","paginationGetCurrentPage","tabIndex","allExp","odata","ProjectName","ExpenseName","CategoryName","Amount","Status","created_date","Approved_Reject_Date","approvedDate","dataOne","setQuickFilter","onFromChange","$set","dateStr","onToChange","api","ptBr","fromDate","hyAm","ca","frCa","nlBe","totalPo","purchaseOrder","totalPages","paginationGetTotalPages","POName","addCategory","editCategory","getAllCategories","getProjectMainCategories","getAllcategoriesByProject","getCategory","addSubCategory","editSubCategory","getAllSubCategories","categoryID","getSubCategoriesByParentCategory","project","gu","enIe","km","et","paIn","gd","_typeof","iterator","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_defineProperty","_objectSpread","ownKeys","getOwnPropertySymbols","language","monthsAbbr","yearSuffix","_language","_monthsAbbr","en","useUtc","getUTCHours","setUTCMonth","setUTCDate","compareDates","date1","date2","d1","d2","setUTCHours","isValidDate","getDayNameAbbr","getMonthName","getMonthNameAbbr","getNthSuffix","formatDate","translation","createDateArray","validateDateInput","makeDateUtils","utils$1","script","selectedDate","resetTypedDate","inline","Boolean","refName","openDate","placeholder","inputClass","clearButton","clearButtonIcon","calendarButton","calendarButtonIcon","calendarButtonIconContent","disabled","typeable","bootstrapStyling","constructedDateUtils","typedDate","formattedValue","computedInputClass","showCalendar","parseTypedDate","inputBlurred","clearDate","normalizeComponent","template","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","$root","$options","shadowRoot","originalRender","existing","normalizeComponent_1","__vue_script__","__vue_render__","readonly","autocomplete","domProps","keyup","__vue_staticRenderFns__","_withStripped","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","DateInput","script$1","showDayView","pageDate","pageTimestamp","fullMonthName","allowedToShowView","dayCellContent","disabledDates","highlighted","calendarClass","calendarStyle","isRtl","mondayFirst","daysOfWeek","tempDays","blankDays","dObj","timestamp","isSelected","isSelectedDate","isDisabled","isDisabledDate","isHighlighted","isHighlightedDate","isHighlightStart","isHighlightEnd","isToday","isWeekend","isSaturday","isSunday","currMonthName","currYearName","isYmd","isLeftNavDisabled","isNextMonthDisabled","isPreviousMonthDisabled","isRightNavDisabled","selectDate","getPageMonth","showMonthCalendar","changeMonth","incrementBy","previousMonth","nextMonth","_this","ranges","daysOfMonth","customPredictor","_this2","includeDisabled","isDefined","dayClasses","__vue_script__$1","__vue_render__$1","mousedown","__vue_staticRenderFns__$1","__vue_inject_styles__$1","__vue_scope_id__$1","__vue_module_identifier__$1","__vue_is_functional_template__$1","PickerDay","script$2","showMonthView","isSelectedMonth","isDisabledMonth","pageYearName","isNextYearDisabled","isPreviousYearDisabled","selectMonth","changeYear","previousYear","nextYear","showYearCalendar","__vue_script__$2","__vue_render__$2","__vue_staticRenderFns__$2","__vue_inject_styles__$2","__vue_scope_id__$2","__vue_module_identifier__$2","__vue_is_functional_template__$2","PickerMonth","script$3","showYearView","isSelectedYear","isDisabledYear","getPageDecade","decadeStart","decadeEnd","isNextDecadeDisabled","isPreviousDecadeDisabled","selectYear","previousDecade","disabledYear","lastYearInPreviousPage","nextDecade","firstYearInNextPage","__vue_script__$3","__vue_render__$3","__vue_staticRenderFns__$3","__vue_inject_styles__$3","__vue_scope_id__$3","__vue_module_identifier__$3","__vue_is_functional_template__$3","PickerYear","script$4","validator","initialView","minimumView","maximumView","startDate","calendarHeight","_value","setValue","setPageDate","setInitialView","computedInitialView","isInline","isOpen","resetDefaultPageDate","showDayCalendar","views","minimumViewIndex","maximumViewIndex","viewIndex","selectDisabledDate","handleChangedMonthFromDayPicker","setTypedDate","emitEvent","clickOutside","isOldIE","addStyle","group","media","ids","Set","btoa","unescape","encodeURIComponent","styleSheet","cssText","textNode","createTextNode","__vue_script__$4","__vue_render__$4","closeCalendar","changedMonth","selectedDisabled","changedYear","changedDecade","__vue_staticRenderFns__$4","__vue_inject_styles__$4","inject","__vue_scope_id__$4","__vue_module_identifier__$4","__vue_is_functional_template__$4","Datepicker","nl","xPseudo","permissionPageAccessArry","PermissionVariables","ViewCN","loginUserRole","status_name","priority_id","priority_name","priority_option","startDisabledDates","onSelectDate","endDisabledDates","toDateDisable","VHCList","isTally","vendors","vendor_name","vendor_options","submitStatus","clearForm","tabIndexCheck","expense","expenseDetails","colDef","total_amount","poList","crList","show_po","category_value","CurrentPage","pageNo","po_list","cr_list","pancardList","exp_invoice_number","vendorPan","vhcCode","shootLocation","tallyPaid","fixvar","shootLocationList","tallyTypeList","fixvarList","budgetCodesList","budgetCodes","permissionPageAccess","deep","allExpense","expenseService","getBudgetCodeList","getShootLocationList","nameWithParent","parent_category_name","getUsersList","getProjectsList","projectService","getVendorsList","ContractService","$validator","reset","getExpenseList","validateAll","then","title","iconPack","icon","getFilterExpList","projectId","userId","vendorId","invoiceNo","categoryId","priorityStatus","locationId","syncId","cn_date","vendor_pan","is_creditNote","$on","getPoActive","isActive","analyticsData","isImp","navbarSearchAndPinList","items","nextNum","myFilter","expenses","se"],"mappings":"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,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ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","file":"js/chunk-0984e7c0.7186ea38.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/pdf-icon.76036a91.png\";","module.exports = __webpack_public_path__ + \"img/docx_icon.0e167cc0.png\";","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Bugun soat] LT [da]',\n nextDay : '[Ertaga] LT [da]',\n nextWeek : 'dddd [kuni soat] LT [da]',\n lastDay : '[Kecha soat] LT [da]',\n lastWeek : '[O\\'tgan] dddd [kuni soat] LT [da]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Yaqin %s ichida',\n past : 'Bir necha %s oldin',\n s : 'soniya',\n ss : '%d soniya',\n m : 'bir daqiqa',\n mm : '%d daqiqa',\n h : 'bir soat',\n hh : '%d soat',\n d : 'bir kun',\n dd : '%d kun',\n M : 'bir oy',\n MM : '%d oy',\n y : 'bir yil',\n yy : '%d yil'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ml = moment.defineLocale('ml', {\n months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),\n weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm -നു',\n LTS : 'A h:mm:ss -നു',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm -നു',\n LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'\n },\n calendar : {\n sameDay : '[ഇന്ന്] LT',\n nextDay : '[നാളെ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ഇന്നലെ] LT',\n lastWeek : '[കഴിഞ്ഞ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s കഴിഞ്ഞ്',\n past : '%s മുൻപ്',\n s : 'അൽപ നിമിഷങ്ങൾ',\n ss : '%d സെക്കൻഡ്',\n m : 'ഒരു മിനിറ്റ്',\n mm : '%d മിനിറ്റ്',\n h : 'ഒരു മണിക്കൂർ',\n hh : '%d മണിക്കൂർ',\n d : 'ഒരു ദിവസം',\n dd : '%d ദിവസം',\n M : 'ഒരു മാസം',\n MM : '%d മാസം',\n y : 'ഒരു വർഷം',\n yy : '%d വർഷം'\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n }\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cv = moment.defineLocale('cv', {\n months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),\n weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar : {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L'\n },\n relativeTime : {\n future : function (output) {\n var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past : '%s каялла',\n s : 'пӗр-ик ҫеккунт',\n ss : '%d ҫеккунт',\n m : 'пӗр минут',\n mm : '%d минут',\n h : 'пӗр сехет',\n hh : '%d сехет',\n d : 'пӗр кун',\n dd : '%d кун',\n M : 'пӗр уйӑх',\n MM : '%d уйӑх',\n y : 'пӗр ҫул',\n yy : '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal : '%d-мӗш',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar : {\n sameDay : '[í dag kl.] LT',\n nextDay : '[á morgun kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[í gær kl.] LT',\n lastWeek : '[síðasta] dddd [kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'eftir %s',\n past : 'fyrir %s síðan',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : 'klukkustund',\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fo = moment.defineLocale('fo', {\n months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\n weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Í dag kl.] LT',\n nextDay : '[Í morgin kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[Í gjár kl.] LT',\n lastWeek : '[síðstu] dddd [kl] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'um %s',\n past : '%s síðani',\n s : 'fá sekund',\n ss : '%d sekundir',\n m : 'ein minuttur',\n mm : '%d minuttir',\n h : 'ein tími',\n hh : '%d tímar',\n d : 'ein dagur',\n dd : '%d dagar',\n M : 'ein mánaður',\n MM : '%d mánaðir',\n y : 'eitt ár',\n yy : '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ja = moment.defineLocale('ja', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort : '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin : '日_月_火_水_木_金_土'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日 dddd HH:mm',\n l : 'YYYY/MM/DD',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日(ddd) HH:mm'\n },\n meridiemParse: /午前|午後/i,\n isPM : function (input) {\n return input === '午後';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar : {\n sameDay : '[今日] LT',\n nextDay : '[明日] LT',\n nextWeek : function (now) {\n if (now.week() < this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay : '[昨日] LT',\n lastWeek : function (now) {\n if (this.week() < now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}日/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s後',\n past : '%s前',\n s : '数秒',\n ss : '%d秒',\n m : '1分',\n mm : '%d分',\n h : '1時間',\n hh : '%d時間',\n d : '1日',\n dd : '%d日',\n M : '1ヶ月',\n MM : '%dヶ月',\n y : '1年',\n yy : '%d年'\n }\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY h:mm A',\n LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arMa = moment.defineLocale('ar-ma', {\n months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['thodde secondanim', 'thodde second'],\n 'ss': [number + ' secondanim', number + ' second'],\n 'm': ['eka mintan', 'ek minute'],\n 'mm': [number + ' mintanim', number + ' mintam'],\n 'h': ['eka voran', 'ek vor'],\n 'hh': [number + ' voranim', number + ' voram'],\n 'd': ['eka disan', 'ek dis'],\n 'dd': [number + ' disanim', number + ' dis'],\n 'M': ['eka mhoinean', 'ek mhoino'],\n 'MM': [number + ' mhoineanim', number + ' mhoine'],\n 'y': ['eka vorsan', 'ek voros'],\n 'yy': [number + ' vorsanim', number + ' vorsam']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\\'var'.split('_'),\n weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'A h:mm [vazta]',\n LTS : 'A h:mm:ss [vazta]',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY A h:mm [vazta]',\n LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar : {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Ieta to] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fatlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s',\n past : '%s adim',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(er)/,\n ordinal : function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokalli|donparam|sanje/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokalli') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokalli';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n\n return gomLatn;\n\n})));\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCh = moment.defineLocale('fr-ch', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enAu = moment.defineLocale('en-au', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enAu;\n\n})));\n","\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n var suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n };\n\n var tr = moment.defineLocale('tr', {\n months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[yarın saat] LT',\n nextWeek : '[gelecek] dddd [saat] LT',\n lastDay : '[dün] LT',\n lastWeek : '[geçen] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s önce',\n s : 'birkaç saniye',\n ss : '%d saniye',\n m : 'bir dakika',\n mm : '%d dakika',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir yıl',\n yy : '%d yıl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) { // special case for zero\n return number + '\\'ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var da = moment.defineLocale('da', {\n months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay : '[i dag kl.] LT',\n nextDay : '[i morgen kl.] LT',\n nextWeek : 'på dddd [kl.] LT',\n lastDay : '[i går kl.] LT',\n lastWeek : '[i] dddd[s kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'få sekunder',\n ss : '%d sekunder',\n m : 'et minut',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dage',\n M : 'en måned',\n MM : '%d måneder',\n y : 'et år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tlPh = moment.defineLocale('tl-ph', {\n months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'MM/D/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY HH:mm',\n LLLL : 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar : {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'sa loob ng %s',\n past : '%s ang nakalipas',\n s : 'ilang segundo',\n ss : '%d segundo',\n m : 'isang minuto',\n mm : '%d minuto',\n h : 'isang oras',\n hh : '%d oras',\n d : 'isang araw',\n dd : '%d araw',\n M : 'isang buwan',\n MM : '%d buwan',\n y : 'isang taon',\n yy : '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eu = moment.defineLocale('eu', {\n months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact : true,\n weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY[ko] MMMM[ren] D[a]',\n LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l : 'YYYY-M-D',\n ll : 'YYYY[ko] MMM D[a]',\n lll : 'YYYY[ko] MMM D[a] HH:mm',\n llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar : {\n sameDay : '[gaur] LT[etan]',\n nextDay : '[bihar] LT[etan]',\n nextWeek : 'dddd LT[etan]',\n lastDay : '[atzo] LT[etan]',\n lastWeek : '[aurreko] dddd LT[etan]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s barru',\n past : 'duela %s',\n s : 'segundo batzuk',\n ss : '%d segundo',\n m : 'minutu bat',\n mm : '%d minutu',\n h : 'ordu bat',\n hh : '%d ordu',\n d : 'egun bat',\n dd : '%d egun',\n M : 'hilabete bat',\n MM : '%d hilabete',\n y : 'urte bat',\n yy : '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var th = moment.defineLocale('th', {\n months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY เวลา H:mm',\n LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar : {\n sameDay : '[วันนี้ เวลา] LT',\n nextDay : '[พรุ่งนี้ เวลา] LT',\n nextWeek : 'dddd[หน้า เวลา] LT',\n lastDay : '[เมื่อวานนี้ เวลา] LT',\n lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'อีก %s',\n past : '%sที่แล้ว',\n s : 'ไม่กี่วินาที',\n ss : '%d วินาที',\n m : '1 นาที',\n mm : '%d นาที',\n h : '1 ชั่วโมง',\n hh : '%d ชั่วโมง',\n d : '1 วัน',\n dd : '%d วัน',\n M : '1 เดือน',\n MM : '%d เดือน',\n y : '1 ปี',\n yy : '%d ปี'\n }\n });\n\n return th;\n\n})));\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global global, exports, module, require:false, process:false, Buffer:false, ArrayBuffer:false */\nvar XLSX = {};\nfunction make_xlsx_lib(XLSX){\nXLSX.version = '0.18.0';\nvar current_codepage = 1200, current_ansi = 1252;\n/*global cptable:true, window */\nif(typeof module !== \"undefined\" && typeof require !== 'undefined') {\n\tif(typeof cptable === 'undefined') {\n\t\tif(typeof global !== 'undefined') global.cptable = require('./dist/cpexcel.js');\n\t\telse if(typeof window !== 'undefined') window.cptable = require('./dist/cpexcel.js');\n\t}\n}\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 10000 ];\nfor(var i = 0; i <= 8; ++i) VALID_ANSI.push(1250 + i);\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n0: 1252, /* ANSI */\n1: 65001, /* DEFAULT */\n2: 65001, /* SYMBOL */\n77: 10000, /* MAC */\n128: 932, /* SHIFTJIS */\n129: 949, /* HANGUL */\n130: 1361, /* JOHAB */\n134: 936, /* GB2312 */\n136: 950, /* CHINESEBIG5 */\n161: 1253, /* GREEK */\n162: 1254, /* TURKISH */\n163: 1258, /* VIETNAMESE */\n177: 1255, /* HEBREW */\n178: 1256, /* ARABIC */\n186: 1257, /* BALTIC */\n204: 1251, /* RUSSIAN */\n222: 874, /* THAI */\n238: 1250, /* EASTEUROPE */\n255: 1252, /* OEM */\n69: 6969 /* MISC */\n});\n\nvar set_ansi = function(cp) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data) {\n\tvar o = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data) {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x) { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x) { return String.fromCharCode(x); };\nif(typeof cptable !== 'undefined') {\n\tset_cp = function(cp) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x) {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x) {\n\t\treturn cptable.utils.decode(current_ansi, [x])[0];\n\t};\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64 = (function make_b64(){\n\tvar map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\treturn {\n\t\tencode: function(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tfor(var i = 0; i < input.length; ) {\n\t\t\t\tc1 = input.charCodeAt(i++);\n\t\t\t\te1 = (c1 >> 2);\n\n\t\t\t\tc2 = input.charCodeAt(i++);\n\t\t\t\te2 = ((c1 & 3) << 4) | (c2 >> 4);\n\n\t\t\t\tc3 = input.charCodeAt(i++);\n\t\t\t\te3 = ((c2 & 15) << 2) | (c3 >> 6);\n\t\t\t\te4 = (c3 & 63);\n\t\t\t\tif (isNaN(c2)) { e3 = e4 = 64; }\n\t\t\t\telse if (isNaN(c3)) { e4 = 64; }\n\t\t\t\to += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);\n\t\t\t}\n\t\t\treturn o;\n\t\t},\n\t\tdecode: function b64_decode(input) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1=0, c2=0, c3=0, e1=0, e2=0, e3=0, e4=0;\n\t\t\tinput = input.replace(/[^\\w\\+\\/\\=]/g, \"\");\n\t\t\tfor(var i = 0; i < input.length;) {\n\t\t\t\te1 = map.indexOf(input.charAt(i++));\n\t\t\t\te2 = map.indexOf(input.charAt(i++));\n\t\t\t\tc1 = (e1 << 2) | (e2 >> 4);\n\t\t\t\to += String.fromCharCode(c1);\n\n\t\t\t\te3 = map.indexOf(input.charAt(i++));\n\t\t\t\tc2 = ((e2 & 15) << 4) | (e3 >> 2);\n\t\t\t\tif (e3 !== 64) { o += String.fromCharCode(c2); }\n\n\t\t\t\te4 = map.indexOf(input.charAt(i++));\n\t\t\t\tc3 = ((e3 & 3) << 6) | e4;\n\t\t\t\tif (e4 !== 64) { o += String.fromCharCode(c3); }\n\t\t\t}\n\t\t\treturn o;\n\t\t}\n\t};\n})();\nvar has_buf = (typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node);\n\nvar Buffer_from = function(){};\n\nif(typeof Buffer !== 'undefined') {\n\tvar nbfs = !Buffer.from;\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\n\t// $FlowIgnore\n\tif(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\n}\n\nfunction new_raw_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.alloc(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len) {\n\t/* jshint -W056 */\n\treturn has_buf ? Buffer.allocUnsafe(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s) {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x){ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s) {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data) {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data) {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data) {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\nvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = function(bufs) { return [].concat.apply([], bufs); };\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nvar SSF = ({});\nvar make_ssf = function make_ssf(SSF){\nSSF.version = '0.11.2';\nfunction _strrev(x) { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\nfunction pad0(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v,d){var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v,d){var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v,d){var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = Math.pow(2,32);\nfunction pad0r(v,d){if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\nfunction isgeneral(s, i) { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction init_table(t) {\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n}\n\nvar table_fmt = {};\ninit_table(table_fmt);\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar default_map = [];\nvar defi = 0;\n\n// 5 -> 37 ... 8 -> 40\nfor(defi = 5; defi <= 8; ++defi) default_map[defi] = 32 + defi;\n\n// 23 -> 0 ... 26 -> 0\nfor(defi = 23; defi <= 26; ++defi) default_map[defi] = 0;\n\n// 27 -> 14 ... 31 -> 14\nfor(defi = 27; defi <= 31; ++defi) default_map[defi] = 14;\n// 50 -> 14 ... 58 -> 14\nfor(defi = 50; defi <= 58; ++defi) default_map[defi] = 14;\n\n// 59 -> 1 ... 62 -> 4\nfor(defi = 59; defi <= 62; ++defi) default_map[defi] = defi - 58;\n// 67 -> 9 ... 68 -> 10\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 58;\n// 72 -> 14 ... 75 -> 17\nfor(defi = 72; defi <= 75; ++defi) default_map[defi] = defi - 58;\n\n// 69 -> 12 ... 71 -> 14\nfor(defi = 67; defi <= 68; ++defi) default_map[defi] = defi - 57;\n\n// 76 -> 20 ... 78 -> 22\nfor(defi = 76; defi <= 78; ++defi) default_map[defi] = defi - 56;\n\n// 79 -> 45 ... 81 -> 47\nfor(defi = 79; defi <= 81; ++defi) default_map[defi] = defi - 34;\n\n// 82 -> 0 ... 65536 -> 0 (omitted)\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar default_str = [];\n\n// 5 -- Currency, 0 decimal, black negative\ndefault_str[5] = default_str[63] = '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)';\n// 6 -- Currency, 0 decimal, red negative\ndefault_str[6] = default_str[64] = '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)';\n// 7 -- Currency, 2 decimal, black negative\ndefault_str[7] = default_str[65] = '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)';\n// 8 -- Currency, 2 decimal, red negative\ndefault_str[8] = default_str[66] = '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)';\n\n// 41 -- Accounting, 0 decimal, No Symbol\ndefault_str[41] = '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)';\n// 42 -- Accounting, 0 decimal, $ Symbol\ndefault_str[42] = '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)';\n// 43 -- Accounting, 2 decimal, No Symbol\ndefault_str[43] = '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)';\n// 44 -- Accounting, 2 decimal, $ Symbol\ndefault_str[44] = '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)';\nfunction frac(x, D, mixed) {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction parse_date_code(v,opts,b2) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nSSF.parse_date_code = parse_date_code;\nvar basedate = new Date(1899, 11, 31, 0, 0, 0);\nvar dnthresh = basedate.getTime();\nvar base1904 = new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= base1904) epoch += 24*60*60*1000;\n\treturn (epoch - (dnthresh + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* The longest 32-bit integer text is \"-4294967296\", exactly 11 chars */\nfunction general_fmt_int(v) { return v.toString(10); }\nSSF._general_int = general_fmt_int;\n\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\nvar general_fmt_num = (function make_general_fmt_num() {\n\tvar trailing_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)$/;\n\tfunction strip_decimal(o) {\n\t\treturn (o.indexOf(\".\") == -1) ? o : o.replace(trailing_zeroes_and_decimal, \"$1\");\n\t}\n\n\t/* General Exponential always shows 2 digits exp and trims the mantissa */\n\tvar mantissa_zeroes_and_decimal = /(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/;\n\tvar exp_with_single_digit = /(E[+-])(\\d)$/;\n\tfunction normalize_exp(o) {\n\t\tif(o.indexOf(\"E\") == -1) return o;\n\t\treturn o.replace(mantissa_zeroes_and_decimal,\"$1E\").replace(exp_with_single_digit,\"$10$2\");\n\t}\n\n\t/* exponent >= -9 and <= 9 */\n\tfunction small_exp(v) {\n\t\tvar w = (v<0?12:11);\n\t\tvar o = strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\t\to = v.toPrecision(10); if(o.length <= w) return o;\n\t\treturn v.toExponential(5);\n\t}\n\n\t/* exponent >= 11 or <= -10 likely exponential */\n\tfunction large_exp(v) {\n\t\tvar o = strip_decimal(v.toFixed(11));\n\t\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n\t}\n\n\tfunction general_fmt_num_base(v) {\n\t\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\t\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\t\telse if(Math.abs(V) <= 9) o = small_exp(v);\n\t\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\t\telse o = large_exp(v);\n\n\t\treturn strip_decimal(normalize_exp(o.toUpperCase()));\n\t}\n\n\treturn general_fmt_num_base;\n})();\nSSF._general_num = general_fmt_num;\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction general_fmt(v, opts) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : general_fmt_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\nSSF._general = general_fmt;\nfunction fix_hijri(date, o) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\n/*jshint -W086 */\nfunction write_date(type, fmt, val, ss0) {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\nif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n/*jshint +W086 */\nfunction commaify(s) {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar write_num = (function make_write_num(){\nvar pct1 = /%/g;\nfunction write_num_pct(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_cm(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_exp(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r, aval, sign) {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r, aval, sign) {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str) {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val, d) { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val, d) {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val, d) {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val) {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\no = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\nreturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\nSSF.is_date = fmt_is_date;\nfunction eval_fmt(fmt, v, opts, flen) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(abstime)) {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\nif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\nout[i].v = write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\nSSF._eval = eval_fmt;\nvar cfregex = /\\[[=<>]/;\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f, v) {\n\tvar fmt = split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(cfregex) != null || fmt[1].match(cfregex) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction format(fmt,v,o) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[default_map[fmt]]) || table_fmt[default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(isgeneral(sfmt,0)) return general_fmt(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(isgeneral(f[1])) return general_fmt(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction load_entry(fmt, idx) {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\nfor(var i = 0; i < 0x0188; ++i) {\nif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\nif(idx < 0) idx = 0x187;\n\t}\ntable_fmt[idx] = fmt;\n\treturn idx;\n}\nSSF.load = load_entry;\nSSF._table = table_fmt;\nSSF.get_table = function get_table() { return table_fmt; };\nSSF.load_table = function load_table(tbl) {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) load_entry(tbl[i], i);\n};\nSSF.init_table = init_table;\nSSF.format = format;\n};\nmake_ssf(SSF);\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*{[string]:string}*/ = ({\n\t\"General Number\": \"General\",\n\t\"General Date\": SSF._table[22],\n\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\"Medium Date\": SSF._table[15],\n\t\"Short Date\": SSF._table[14],\n\t\"Long Time\": SSF._table[19],\n\t\"Medium Time\": SSF._table[18],\n\t\"Short Time\": SSF._table[20],\n\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"Fixed\": SSF._table[2],\n\t\"Standard\": SSF._table[4],\n\t\"Percent\": SSF._table[10],\n\t\"Scientific\": SSF._table[11],\n\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n});\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n});\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF) {\n\tvar fmt = typeof dateNF == \"number\" ? SSF._table[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str, dateNF, match) {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\nvar DO_NOT_EXPORT_CFB = true;\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32;\n(function (factory) {\n\t/*jshint ignore:start */\n\t/*eslint-disable */\n\tfactory(CRC32 = {});\n\t/*eslint-enable */\n\t/*jshint ignore:end */\n}(function(CRC32) {\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table() {\n\tvar c = 0, table = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T = signed_crc_table();\nfunction crc32_bstr(bstr, seed) {\n\tvar C = seed ^ -1, L = bstr.length - 1;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t\tC = (C>>>8) ^ T[(C^bstr.charCodeAt(i++))&0xFF];\n\t}\n\tif(i === L) C = (C>>>8) ^ T[(C ^ bstr.charCodeAt(i))&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf(buf, seed) {\n\tif(buf.length > 10000) return crc32_buf_8(buf, seed);\n\tvar C = seed ^ -1, L = buf.length - 3;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+3) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_buf_8(buf, seed) {\n\tvar C = seed ^ -1, L = buf.length - 7;\n\tfor(var i = 0; i < L;) {\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t\tC = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\t}\n\twhile(i < L+7) C = (C>>>8) ^ T[(C^buf[i++])&0xFF];\n\treturn C ^ -1;\n}\n\nfunction crc32_str(str, seed) {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L=str.length, c, d; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T[(C ^ c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn C ^ -1;\n}\nCRC32.table = T;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\n}));\n/* [MS-CFB] v20171201 */\nvar CFB = (function _CFB(){\nvar exports = {};\nexports.version = '1.1.4';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l, r) {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p) {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf, date) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf) {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob) {\n\tprep_blob(blob, 0);\n\tvar o = {};\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs;\nfunction get_fs() { return fs || (fs = require('fs')); }\nfunction parse(file, options) {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob = file.slice(0,512);\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files = {}, Paths = [], FileIndex = [], FullPaths = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob) {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob, mver) {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file, ssz) {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI, FP, Paths) {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad = [], q = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry, payload, mini) {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size));\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0));\n\treturn (bconcat(o).slice(0, entry.size));\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {\n\tvar q = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tif(cnt >= 1) sleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors, start, fat_addrs, ssz, chkd) {\n\tvar buf = [], buf_chain = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors, dir_start, fat_addrs, ssz) {\n\tvar sl = sectors.length, sector_list = ([]);\n\tvar chkd = [], buf = [], buf_chain = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])});\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob = sector.slice(i, i+128);\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size));\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob, offset) {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename, options) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob, options) {\n\tswitch(options && options.type || \"base64\") {\n\t\tcase \"file\": return read_file(blob, options);\n\t\tcase \"base64\": return parse(s2a(Base64.decode(blob)), options);\n\t\tcase \"binary\": return parse(s2a(blob), options);\n\t}\n\treturn parse(blob, options);\n}\n\nfunction init_cfb(cfb, opts) {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 });\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb) {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb, f) {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\tvar data = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = false;\n\t\tfor(j = 0; j < data.length; ++j) if(data[j][0] === dad) s = true;\n\t\tif(!s) data.push([dad, ({\n\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\ttype: 1,\n\t\t\tclsid: HEADER_CLSID,\n\t\t\tct: now, mt: now,\n\t\t\tcontent: null\n\t\t})]);\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb, options) {\n\tvar _opts = options || {};\n\trebuild_cfb(cfb);\n\tif(_opts.fileType == 'zip') return write_zip(cfb, _opts);\n\tvar L = (function(cfb){\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\nvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w) {\n\t\tfor(T += w; i> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\nflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm = (i === 0 && _opts.root) || file.name;\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\nif(file.size > 0 && file.size < 0x1000) {\n\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t}\n\t}\n\twhile(o.l < o.length) o.write_shift(1, 0);\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb, path) {\n\tvar UCFullPaths = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath = path.toUpperCase();\n\tvar w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb, filename, options) {\n\tget_fs();\n\tvar o = _write(cfb, options);\nfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o) {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb, options) {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type) {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o)); return o;\n\t\tcase \"binary\": return a2s(o);\n\t\tcase \"base64\": return Base64.encode(a2s(o));\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 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 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 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 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < b.length; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}var _deflate = (function() {\nvar _deflateRaw = (function() {\n\treturn function deflateRaw(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\t/* TODO: this is only type 0 stored */\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t};\n})();\n\nreturn function(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n};\n})();\n/* modified inflate function also moves original read head */\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX) {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\tif(typeof data.copy === 'function') {\n\t\t\t\t// $FlowIgnore\n\t\t\t\tdata.copy(outbuf, woff, boff>>>3, (boff>>>3)+sz);\n\t\t\t\twoff += sz; boff += 8*sz;\n\t\t\t} else while(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\tcontinue;\n\t\t} else if((header >>> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\treturn [usz ? outbuf : outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file, options) {\n\tvar blob = file;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex = [], FullPaths = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(blob.slice(blob.l+namelen, blob.l+namelen+efsz));\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob, csz, usz, o, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(blob.slice(blob.l, blob.l + efsz));\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif(((EF||{})[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break;\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\tvar _crc32 = CRC32.buf(data, 0);\n\tif((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb, options) {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = CRC32.buf(fi.content, 0);\n\n\t\tvar outbuf = fi.content;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: encryption header ? */\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, fi.content.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, fi.content.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out)), bconcat(cdirs), o]));\n}\nfunction cfb_new(opts) {\n\tvar o = ({});\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb, name, content, opts) {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2});\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\nfile.content = (content);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb, name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb, old_name, new_name) {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb) { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nif(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }\nvar _fs;\nif(typeof require !== 'undefined') try { _fs = require('fs'); } catch(e) {}\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname, payload, enc) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\nif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\nif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\nif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\nif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\na.download = fname; a.href = url; document.body.appendChild(a); a.click();\ndocument.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o) {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj, key) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj) {\n\tvar o = ([]), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v, date1904) {\n\tvar epoch = v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = basedate.getTime() + (v.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = new Date();\nvar dnthresh = basedate.getTime() + (refdate.getTimezoneOffset() - basedate.getTimezoneOffset()) * 60000;\nvar refoffset = refdate.getTimezoneOffset();\nfunction numdate(v) {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date = new Date('2017-02-19T19:06:09.000Z');\nif(isNaN(good_pd_date.getFullYear())) good_pd_date = new Date('2/19/17');\nvar good_pd = good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str, fixdate) {\n\tvar d = new Date(str);\n\tif(good_pd) {\nif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr) {\n\tvar o = \"\";\n\tfor(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);\n\treturn o;\n}\n\nfunction dup(o) {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s) {\n\tvar v = Number(s);\n\tif(isFinite(v)) return v;\n\tif(!isNaN(v)) return NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\nfunction fuzzydate(s) {\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(y < 0 || y > 8099) return n;\n\tif((m > 0 || d > 1) && y != 101) return o;\n\tif(s.toLowerCase().match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) return o;\n\tif(s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\nfunction split_regex(str, re, def) {\n\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\tvar p = str.split(re), o = [p[0]];\n\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\treturn o;\n}\nfunction getdatastr(data) {\n\tif(!data) return null;\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\tif(data.content && data.type) return debom(cc2str(data.content));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg;\n\nif(!(XML_HEADER.match(tagregex))) tagregex = /<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root, skip_LC) {\n\tvar z = ({});\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x) { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml = (function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\treturn function unescapexml(text) {\n\t\tvar s = text + '', i = s.indexOf(\"-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn unescapexml(s.slice(0, i)) + s.slice(i+9,j) + unescapexml(s.slice(j+3));\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text){ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"
\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr = (function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str) { return str.replace(entregex,entrepl); };\n})();\nvar xlml_unfixstr = (function() {\n\treturn function xlml_unfixstr(str) { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); };\n})();\n\nfunction parsexmlbool(value) {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nvar utf8read = function utf8reada(orig) {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n};\n\nvar utf8write = function(orig) {\n\tvar out = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\nif(has_buf) {\n\tvar utf8readb = function utf8readb(data) {\n\t\tvar out = Buffer.alloc(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\t\tfor(i = 0; i < data.length; i+=j) {\n\t\t\tj = 1;\n\t\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\t\telse { j = 4;\n\t\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t\t}\n\t\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t\t}\n\t\treturn out.slice(0,k).toString('ucs2');\n\t};\n\tvar corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\n\tif(utf8read(corpus) == utf8readb(corpus)) utf8read = utf8readb;\n\tvar utf8readc = function utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); };\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\n\n\tutf8write = function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); };\n}\n\n// matches ... extracts content\nvar matchtag = (function() {\n\tvar mtcache = ({});\n\treturn function matchtag(f,g) {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)',((g||\"\"))));\n\t};\n})();\n\nvar htmldecode = (function() {\n\tvar entities = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str) {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+ tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = (function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)' + g + ''; }\n\nfunction wxt_helper(h) { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f,g,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '';}\n\nfunction write_w3cdtf(d, t) { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx) {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nvar XMLNS = ({\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n});\n\nXMLNS.main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n});\nfunction read_double_le(b, idx) {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b, v, idx) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar __toBuffer = function(bufs) { var x=[],w=10240; for(var i=0;i 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpstr = __lpstr;\nvar __cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___cpstr = __cpstr;\nvar __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar ___lpwstr = __lpwstr;\nvar __lpp4, ___lpp4;\n__lpp4 = ___lpp4 = function lpp4_(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar ___8lpp4 = __8lpp4;\nvar __double, ___double;\n__double = ___double = function(b, idx) { return read_double_le(b, idx);};\nvar is_buf = function is_buf_a(a) { return Array.isArray(a); };\n\nif(has_buf) {\n\t__utf16le = function(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; };\n\t__hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); };\n\t__lpstr = function lpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b, i) { if(!Buffer.isBuffer(b)) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b, i) { if(!Buffer.isBuffer(b)) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__utf8 = function utf8_b(b, s, e) { return (Buffer.isBuffer(b)) ? b.toString('utf8',s,e) : ___utf8(b,s,e); };\n\t__toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);};\n\tbconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); };\n\t__double = function double_(b, i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); };\n}\n\n/* from js-xls */\nif(typeof cptable !== 'undefined') {\n\t__utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\n\nvar __readUInt8 = function(b, idx) { return b[idx]; };\nvar __readUInt16LE = function(b, idx) { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b, idx) { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b, idx) { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size, t) {\n\tvar o=\"\", oI, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof cptable !== 'undefined') o = cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof cptable !== 'undefined') {\n\t\t\t\to = cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b, val, idx) { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t, val, f) {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\nfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\tif(typeof cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\nfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cppayload = cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cppayload[0];\n\t\t\t}\n\t\t} else {\nval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\nfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\nthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\nvar end = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr, fld) {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos) {\n\tblob.l = pos;\n\tblob.read_shift = ReadShift;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length) { blob.l += length; }\n\nfunction new_buf(sz) {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb, opts) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R.n, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array() {\n\tvar bufs = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz) {\n\t\tvar o = (new_buf(sz));\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz) {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn __toBuffer([bufs]);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs });\n}\n\nfunction write_record(ba, type, payload, length) {\n\tvar t = +XLSBRE[type], l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell, tgt, opts) {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c, biff) {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts) {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nvar OFFCRYPTO = {};\n\nvar make_offcrypto = function(O, _crypto) {\n\tvar crypto;\n\tif(typeof _crypto !== 'undefined') crypto = _crypto;\n\telse if(typeof require !== 'undefined') {\n\t\ttry { crypto = require('crypto'); }\n\t\tcatch(e) { crypto = null; }\n\t}\n\n\tO.rc4 = function(key, data) {\n\t\tvar S = new Array(256);\n\t\tvar c = 0, i = 0, j = 0, t = 0;\n\t\tfor(i = 0; i != 256; ++i) S[i] = i;\n\t\tfor(i = 0; i != 256; ++i) {\n\t\t\tj = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t}\n\t\t// $FlowIgnore\n\t\ti = j = 0; var out = new_raw_buf(data.length);\n\t\tfor(c = 0; c != data.length; ++c) {\n\t\t\ti = (i + 1)&255;\n\t\t\tj = (j + S[i])%256;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t\tout[c] = (data[c] ^ S[(S[i]+S[j])&255]);\n\t\t}\n\t\treturn out;\n\t};\n\n\tO.md5 = function(hex) {\n\t\tif(!crypto) throw new Error(\"Unsupported crypto\");\n\t\treturn crypto.createHash('md5').update(hex).digest('hex');\n\t};\n};\n/*global crypto:true */\nmake_offcrypto(OFFCRYPTO, typeof crypto !== \"undefined\" ? crypto : undefined);\n\nfunction decode_row(rowstr) { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row) { return \"\" + (row + 1); }\nfunction fix_row(cstr) { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr) { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr) { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col) { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr) { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr) { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr) { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\n//function decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction decode_cell(cstr) {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\n//function encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\nfunction encode_cell(cell) {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range) {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\nfunction encode_range(cs,ce) {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\nreturn encode_range(cs.s, cs.e);\n\t}\nif(typeof cs !== 'string') cs = encode_cell((cs));\n\tif(typeof ce !== 'string') ce = encode_cell((ce));\nreturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range) {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell, v) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF.format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF.format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell, v, o) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet, opts) {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws, data, opts) {\n\tvar o = opts || {};\n\tvar dense = _ws ? Array.isArray(_ws) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws = _ws || (dense ? ([]) : ({}));\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell = ({v: data[R][C] });\n\t\t\tvar __R = _R + R, __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF.format(cell.z, datenum(cell.v)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v); cell.w = SSF.format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(!ws[__R]) ws[__R] = [];\n\t\t\t\tif(ws[__R][__C] && ws[__R][__C].z) cell.z = ws[__R][__C].z;\n\t\t\t\tws[__R][__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_cell(({c:__C,r:__R}));\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data, opts) { return sheet_add_aoa(null, data, opts); }\n\nfunction write_UInt32LE(x, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data) {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length) {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str });\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str, o) {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data) {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell, o) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data) {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data) {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tb[0] &= 0xFC; // b[0] &= ~3;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, b[0], b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data ) {\n\tvar cell = ({ s: {}, e: {} });\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w) {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\nvar VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\nvar VT_VECTOR = 0x1000;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Category', t: VT_STRING },\n0x03: { n: 'PresentationFormat', t: VT_STRING },\n0x04: { n: 'ByteCount', t: VT_I4 },\n0x05: { n: 'LineCount', t: VT_I4 },\n0x06: { n: 'ParagraphCount', t: VT_I4 },\n0x07: { n: 'SlideCount', t: VT_I4 },\n0x08: { n: 'NoteCount', t: VT_I4 },\n0x09: { n: 'HiddenCount', t: VT_I4 },\n0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n0x0b: { n: 'ScaleCrop', t: VT_BOOL },\n0x0c: { n: 'HeadingPairs', t: VT_VECTOR | VT_VARIANT },\n0x0d: { n: 'TitlesOfParts', t: VT_VECTOR | VT_LPSTR },\n0x0e: { n: 'Manager', t: VT_STRING },\n0x0f: { n: 'Company', t: VT_STRING },\n0x10: { n: 'LinksUpToDate', t: VT_BOOL },\n0x11: { n: 'CharacterCount', t: VT_I4 },\n0x13: { n: 'SharedDoc', t: VT_BOOL },\n0x16: { n: 'HyperlinksChanged', t: VT_BOOL },\n0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n0x18: { n: 'DigSig', t: VT_BLOB },\n0x1A: { n: 'ContentType', t: VT_STRING },\n0x1B: { n: 'ContentStatus', t: VT_STRING },\n0x1C: { n: 'Language', t: VT_STRING },\n0x1D: { n: 'Version', t: VT_STRING },\n0xFF: {},\n\t/* [MS-OLEPS] 2.18 */\n0x80000000: { n: 'Locale', t: VT_UI4 },\n0x80000003: { n: 'Behavior', t: VT_UI4 },\n0x72627262: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n0x01: { n: 'CodePage', t: VT_I2 },\n0x02: { n: 'Title', t: VT_STRING },\n0x03: { n: 'Subject', t: VT_STRING },\n0x04: { n: 'Author', t: VT_STRING },\n0x05: { n: 'Keywords', t: VT_STRING },\n0x06: { n: 'Comments', t: VT_STRING },\n0x07: { n: 'Template', t: VT_STRING },\n0x08: { n: 'LastAuthor', t: VT_STRING },\n0x09: { n: 'RevNumber', t: VT_STRING },\n0x0A: { n: 'EditTime', t: VT_FILETIME },\n0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n0x0E: { n: 'PageCount', t: VT_I4 },\n0x0F: { n: 'WordCount', t: VT_I4 },\n0x10: { n: 'CharCount', t: VT_I4 },\n0x11: { n: 'Thumbnail', t: VT_CF },\n0x12: { n: 'Application', t: VT_STRING },\n0x13: { n: 'DocSecurity', t: VT_I4 },\n0xFF: {},\n\t/* [MS-OLEPS] 2.18 */\n0x80000000: { n: 'Locale', t: VT_UI4 },\n0x80000003: { n: 'Behavior', t: VT_UI4 },\n0x72627262: {}\n};\n\nvar DocSummaryRE = evert_key(DocSummaryPIDDSI, \"n\");\nvar SummaryRE = evert_key(SummaryPIDSI, \"n\");\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n0x0001: \"US\", // United States\n0x0002: \"CA\", // Canada\n0x0003: \"\", // Latin America (except Brazil)\n0x0007: \"RU\", // Russia\n0x0014: \"EG\", // Egypt\n0x001E: \"GR\", // Greece\n0x001F: \"NL\", // Netherlands\n0x0020: \"BE\", // Belgium\n0x0021: \"FR\", // France\n0x0022: \"ES\", // Spain\n0x0024: \"HU\", // Hungary\n0x0027: \"IT\", // Italy\n0x0029: \"CH\", // Switzerland\n0x002B: \"AT\", // Austria\n0x002C: \"GB\", // United Kingdom\n0x002D: \"DK\", // Denmark\n0x002E: \"SE\", // Sweden\n0x002F: \"NO\", // Norway\n0x0030: \"PL\", // Poland\n0x0031: \"DE\", // Germany\n0x0034: \"MX\", // Mexico\n0x0037: \"BR\", // Brazil\n0x003d: \"AU\", // Australia\n0x0040: \"NZ\", // New Zealand\n0x0042: \"TH\", // Thailand\n0x0051: \"JP\", // Japan\n0x0052: \"KR\", // Korea\n0x0054: \"VN\", // Viet Nam\n0x0056: \"CN\", // China\n0x005A: \"TR\", // Turkey\n0x0069: \"JS\", // Ramastan\n0x00D5: \"DZ\", // Algeria\n0x00D8: \"MA\", // Morocco\n0x00DA: \"LY\", // Libya\n0x015F: \"PT\", // Portugal\n0x0162: \"IS\", // Iceland\n0x0166: \"FI\", // Finland\n0x01A4: \"CZ\", // Czech Republic\n0x0376: \"TW\", // Taiwan\n0x03C1: \"LB\", // Lebanon\n0x03C2: \"JO\", // Jordan\n0x03C3: \"SY\", // Syria\n0x03C4: \"IQ\", // Iraq\n0x03C5: \"KW\", // Kuwait\n0x03C6: \"SA\", // Saudi Arabia\n0x03CB: \"AE\", // United Arab Emirates\n0x03CC: \"IL\", // Israel\n0x03CE: \"QA\", // Qatar\n0x03D5: \"IR\", // Iran\n0xFFFF: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0xFFFFFF, /* 0x40 icvForeground ?? */\n\t0x000000, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n0x00: \"#NULL!\",\n0x07: \"#DIV/0!\",\n0x0F: \"#VALUE!\",\n0x17: \"#REF!\",\n0x1D: \"#NAME?\",\n0x24: \"#NUM!\",\n0x2A: \"#N/A\",\n0x2B: \"#GETTING_DATA\",\n0xFF: \"#WTF?\"\n};\nvar RBErr = evert_num(BErr);\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary */\n/* 14.2 Part Summary */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* Metadata */\n\t\"application/vnd.ms-excel.sheetMetadata\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"TODO\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"vba\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n});\n\nvar CT_LIST = (function(){\n\tvar o = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tcomments: { /* Comments */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t\t},\n\t\tsheets: { /* Worksheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tcharts: { /* Chartsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t\t},\n\t\tdialogs: { /* Dialogsheet */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t\t},\n\t\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t\t},\n\t\tstyles: { /* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n\t};\n\tkeys(o).forEach(function(k) { [\"xlsm\", \"xlam\"].forEach(function(v) { if(!o[k][v]) o[k][v] = o[k].xlsx; }); });\n\tkeys(o).forEach(function(k){ keys(o[k]).forEach(function(v) { ct2type[o[k][v]] = k; }); });\n\treturn o;\n})();\n\nvar type2ct/*{[string]:Array}*/ = evert_arr(ct2type);\n\nXMLNS.CT = 'http://schemas.openxmlformats.org/package/2006/content-types';\n\nfunction new_ct() {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [],\n\t\tTODO:[], xmlns: \"\" });\n}\n\nfunction parse_ct(data) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase ' 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nvar CTYPE_XML_ROOT = writextag('Types', null, {\n\t'xmlns': XMLNS.CT,\n\t'xmlns:xsd': XMLNS.xsd,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nvar CTYPE_DEFAULTS = [\n\t['xml', 'application/xml'],\n\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t/* from test files */\n\t['bmp', 'image/bmp'],\n\t['png', 'image/png'],\n\t['gif', 'image/gif'],\n\t['emf', 'image/x-emf'],\n\t['wmf', 'image/x-wmf'],\n\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t['pdf', 'application/pdf'],\n\t['rels', type2ct.rels[0]]\n].map(function(x) {\n\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n});\n\nfunction write_ct(ct, opts) {\n\tvar o = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (CTYPE_XML_ROOT);\n\to = o.concat(CTYPE_DEFAULTS);\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('drawings');\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n});\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file) {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data, currentFilePath) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nvar RELS_EXTERN = [RELS.HLINK, RELS.XPATH, RELS.XMISS];\nfunction add_rels(rels, rId, f, type, relobj, targetmode) {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(rId < 0) for(rId = 1; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if(RELS_EXTERN.indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\n/* Open Document Format for Office Applications (OpenDocument) Version 1.2 */\n/* Part 3 Section 4 Manifest File */\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar FEtag;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'manifest': break; // 4.2 \n\t\tcase 'file-entry': // 4.3 \n\t\t\tFEtag = parsexmltag(Rn[0], false);\n\t\t\tif(FEtag.path == '/' && FEtag.type !== CT_ODS) throw new Error(\"This OpenDocument is not a spreadsheet\");\n\t\t\tbreak;\n\t\tcase 'encryption-data': // 4.4 \n\t\tcase 'algorithm': // 4.5 \n\t\tcase 'start-key-generation': // 4.6 \n\t\tcase 'key-derivation': // 4.7 \n\t\t\tthrow new Error(\"Unsupported ODS Encryption\");\n\t\tdefault: if(opts && opts.WTF) throw Rn;\n\t}\n}\n\nfunction write_manifest(manifest) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\to.push(' \\n');\n\tfor(var i = 0; i < manifest.length; ++i) o.push(' \\n');\n\to.push('');\n\treturn o.join(\"\");\n}\n\n/* Part 3 Section 6 Metadata Manifest File */\nfunction write_rdf_type(file, res, tag) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n\treturn [\n\t\t' \\n',\n\t\t' \\n',\n\t\t' \\n'\n\t].join(\"\");\n}\nfunction write_rdf(rdf) {\n\tvar o = [XML_HEADER];\n\to.push('\\n');\n\tfor(var i = 0; i != rdf.length; ++i) {\n\t\to.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n\t\to.push(write_rdf_has(\"\",rdf[i][0]));\n\t}\n\to.push(write_rdf_type(\"\",\"Document\", \"pkg\"));\n\to.push('');\n\treturn o.join(\"\");\n}\n/* TODO: pull properties */\nvar write_meta_ods = (function() {\n\tvar payload = 'Sheet' + 'JS ' + XLSX.version + '';\n\treturn function wmo() {\n\t\treturn payload;\n\t};\n})();\n\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nXMLNS.CORE_PROPS = \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";\nRELS.CORE_PROPS = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties';\n\nvar CORE_PROPS_REGEX = (function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nvar CORE_PROPS_XML_ROOT = writextag('cp:coreProperties', null, {\n\t//'xmlns': XMLNS.CORE_PROPS,\n\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t'xmlns:dc': XMLNS.dc,\n\t'xmlns:dcterms': XMLNS.dcterms,\n\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, CORE_PROPS_XML_ROOT], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nXMLNS.EXT_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";\nRELS.EXT_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties';\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nvar EXT_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.EXT_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_ext_props(cp) {\n\tvar o = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (EXT_PROPS_XML_ROOT);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', 'Worksheets')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"\" + escapexml(s) + \"\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nXMLNS.CUST_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";\nRELS.CUST_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties';\n\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': name = null; break;\n\t\t\tdefault: if (x.indexOf('');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM = evert(XLMLDocPropsMap);\n\nfunction xlml_set_prop(Props, tag, val) {\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o = [];\n\tif(Props) keys(Props).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\nif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob) {\n\tvar length = blob.read_shift(4);\n\tvar ret = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob) {\n\tvar length = blob.read_shift(4);\n\tvar ret = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict = ({});\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type, _opts) {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\np = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj = ({});\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2));\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ].concat(PseudoPropsPairs);\nfunction guess_property_type(val) {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI)[idx];\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\nvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({});\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier });\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI, entries2, clsid2) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"\" + z.t + \"\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length) {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target});\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob) {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe});\n}\nfunction write_XLSCell(R, C, ixfe, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n0x00: parse_FtSkip, /* FtEnd */\n0x04: parse_FtSkip, /* FtMacro */\n0x05: parse_FtSkip, /* FtButton */\n0x06: parse_FtSkip, /* FtGmo */\n0x07: parse_FtCf, /* FtCf */\n0x08: parse_FtSkip, /* FtPioGrbit */\n0x09: parse_FtSkip, /* FtPictFmla */\n0x0A: parse_FtSkip, /* FtCbls */\n0x0B: parse_FtSkip, /* FtRbo */\n0x0C: parse_FtSkip, /* FtSbs */\n0x0D: parse_FtNts, /* FtNts */\n0x0E: parse_FtSkip, /* FtSbsFmla */\n0x0F: parse_FtSkip, /* FtGboData */\n0x10: parse_FtSkip, /* FtEdoData */\n0x11: parse_FtSkip, /* FtRboData */\n0x12: parse_FtSkip, /* FtCblsData */\n0x13: parse_FtSkip, /* FtLbsData */\n0x14: parse_FtSkip, /* FtCblsFmla */\n0x15: parse_FtCmo\n};\nfunction parse_FtArray(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, tgt - blob.l));\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb, t, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length) {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs = ([]);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\no.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({});\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1() {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R, C, v, os ) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R, C, v, os, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i, f, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R, C, v, os, opts, t) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R, C, v, os) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t});\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: verify filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length) {\n\tvar merges = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = [];\nparse_BIFF5OT[0x08] = function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts);\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob) {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags});\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r, c, val) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r, c, val) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n/* from js-harb (C) 2014-present SheetJS */\nvar DBF = (function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n\n\t/* shapefile DBF extension */\n0x00: 20127, 0x08: 865,\n0x09: 437, 0x0A: 850,\n0x0B: 437, 0x0D: 437,\n0x0E: 850, 0x0F: 437,\n0x10: 850, 0x11: 437,\n0x12: 850, 0x13: 932,\n0x14: 850, 0x15: 437,\n0x16: 850, 0x17: 865,\n0x18: 437, 0x19: 437,\n0x1A: 850, 0x1B: 437,\n0x1C: 863, 0x1D: 850,\n0x1F: 852, 0x22: 852,\n0x23: 852, 0x24: 860,\n0x25: 850, 0x26: 866,\n0x37: 850, 0x40: 852,\n0x4D: 936, 0x4E: 949,\n0x4F: 950, 0x50: 874,\n0x57: 1252, 0x58: 1252,\n0x59: 1252, 0x6C: 863,\n0x86: 737, 0x87: 852,\n0x88: 857, 0xCC: 1257,\n\n0xFF: 16969\n};\nvar dbf_reverse_map = evert({\n0x01: 437, 0x02: 850,\n0x03: 1252, 0x04: 10000,\n0x64: 852, 0x65: 866,\n0x66: 865, 0x67: 861,\n0x68: 895, 0x69: 620,\n0x6A: 737, 0x6B: 857,\n0x78: 950, 0x79: 949,\n0x7A: 936, 0x7B: 932,\n0x7C: 874, 0x7D: 1255,\n0x7E: 1256, 0x96: 10007,\n0x97: 10029, 0x98: 10006,\n0xC8: 1250, 0xC9: 1251,\n0xCA: 1254, 0xCB: 1253,\n0x00: 20127\n});\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts) {\n\tvar out = [];\n\tvar d = (new_raw_buf(1));\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64.decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\nvar fields = [], field = ({});\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({});\n\t\tfield.name = cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = cptable.utils.decode(current_cp, dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4; break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts) {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\treturn aoa_to_sheet(dbf_to_aoa(buf, o), o);\n}\n\nfunction dbf_to_workbook(buf, opts) {\n\ttry { return sheet_to_workbook(dbf_to_sheet(buf, opts), opts); }\n\tcatch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws, opts) {\n\tvar o = opts || {};\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1);\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(i == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar col = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tvar guess = '', _guess = '';\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\tif(guess == 'C') break;\n\t\t}\n\t\trlen += _RLEN[guess] || 0;\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\th.write_shift(4, 0x00000000 | ((+dbf_reverse_map[current_ansi] || 0x03)<<8));\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += _RLEN[coltypes[i]] || 0;\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j\":190, \"?\":191, \"{\":223\n\t});\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* TODO: find an actual specification */\n\tfunction sylk_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str, opts) {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr = [];\n\t\tvar formats = [];\n\t\tvar next_cell_format = null;\n\t\tvar sht = {}, rowinfo = [], colinfo = [], cw = [];\n\t\tvar Mval = 0, j;\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': break; /* options? */\n\t\t\tcase 'W': break; /* window? */\n\t\t\tcase 'P':\n\t\t\t\tif(record[1].charAt(0) == 'P')\n\t\t\t\t\tformats.push(rstr.slice(3).replace(/;;/g, \";\"));\n\t\t\t\tbreak;\n\t\t\tcase 'C':\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1;\n\t\t\tfor(rj=1; rj -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tarr[R][C][1] = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F':\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht];\n\t}\n\n\tfunction sylk_to_sheet(d, opts) {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1];\n\t\tvar o = aoa_to_sheet(aoa, opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\treturn o;\n\t}\n\n\tfunction sylk_to_workbook(d, opts) { return sheet_to_workbook(sylk_to_sheet(d, opts), opts); }\n\n\tfunction write_ws_cell_sylk(cell, ws, R, C) {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + cell.v.replace(/\"/g,\"\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out, rows) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws, opts) {\n\t\tvar preamble = [\"ID;PWXL;N;E\"], o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tvar RS = \"\\r\\n\";\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\to.push(write_ws_cell_sylk(cell, ws, R, C, opts));\n\t\t\t}\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tto_sheet: sylk_to_sheet,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = (function() {\n\tfunction dif_to_aoa(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str, opts) { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str, opts) { return sheet_to_workbook(dif_to_sheet(str, opts), opts); }\n\n\tvar sheet_to_dif = (function() {\n\t\tvar push_field = function pf(o, topic, v, n, s) {\n\t\t\to.push(topic);\n\t\t\to.push(v + \",\" + n);\n\t\t\to.push('\"' + s.replace(/\"/g,'\"\"') + '\"');\n\t\t};\n\t\tvar push_value = function po(o, type, v, s) {\n\t\t\to.push(type + \",\" + v);\n\t\t\to.push(type == 1 ? '\"' + s.replace(/\"/g,'\"\"') + '\"' : s);\n\t\t};\n\t\treturn function sheet_to_dif(ws) {\n\t\t\tvar o = [];\n\t\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tpush_field(o, \"TABLE\", 0, 1, \"sheetjs\");\n\t\t\tpush_field(o, \"VECTORS\", 0, r.e.r - r.s.r + 1,\"\");\n\t\t\tpush_field(o, \"TUPLES\", 0, r.e.c - r.s.c + 1,\"\");\n\t\t\tpush_field(o, \"DATA\", 0, 0,\"\");\n\t\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\t\tpush_value(o, -1, 0, \"BOT\");\n\t\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\t\tif(!cell) { push_value(o, 1, 0, \"\"); continue;}\n\t\t\t\t\tswitch(cell.t) {\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tvar val = DIF_XL ? cell.w : cell.v;\n\t\t\t\t\t\t\tif(!val && cell.v != null) val = cell.v;\n\t\t\t\t\t\t\tif(val == null) {\n\t\t\t\t\t\t\t\tif(DIF_XL && cell.f && !cell.F) push_value(o, 1, 0, \"=\" + cell.f);\n\t\t\t\t\t\t\t\telse push_value(o, 1, 0, \"\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse push_value(o, 0, val, \"V\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'b':\n\t\t\t\t\t\t\tpush_value(o, 0, cell.v ? 1 : 0, cell.v ? \"TRUE\" : \"FALSE\");\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 's':\n\t\t\t\t\t\t\tpush_value(o, 1, 0, (!DIF_XL || isNaN(cell.v)) ? cell.v : '=\"' + cell.v + '\"');\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'd':\n\t\t\t\t\t\t\tif(!cell.w) cell.w = SSF.format(cell.z || SSF._table[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\t\tif(DIF_XL) push_value(o, 0, cell.w, \"V\");\n\t\t\t\t\t\t\telse push_value(o, 1, 0, cell.w);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault: push_value(o, 1, 0, \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tpush_value(o, -1, 0, \"EOD\");\n\t\t\tvar RS = \"\\r\\n\";\n\t\t\tvar oo = o.join(RS);\n\t\t\t//while((oo.length & 0x7F) != 0) oo += \"\\0\";\n\t\t\treturn oo;\n\t\t};\n\t})();\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = (function() {\n\tfunction decode(s) { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s) { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str, opts) {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d, opts) { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d, opts) { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws) {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o = [], oo = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF.format(cell.z || SSF._table[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws) {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = (function() {\n\tfunction set_text_arr(data, arr, R, C, o) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f, opts) {\n\t\tvar o = opts || {};\n\t\tvar arr = ([]);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n0x2C: ',',\n0x09: \"\\t\",\n0x3B: ';',\n0x7C: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n0x2C: 3,\n0x09: 2,\n0x3B: 1,\n0x7C: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws = o.dense ? ([]) : ({});\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:0}});\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tstr = str.replace(/\\r\\n/mg, \"\\n\");\n\t\tvar _re = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end);\n\t\t\tvar cell = ({});\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN(fuzzydate(s).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || SSF._table[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = parseDate(s, k); }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(parseDate(s, k)); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF.format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase sepcc: case 0x0a: case 0x0d: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str, opts) {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d, opts) {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64.decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof cptable !== 'undefined') str = cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof cptable !== 'undefined' && opts.codepage) str = cptable.utils.decode(opts.codepage, cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d, opts) { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws) {\n\t\tvar o = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = (function() {\n\tfunction lotushopper(data, cb, opts) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64.decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts) {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s = ((o.dense ? [] : {})), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif(!o.qpro) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || SSF._table[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (s[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tval[1].v = val[1].v.slice(1);\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = (o.dense ? [] : {});\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!s[val[0].r]) s[val[0].r] = [];\n\t\t\t\t\t\ts[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws, opts) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = Array.isArray(ws);\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb, opts) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = Array.isArray(ws);\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\tvar oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t];\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t0x6F: [\"T\", 1]\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\",\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\",\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\"\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 14);\n\t\tblob.l += length - 10; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tvar len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n0x0000: { n:\"BOF\", f:parseuint16 },\n0x0001: { n:\"EOF\" },\n0x0002: { n:\"CALCMODE\" },\n0x0003: { n:\"CALCORDER\" },\n0x0004: { n:\"SPLIT\" },\n0x0005: { n:\"SYNC\" },\n0x0006: { n:\"RANGE\", f:parse_RANGE },\n0x0007: { n:\"WINDOW1\" },\n0x0008: { n:\"COLW1\" },\n0x0009: { n:\"WINTWO\" },\n0x000A: { n:\"COLW2\" },\n0x000B: { n:\"NAME\" },\n0x000C: { n:\"BLANK\" },\n0x000D: { n:\"INTEGER\", f:parse_INTEGER },\n0x000E: { n:\"NUMBER\", f:parse_NUMBER },\n0x000F: { n:\"LABEL\", f:parse_LABEL },\n0x0010: { n:\"FORMULA\", f:parse_FORMULA },\n0x0018: { n:\"TABLE\" },\n0x0019: { n:\"ORANGE\" },\n0x001A: { n:\"PRANGE\" },\n0x001B: { n:\"SRANGE\" },\n0x001C: { n:\"FRANGE\" },\n0x001D: { n:\"KRANGE1\" },\n0x0020: { n:\"HRANGE\" },\n0x0023: { n:\"KRANGE2\" },\n0x0024: { n:\"PROTEC\" },\n0x0025: { n:\"FOOTER\" },\n0x0026: { n:\"HEADER\" },\n0x0027: { n:\"SETUP\" },\n0x0028: { n:\"MARGINS\" },\n0x0029: { n:\"LABELFMT\" },\n0x002A: { n:\"TITLES\" },\n0x002B: { n:\"SHEETJS\" },\n0x002D: { n:\"GRAPH\" },\n0x002E: { n:\"NGRAPH\" },\n0x002F: { n:\"CALCCOUNT\" },\n0x0030: { n:\"UNFORMATTED\" },\n0x0031: { n:\"CURSORW12\" },\n0x0032: { n:\"WINDOW\" },\n0x0033: { n:\"STRING\", f:parse_LABEL },\n0x0037: { n:\"PASSWORD\" },\n0x0038: { n:\"LOCKED\" },\n0x003C: { n:\"QUERY\" },\n0x003D: { n:\"QUERYNAME\" },\n0x003E: { n:\"PRINT\" },\n0x003F: { n:\"PRINTNAME\" },\n0x0040: { n:\"GRAPH2\" },\n0x0041: { n:\"GRAPHNAME\" },\n0x0042: { n:\"ZOOM\" },\n0x0043: { n:\"SYMSPLIT\" },\n0x0044: { n:\"NSROWS\" },\n0x0045: { n:\"NSCOLS\" },\n0x0046: { n:\"RULER\" },\n0x0047: { n:\"NNAME\" },\n0x0048: { n:\"ACOMM\" },\n0x0049: { n:\"AMACRO\" },\n0x004A: { n:\"PARSE\" },\n0x0066: { n:\"PRANGES??\" },\n0x0067: { n:\"RRANGES??\" },\n0x0068: { n:\"FNAME??\" },\n0x0069: { n:\"MRANGES??\" },\n0x00CC: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n0x00DE: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n0xFFFF: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n0x0000: { n:\"BOF\" },\n0x0001: { n:\"EOF\" },\n0x0002: { n:\"PASSWORD\" },\n0x0003: { n:\"CALCSET\" },\n0x0004: { n:\"WINDOWSET\" },\n0x0005: { n:\"SHEETCELLPTR\" },\n0x0006: { n:\"SHEETLAYOUT\" },\n0x0007: { n:\"COLUMNWIDTH\" },\n0x0008: { n:\"HIDDENCOLUMN\" },\n0x0009: { n:\"USERRANGE\" },\n0x000A: { n:\"SYSTEMRANGE\" },\n0x000B: { n:\"ZEROFORCE\" },\n0x000C: { n:\"SORTKEYDIR\" },\n0x000D: { n:\"FILESEAL\" },\n0x000E: { n:\"DATAFILLNUMS\" },\n0x000F: { n:\"PRINTMAIN\" },\n0x0010: { n:\"PRINTSTRING\" },\n0x0011: { n:\"GRAPHMAIN\" },\n0x0012: { n:\"GRAPHSTRING\" },\n0x0013: { n:\"??\" },\n0x0014: { n:\"ERRCELL\" },\n0x0015: { n:\"NACELL\" },\n0x0016: { n:\"LABEL16\", f:parse_LABEL_16},\n0x0017: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n0x0018: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n0x0019: { n:\"FORMULA19\", f:parse_FORMULA_19},\n0x001A: { n:\"FORMULA1A\" },\n0x001B: { n:\"XFORMAT\", f:parse_XFORMAT },\n0x001C: { n:\"DTLABELMISC\" },\n0x001D: { n:\"DTLABELCELL\" },\n0x001E: { n:\"GRAPHWINDOW\" },\n0x001F: { n:\"CPA\" },\n0x0020: { n:\"LPLAUTO\" },\n0x0021: { n:\"QUERY\" },\n0x0022: { n:\"HIDDENSHEET\" },\n0x0023: { n:\"??\" },\n0x0025: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n0x0026: { n:\"??\" },\n0x0027: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n0x0028: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n0x008E: { n:\"??\" },\n0x0093: { n:\"??\" },\n0x0096: { n:\"??\" },\n0x0097: { n:\"??\" },\n0x0098: { n:\"??\" },\n0x0099: { n:\"??\" },\n0x009A: { n:\"??\" },\n0x009B: { n:\"??\" },\n0x009C: { n:\"??\" },\n0x00A3: { n:\"??\" },\n0x00AE: { n:\"??\" },\n0x00AF: { n:\"??\" },\n0x00B0: { n:\"??\" },\n0x00B1: { n:\"??\" },\n0x00B8: { n:\"??\" },\n0x00B9: { n:\"??\" },\n0x00BA: { n:\"??\" },\n0x00BB: { n:\"??\" },\n0x00BC: { n:\"??\" },\n0x00C3: { n:\"??\" },\n0x00C9: { n:\"??\" },\n0x00CC: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n0x00CD: { n:\"??\" },\n0x00CE: { n:\"??\" },\n0x00CF: { n:\"??\" },\n0x00D0: { n:\"??\" },\n0x0100: { n:\"??\" },\n0x0103: { n:\"??\" },\n0x0104: { n:\"??\" },\n0x0105: { n:\"??\" },\n0x0106: { n:\"??\" },\n0x0107: { n:\"??\" },\n0x0109: { n:\"??\" },\n0x010A: { n:\"??\" },\n0x010B: { n:\"??\" },\n0x010C: { n:\"??\" },\n0x010E: { n:\"??\" },\n0x010F: { n:\"??\" },\n0x0180: { n:\"??\" },\n0x0185: { n:\"??\" },\n0x0186: { n:\"??\" },\n0x0189: { n:\"??\" },\n0x018C: { n:\"??\" },\n0x0200: { n:\"??\" },\n0x0202: { n:\"??\" },\n0x0201: { n:\"??\" },\n0x0204: { n:\"??\" },\n0x0205: { n:\"??\" },\n0x0280: { n:\"??\" },\n0x0281: { n:\"??\" },\n0x0282: { n:\"??\" },\n0x0283: { n:\"??\" },\n0x0284: { n:\"??\" },\n0x0285: { n:\"??\" },\n0x0286: { n:\"??\" },\n0x0287: { n:\"??\" },\n0x0288: { n:\"??\" },\n0x0292: { n:\"??\" },\n0x0293: { n:\"??\" },\n0x0294: { n:\"??\" },\n0x0295: { n:\"??\" },\n0x0296: { n:\"??\" },\n0x0299: { n:\"??\" },\n0x029A: { n:\"??\" },\n0x0300: { n:\"??\" },\n0x0304: { n:\"??\" },\n0x0601: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n0x0640: { n:\"??\" },\n0x0642: { n:\"??\" },\n0x0701: { n:\"??\" },\n0x0702: { n:\"??\" },\n0x0703: { n:\"??\" },\n0x0704: { n:\"??\" },\n0x0780: { n:\"??\" },\n0x0800: { n:\"??\" },\n0x0801: { n:\"??\" },\n0x0804: { n:\"??\" },\n0x0A80: { n:\"??\" },\n0x2AF6: { n:\"??\" },\n0x3231: { n:\"??\" },\n0x6E49: { n:\"??\" },\n0x6F44: { n:\"??\" },\n0xFFFF: { n:\"\" }\n\t};\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '':\n\t\t\tcase '': font.shadow = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '':\n\t\t\tcase '': font.outline = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '':\n\t\t\tcase '': font.strike = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '':\n\t\t\tcase '': font.u = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '':\n\t\t\tcase '': font.b = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '':\n\t\t\tcase '': font.i = 1; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = (function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o = ({t:'s', v:unescapexml(t[1])});\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of tags */\nvar rs_to_html = (function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('');\n\n\t\tif(font.b) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.i) { intro.push(\"\"); outro.push(\"\"); }\n\t\tif(font.strike) { intro.push(\"\"); outro.push(\"\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"\"); }\n\n\t\toutro.push(\"\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'
') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"));\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = ([]), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"\" + escapexml(s.t) + \"\";\n\t\t}\n\t\tsitag += \"\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = ([]);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* 'BrtBeginSst' */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* 'BrtSSTItem' */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* 'BrtEndSst' */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R_n.indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if(R_n.indexOf(\"End\") > 0){/* empty */}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) {\n\tif(typeof cptable !== 'undefined') return cptable.utils.encode(current_ansi, str);\n\tvar o = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\nif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt() { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\t\t\tcase '': case '': break;\n\n\t\t\tcase '': break;\n\t\t\tcase ' 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) });\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nvar RTF = (function() {\n\tfunction rtf_to_sheet(d, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return rtf_to_sheet_str(Base64.decode(d), opts);\n\t\t\tcase 'binary': return rtf_to_sheet_str(d, opts);\n\t\t\tcase 'buffer': return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return rtf_to_sheet_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\n\t/* TODO: this is a stub */\n\tfunction rtf_to_sheet_str(str, opts) {\n\t\tvar o = opts || {};\n\t\tvar ws = o.dense ? ([]) : ({});\n\n\t\tvar rows = str.match(/\\\\trowd.*?\\\\row\\b/g);\n\t\tif(!rows.length) throw new Error(\"RTF missing table\");\n\t\tvar range = ({s: {c:0, r:0}, e: {c:0, r:rows.length - 1}});\n\t\trows.forEach(function(rowtf, R) {\n\t\t\tif(Array.isArray(ws)) ws[R] = [];\n\t\t\tvar rtfre = /\\\\\\w+\\b/g;\n\t\t\tvar last_index = 0;\n\t\t\tvar res;\n\t\t\tvar C = -1;\n\t\t\twhile((res = rtfre.exec(rowtf))) {\n\t\t\t\tswitch(res[0]) {\n\t\t\t\t\tcase \"\\\\cell\":\n\t\t\t\t\t\tvar data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n\t\t\t\t\t\tif(data[0] == \" \") data = data.slice(1);\n\t\t\t\t\t\t++C;\n\t\t\t\t\t\tif(data.length) {\n\t\t\t\t\t\t\t// TODO: value parsing, including codepage adjustments\n\t\t\t\t\t\t\tvar cell = {v: data, t:\"s\"};\n\t\t\t\t\t\t\tif(Array.isArray(ws)) ws[R][C] = cell;\n\t\t\t\t\t\t\telse ws[encode_cell({r:R, c:C})] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tlast_index = rtfre.lastIndex;\n\t\t\t}\n\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t});\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction rtf_to_workbook(d, opts) { return sheet_to_workbook(rtf_to_sheet(d, opts), opts); }\n\n\t/* TODO: this is a stub */\n\tfunction sheet_to_rtf(ws) {\n\t\tvar o = [\"{\\\\rtf1\\\\ansi\"];\n\t\tvar r = safe_decode_range(ws['!ref']), cell;\n\t\tvar dense = Array.isArray(ws);\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\to.push(\"\\\\trowd\\\\trautofit1\");\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) o.push(\"\\\\cellx\" + (C+1));\n\t\t\to.push(\"\\\\pard\\\\intbl\");\n\t\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[R]||[])[C]: ws[coord];\n\t\t\t\tif(!cell || cell.v == null && (!cell.f || cell.F)) continue;\n\t\t\t\to.push(\" \" + (cell.w || (format_cell(cell), cell.w)));\n\t\t\t\to.push(\"\\\\cell\");\n\t\t\t}\n\t\t\to.push(\"\\\\pard\\\\intbl\\\\row\");\n\t\t}\n\t\treturn o.join(\"\") + \"}\";\n\t}\n\n\treturn {\n\t\tto_workbook: rtf_to_workbook,\n\t\tto_sheet: rtf_to_sheet,\n\t\tfrom_sheet: sheet_to_rtf\n\t};\n})();\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '': case '':\n\t\t\t\tborder = {};\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '':\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '': case '':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '': break;\n\t\t\tcase '': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '': break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '': break;\n\t\t\tcase '': case '':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array*/ = (keys(SSF._table));\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\t\t\tcase '0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF.load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF) {\n\tvar o = [\"\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '': case '': break;\n\t\t\tcase '': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(//mg,\"\").replace(//gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('');\n\to[o.length] = ('');\n\to[o.length] = ('');\n\n\tif(o.length>2){ o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i, f, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length, opts) {\n\tvar out = ({});\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames = (evert(XLSBFillPTNames));\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tvar fls = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]);\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* 'BrtFmt' */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* 'BrtFont' */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* 'BrtKnownFonts' */ break;\n\t\t\tcase 0x002D: /* 'BrtFill' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* 'BrtBorder' */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* 'BrtXF' */\n\t\t\t\tif(state[state.length - 1] == \"BrtBeginCellXFs\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* 'BrtStyle' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x023C: /* 'BrtMRUColor' */\n\t\t\tcase 0x01DB: /* 'BrtIndexedColor': */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* 'BrtDXF14' */\n\t\t\tcase 0x0836: /* 'BrtDXF15' */\n\t\t\tcase 0x046A: /* 'BrtSlicerStyleElement' */\n\t\t\tcase 0x0200: /* 'BrtTableStyleElement' */\n\t\t\tcase 0x082F: /* 'BrtTimelineStyleElement' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFmts\", write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\nfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, \"BrtFmt\", write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, \"BrtEndFmts\");\n}\n\nfunction write_FONTS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFonts\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFont\", write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, \"BrtEndFonts\");\n}\n\nfunction write_FILLS_bin(ba) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginFills\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, \"BrtFill\", write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, \"BrtEndFills\");\n}\n\nfunction write_BORDERS_bin(ba) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, \"BrtBeginBorders\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtBorder\", write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, \"BrtEndBorders\");\n}\n\nfunction write_CELLSTYLEXFS_bin(ba) {\n\tvar cnt = 1;\n\twrite_record(ba, \"BrtBeginCellStyleXFs\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtXF\", write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellStyleXFs\");\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, \"BrtBeginCellXFs\", write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, \"BrtXF\", write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, \"BrtEndCellXFs\");\n}\n\nfunction write_STYLES_bin(ba) {\n\tvar cnt = 1;\n\n\twrite_record(ba, \"BrtBeginStyles\", write_UInt32LE(cnt));\n\twrite_record(ba, \"BrtStyle\", write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, \"BrtEndStyles\");\n}\n\nfunction write_DXFS_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginDXFs\", write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, \"BrtEndDXFs\");\n}\n\nfunction write_TABLESTYLES_bin(ba) {\n\tvar cnt = 0;\n\n\twrite_record(ba, \"BrtBeginTableStyles\", write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, \"BrtEndTableStyles\");\n}\n\nfunction write_COLORPALETTE_bin() {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'', '', '', '',\n\t'', '', '',\n\t'', '', '',\n\t'', ''\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\tcase '': case '':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme() { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme() { }\n\nvar clrsregex = /]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return parse_theme_xml(write_theme());\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts) {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\to[o.length] = '';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data) {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase ' 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml() {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT.toString(16) + \" \" + R_n);\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\nRELS.IMG = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\";\nRELS.DRAW = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\";\n\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nvar _shapeid = 1024;\nfunction write_comments_vml(rId, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"}),\n\t\twritextag(\"v:shapetype\", [\n\t\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t\t].join(\"\"), {id:\"_x0000_t202\", 'o:spt':202, coordsize:csize.join(\",\"),path:bbox})\n\t];\n\twhile(_shapeid < rId * 1000) _shapeid += 1000;\n\n\tcomments.forEach(function(x) {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = {'color2':\"#BEFF82\", 'type':\"gradient\"};\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"});\n\t++_shapeid;\n\n\to = o.concat([\n\t'',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'
',\n\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '',\n\t\t'',\n\t''\n\t]); });\n\to.push('');\n\treturn o.join(\"\");\n}\nRELS.CMNT = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\";\n\nfunction sheet_insert_comments(sheet, comments) {\n\tvar dense = Array.isArray(sheet);\n\tvar cell;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(dense) {\n\t\t\tif(!sheet[r.r]) sheet[r.r] = [];\n\t\t\tcell = sheet[r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"});\n\t\t\tif(dense) sheet[r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = ({a: comment.author, t: comment.t, r: comment.r});\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7 Comments */\nfunction parse_comments_xml(data, opts) {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid });\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nvar CMNT_XML_ROOT = writextag('comments', null, { 'xmlns': XMLNS.main[0] });\nfunction write_comments_xml(data) {\n\tvar o = [XML_HEADER, CMNT_XML_ROOT];\n\n\tvar iauthor = [];\n\to.push(\"\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) > -1) return;\n\t\tiauthor.push(a);\n\t\to.push(\"\" + a + \"\");\n\t}); });\n\to.push(\"\");\n\to.push(\"\");\n\tdata.forEach(function(d) {\n\t\td[1].forEach(function(c) {\n\t\t\t/* 18.7.3 CT_Comment */\n\t\t\to.push('');\n\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\to.push('');\n\t\t});\n\t});\n\to.push(\"\");\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data) {\n\tvar ba = buf_array();\n\tvar iauthor = [];\n\twrite_record(ba, \"BrtBeginComments\");\n\n\twrite_record(ba, \"BrtBeginCommentAuthors\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, \"BrtCommentAuthor\", write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentAuthors\");\n\n\twrite_record(ba, \"BrtBeginCommentList\");\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, \"BrtBeginComment\", write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, \"BrtCommentText\", write_BrtCommentText(c));\n\t\t\twrite_record(ba, \"BrtEndComment\");\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, \"BrtEndCommentList\");\n\n\twrite_record(ba, \"BrtEndComments\");\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n\tvar newcfb = CFB.utils.cfb_new({root:\"R\"});\n\tcfb.FullPaths.forEach(function(p, i) {\n\t\tif(p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/)) return;\n\t\tvar newpath = p.replace(/^[^\\/]*/,\"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n\t\tCFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n\t});\n\treturn CFB.write(newcfb);\n}\n\nfunction fill_vba_xls(cfb, vba) {\n\tvba.FullPaths.forEach(function(p, i) {\n\t\tif(i == 0) return;\n\t\tvar newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n\t\tif(newpath.slice(-1) !== \"/\") CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n\t});\n}\n\nvar VBAFMTS = [ \"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\" ];\n\nRELS.DS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\";\nRELS.MS = \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\";\n\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin() { return {'!type':'dialog'}; }\nfunction parse_ds_xml() { return {'!type':'dialog'}; }\nfunction parse_ms_bin() { return {'!type':'macro'}; }\nfunction parse_ms_xml() { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase = ({r:0,c:0});\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc =(function(){\n\treturn function a1_to_rc(fstr, base) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = (r == 0 ? \"\" : !$4 ? \"[\" + r + \"]\" : (r+1));\n\t\t\tvar C = (c == 0 ? \"\" : !$2 ? \"[\" + c + \"]\" : (c+1));\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f, delta) {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f, range, cell) {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f) {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f) {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n0x01: { n:'PtgExp', f:parse_PtgExp },\n0x02: { n:'PtgTbl', f:parse_PtgTbl },\n0x03: { n:'PtgAdd', f:parseread1 },\n0x04: { n:'PtgSub', f:parseread1 },\n0x05: { n:'PtgMul', f:parseread1 },\n0x06: { n:'PtgDiv', f:parseread1 },\n0x07: { n:'PtgPower', f:parseread1 },\n0x08: { n:'PtgConcat', f:parseread1 },\n0x09: { n:'PtgLt', f:parseread1 },\n0x0A: { n:'PtgLe', f:parseread1 },\n0x0B: { n:'PtgEq', f:parseread1 },\n0x0C: { n:'PtgGe', f:parseread1 },\n0x0D: { n:'PtgGt', f:parseread1 },\n0x0E: { n:'PtgNe', f:parseread1 },\n0x0F: { n:'PtgIsect', f:parseread1 },\n0x10: { n:'PtgUnion', f:parseread1 },\n0x11: { n:'PtgRange', f:parseread1 },\n0x12: { n:'PtgUplus', f:parseread1 },\n0x13: { n:'PtgUminus', f:parseread1 },\n0x14: { n:'PtgPercent', f:parseread1 },\n0x15: { n:'PtgParen', f:parseread1 },\n0x16: { n:'PtgMissArg', f:parseread1 },\n0x17: { n:'PtgStr', f:parse_PtgStr },\n0x1A: { n:'PtgSheet', f:parse_PtgSheet },\n0x1B: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n0x1C: { n:'PtgErr', f:parse_PtgErr },\n0x1D: { n:'PtgBool', f:parse_PtgBool },\n0x1E: { n:'PtgInt', f:parse_PtgInt },\n0x1F: { n:'PtgNum', f:parse_PtgNum },\n0x20: { n:'PtgArray', f:parse_PtgArray },\n0x21: { n:'PtgFunc', f:parse_PtgFunc },\n0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n0x23: { n:'PtgName', f:parse_PtgName },\n0x24: { n:'PtgRef', f:parse_PtgRef },\n0x25: { n:'PtgArea', f:parse_PtgArea },\n0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n0x2E: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n0x2F: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n0x39: { n:'PtgNameX', f:parse_PtgNameX },\n0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n0x40: 0x20, 0x60: 0x20,\n0x41: 0x21, 0x61: 0x21,\n0x42: 0x22, 0x62: 0x22,\n0x43: 0x23, 0x63: 0x23,\n0x44: 0x24, 0x64: 0x24,\n0x45: 0x25, 0x65: 0x25,\n0x46: 0x26, 0x66: 0x26,\n0x47: 0x27, 0x67: 0x27,\n0x48: 0x28, 0x68: 0x28,\n0x49: 0x29, 0x69: 0x29,\n0x4A: 0x2A, 0x6A: 0x2A,\n0x4B: 0x2B, 0x6B: 0x2B,\n0x4C: 0x2C, 0x6C: 0x2C,\n0x4D: 0x2D, 0x6D: 0x2D,\n0x4E: 0x2E, 0x6E: 0x2E,\n0x4F: 0x2F, 0x6F: 0x2F,\n0x58: 0x22, 0x78: 0x22,\n0x59: 0x39, 0x79: 0x39,\n0x5A: 0x3A, 0x7A: 0x3A,\n0x5B: 0x3B, 0x7B: 0x3B,\n0x5C: 0x3C, 0x7C: 0x3C,\n0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {\n0x01: { n:'PtgElfLel', f:parse_PtgElfLel },\n0x02: { n:'PtgElfRw', f:parse_PtgElfRw },\n0x03: { n:'PtgElfCol', f:parse_PtgElfCol },\n0x06: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n0x07: { n:'PtgElfColV', f:parse_PtgElfColV },\n0x0A: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n0x0B: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n0x0D: { n:'PtgElfColS', f:parse_PtgElfColS },\n0x0F: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n0x10: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n0x19: { n:'PtgList', f:parse_PtgList },\n0x1D: { n:'PtgSxName', f:parse_PtgSxName },\n0xFF: {}\n};\nvar Ptg19 = {\n0x00: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n0x80: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n0xFF: {}\n};\nPtg19[0x21] = Ptg19[0x20];\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f) {\n\tvar o = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\nr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// List of invalid characters needs to be tested further\nvar quoteCharacters = new RegExp(/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/);\nfunction formula_quote_sheet_name(sname, opts) {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (quoteCharacters.test(sname)) return \"'\" + sname + \"'\";\n\treturn sname;\n}\nfunction get_ixti_raw(supbooks, ixti, opts) {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti, opts) {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array*/, range, cell, supbooks, opts) {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack = [], e1, e2, c, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\":\"+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\nc = shift_cell_xls((f[1][1]), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\nc = cell ? shift_cell_xls((f[1][1]), cell, opts) : (f[1][1]);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\nixti = f[1][1]; c = shift_cell_xls((f[1][2]), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc = (f[1][0]), func = (f[1][1]);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(f[1]); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\nr = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\nr = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\nixti = f[1][1]; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = (f[1][1]); nameidx = (f[1][2]); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]),r:(f[1][0])};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r});\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(f[1]) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell, R, C, opts, os) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n0x0000: 'BEEP',\n0x0001: 'OPEN',\n0x0002: 'OPEN.LINKS',\n0x0003: 'CLOSE.ALL',\n0x0004: 'SAVE',\n0x0005: 'SAVE.AS',\n0x0006: 'FILE.DELETE',\n0x0007: 'PAGE.SETUP',\n0x0008: 'PRINT',\n0x0009: 'PRINTER.SETUP',\n0x000A: 'QUIT',\n0x000B: 'NEW.WINDOW',\n0x000C: 'ARRANGE.ALL',\n0x000D: 'WINDOW.SIZE',\n0x000E: 'WINDOW.MOVE',\n0x000F: 'FULL',\n0x0010: 'CLOSE',\n0x0011: 'RUN',\n0x0016: 'SET.PRINT.AREA',\n0x0017: 'SET.PRINT.TITLES',\n0x0018: 'SET.PAGE.BREAK',\n0x0019: 'REMOVE.PAGE.BREAK',\n0x001A: 'FONT',\n0x001B: 'DISPLAY',\n0x001C: 'PROTECT.DOCUMENT',\n0x001D: 'PRECISION',\n0x001E: 'A1.R1C1',\n0x001F: 'CALCULATE.NOW',\n0x0020: 'CALCULATION',\n0x0022: 'DATA.FIND',\n0x0023: 'EXTRACT',\n0x0024: 'DATA.DELETE',\n0x0025: 'SET.DATABASE',\n0x0026: 'SET.CRITERIA',\n0x0027: 'SORT',\n0x0028: 'DATA.SERIES',\n0x0029: 'TABLE',\n0x002A: 'FORMAT.NUMBER',\n0x002B: 'ALIGNMENT',\n0x002C: 'STYLE',\n0x002D: 'BORDER',\n0x002E: 'CELL.PROTECTION',\n0x002F: 'COLUMN.WIDTH',\n0x0030: 'UNDO',\n0x0031: 'CUT',\n0x0032: 'COPY',\n0x0033: 'PASTE',\n0x0034: 'CLEAR',\n0x0035: 'PASTE.SPECIAL',\n0x0036: 'EDIT.DELETE',\n0x0037: 'INSERT',\n0x0038: 'FILL.RIGHT',\n0x0039: 'FILL.DOWN',\n0x003D: 'DEFINE.NAME',\n0x003E: 'CREATE.NAMES',\n0x003F: 'FORMULA.GOTO',\n0x0040: 'FORMULA.FIND',\n0x0041: 'SELECT.LAST.CELL',\n0x0042: 'SHOW.ACTIVE.CELL',\n0x0043: 'GALLERY.AREA',\n0x0044: 'GALLERY.BAR',\n0x0045: 'GALLERY.COLUMN',\n0x0046: 'GALLERY.LINE',\n0x0047: 'GALLERY.PIE',\n0x0048: 'GALLERY.SCATTER',\n0x0049: 'COMBINATION',\n0x004A: 'PREFERRED',\n0x004B: 'ADD.OVERLAY',\n0x004C: 'GRIDLINES',\n0x004D: 'SET.PREFERRED',\n0x004E: 'AXES',\n0x004F: 'LEGEND',\n0x0050: 'ATTACH.TEXT',\n0x0051: 'ADD.ARROW',\n0x0052: 'SELECT.CHART',\n0x0053: 'SELECT.PLOT.AREA',\n0x0054: 'PATTERNS',\n0x0055: 'MAIN.CHART',\n0x0056: 'OVERLAY',\n0x0057: 'SCALE',\n0x0058: 'FORMAT.LEGEND',\n0x0059: 'FORMAT.TEXT',\n0x005A: 'EDIT.REPEAT',\n0x005B: 'PARSE',\n0x005C: 'JUSTIFY',\n0x005D: 'HIDE',\n0x005E: 'UNHIDE',\n0x005F: 'WORKSPACE',\n0x0060: 'FORMULA',\n0x0061: 'FORMULA.FILL',\n0x0062: 'FORMULA.ARRAY',\n0x0063: 'DATA.FIND.NEXT',\n0x0064: 'DATA.FIND.PREV',\n0x0065: 'FORMULA.FIND.NEXT',\n0x0066: 'FORMULA.FIND.PREV',\n0x0067: 'ACTIVATE',\n0x0068: 'ACTIVATE.NEXT',\n0x0069: 'ACTIVATE.PREV',\n0x006A: 'UNLOCKED.NEXT',\n0x006B: 'UNLOCKED.PREV',\n0x006C: 'COPY.PICTURE',\n0x006D: 'SELECT',\n0x006E: 'DELETE.NAME',\n0x006F: 'DELETE.FORMAT',\n0x0070: 'VLINE',\n0x0071: 'HLINE',\n0x0072: 'VPAGE',\n0x0073: 'HPAGE',\n0x0074: 'VSCROLL',\n0x0075: 'HSCROLL',\n0x0076: 'ALERT',\n0x0077: 'NEW',\n0x0078: 'CANCEL.COPY',\n0x0079: 'SHOW.CLIPBOARD',\n0x007A: 'MESSAGE',\n0x007C: 'PASTE.LINK',\n0x007D: 'APP.ACTIVATE',\n0x007E: 'DELETE.ARROW',\n0x007F: 'ROW.HEIGHT',\n0x0080: 'FORMAT.MOVE',\n0x0081: 'FORMAT.SIZE',\n0x0082: 'FORMULA.REPLACE',\n0x0083: 'SEND.KEYS',\n0x0084: 'SELECT.SPECIAL',\n0x0085: 'APPLY.NAMES',\n0x0086: 'REPLACE.FONT',\n0x0087: 'FREEZE.PANES',\n0x0088: 'SHOW.INFO',\n0x0089: 'SPLIT',\n0x008A: 'ON.WINDOW',\n0x008B: 'ON.DATA',\n0x008C: 'DISABLE.INPUT',\n0x008E: 'OUTLINE',\n0x008F: 'LIST.NAMES',\n0x0090: 'FILE.CLOSE',\n0x0091: 'SAVE.WORKBOOK',\n0x0092: 'DATA.FORM',\n0x0093: 'COPY.CHART',\n0x0094: 'ON.TIME',\n0x0095: 'WAIT',\n0x0096: 'FORMAT.FONT',\n0x0097: 'FILL.UP',\n0x0098: 'FILL.LEFT',\n0x0099: 'DELETE.OVERLAY',\n0x009B: 'SHORT.MENUS',\n0x009F: 'SET.UPDATE.STATUS',\n0x00A1: 'COLOR.PALETTE',\n0x00A2: 'DELETE.STYLE',\n0x00A3: 'WINDOW.RESTORE',\n0x00A4: 'WINDOW.MAXIMIZE',\n0x00A6: 'CHANGE.LINK',\n0x00A7: 'CALCULATE.DOCUMENT',\n0x00A8: 'ON.KEY',\n0x00A9: 'APP.RESTORE',\n0x00AA: 'APP.MOVE',\n0x00AB: 'APP.SIZE',\n0x00AC: 'APP.MINIMIZE',\n0x00AD: 'APP.MAXIMIZE',\n0x00AE: 'BRING.TO.FRONT',\n0x00AF: 'SEND.TO.BACK',\n0x00B9: 'MAIN.CHART.TYPE',\n0x00BA: 'OVERLAY.CHART.TYPE',\n0x00BB: 'SELECT.END',\n0x00BC: 'OPEN.MAIL',\n0x00BD: 'SEND.MAIL',\n0x00BE: 'STANDARD.FONT',\n0x00BF: 'CONSOLIDATE',\n0x00C0: 'SORT.SPECIAL',\n0x00C1: 'GALLERY.3D.AREA',\n0x00C2: 'GALLERY.3D.COLUMN',\n0x00C3: 'GALLERY.3D.LINE',\n0x00C4: 'GALLERY.3D.PIE',\n0x00C5: 'VIEW.3D',\n0x00C6: 'GOAL.SEEK',\n0x00C7: 'WORKGROUP',\n0x00C8: 'FILL.GROUP',\n0x00C9: 'UPDATE.LINK',\n0x00CA: 'PROMOTE',\n0x00CB: 'DEMOTE',\n0x00CC: 'SHOW.DETAIL',\n0x00CE: 'UNGROUP',\n0x00CF: 'OBJECT.PROPERTIES',\n0x00D0: 'SAVE.NEW.OBJECT',\n0x00D1: 'SHARE',\n0x00D2: 'SHARE.NAME',\n0x00D3: 'DUPLICATE',\n0x00D4: 'APPLY.STYLE',\n0x00D5: 'ASSIGN.TO.OBJECT',\n0x00D6: 'OBJECT.PROTECTION',\n0x00D7: 'HIDE.OBJECT',\n0x00D8: 'SET.EXTRACT',\n0x00D9: 'CREATE.PUBLISHER',\n0x00DA: 'SUBSCRIBE.TO',\n0x00DB: 'ATTRIBUTES',\n0x00DC: 'SHOW.TOOLBAR',\n0x00DE: 'PRINT.PREVIEW',\n0x00DF: 'EDIT.COLOR',\n0x00E0: 'SHOW.LEVELS',\n0x00E1: 'FORMAT.MAIN',\n0x00E2: 'FORMAT.OVERLAY',\n0x00E3: 'ON.RECALC',\n0x00E4: 'EDIT.SERIES',\n0x00E5: 'DEFINE.STYLE',\n0x00F0: 'LINE.PRINT',\n0x00F3: 'ENTER.DATA',\n0x00F9: 'GALLERY.RADAR',\n0x00FA: 'MERGE.STYLES',\n0x00FB: 'EDITION.OPTIONS',\n0x00FC: 'PASTE.PICTURE',\n0x00FD: 'PASTE.PICTURE.LINK',\n0x00FE: 'SPELLING',\n0x0100: 'ZOOM',\n0x0103: 'INSERT.OBJECT',\n0x0104: 'WINDOW.MINIMIZE',\n0x0109: 'SOUND.NOTE',\n0x010A: 'SOUND.PLAY',\n0x010B: 'FORMAT.SHAPE',\n0x010C: 'EXTEND.POLYGON',\n0x010D: 'FORMAT.AUTO',\n0x0110: 'GALLERY.3D.BAR',\n0x0111: 'GALLERY.3D.SURFACE',\n0x0112: 'FILL.AUTO',\n0x0114: 'CUSTOMIZE.TOOLBAR',\n0x0115: 'ADD.TOOL',\n0x0116: 'EDIT.OBJECT',\n0x0117: 'ON.DOUBLECLICK',\n0x0118: 'ON.ENTRY',\n0x0119: 'WORKBOOK.ADD',\n0x011A: 'WORKBOOK.MOVE',\n0x011B: 'WORKBOOK.COPY',\n0x011C: 'WORKBOOK.OPTIONS',\n0x011D: 'SAVE.WORKSPACE',\n0x0120: 'CHART.WIZARD',\n0x0121: 'DELETE.TOOL',\n0x0122: 'MOVE.TOOL',\n0x0123: 'WORKBOOK.SELECT',\n0x0124: 'WORKBOOK.ACTIVATE',\n0x0125: 'ASSIGN.TO.TOOL',\n0x0127: 'COPY.TOOL',\n0x0128: 'RESET.TOOL',\n0x0129: 'CONSTRAIN.NUMERIC',\n0x012A: 'PASTE.TOOL',\n0x012E: 'WORKBOOK.NEW',\n0x0131: 'SCENARIO.CELLS',\n0x0132: 'SCENARIO.DELETE',\n0x0133: 'SCENARIO.ADD',\n0x0134: 'SCENARIO.EDIT',\n0x0135: 'SCENARIO.SHOW',\n0x0136: 'SCENARIO.SHOW.NEXT',\n0x0137: 'SCENARIO.SUMMARY',\n0x0138: 'PIVOT.TABLE.WIZARD',\n0x0139: 'PIVOT.FIELD.PROPERTIES',\n0x013A: 'PIVOT.FIELD',\n0x013B: 'PIVOT.ITEM',\n0x013C: 'PIVOT.ADD.FIELDS',\n0x013E: 'OPTIONS.CALCULATION',\n0x013F: 'OPTIONS.EDIT',\n0x0140: 'OPTIONS.VIEW',\n0x0141: 'ADDIN.MANAGER',\n0x0142: 'MENU.EDITOR',\n0x0143: 'ATTACH.TOOLBARS',\n0x0144: 'VBAActivate',\n0x0145: 'OPTIONS.CHART',\n0x0148: 'VBA.INSERT.FILE',\n0x014A: 'VBA.PROCEDURE.DEFINITION',\n0x0150: 'ROUTING.SLIP',\n0x0152: 'ROUTE.DOCUMENT',\n0x0153: 'MAIL.LOGON',\n0x0156: 'INSERT.PICTURE',\n0x0157: 'EDIT.TOOL',\n0x0158: 'GALLERY.DOUGHNUT',\n0x015E: 'CHART.TREND',\n0x0160: 'PIVOT.ITEM.PROPERTIES',\n0x0162: 'WORKBOOK.INSERT',\n0x0163: 'OPTIONS.TRANSITION',\n0x0164: 'OPTIONS.GENERAL',\n0x0172: 'FILTER.ADVANCED',\n0x0175: 'MAIL.ADD.MAILER',\n0x0176: 'MAIL.DELETE.MAILER',\n0x0177: 'MAIL.REPLY',\n0x0178: 'MAIL.REPLY.ALL',\n0x0179: 'MAIL.FORWARD',\n0x017A: 'MAIL.NEXT.LETTER',\n0x017B: 'DATA.LABEL',\n0x017C: 'INSERT.TITLE',\n0x017D: 'FONT.PROPERTIES',\n0x017E: 'MACRO.OPTIONS',\n0x017F: 'WORKBOOK.HIDE',\n0x0180: 'WORKBOOK.UNHIDE',\n0x0181: 'WORKBOOK.DELETE',\n0x0182: 'WORKBOOK.NAME',\n0x0184: 'GALLERY.CUSTOM',\n0x0186: 'ADD.CHART.AUTOFORMAT',\n0x0187: 'DELETE.CHART.AUTOFORMAT',\n0x0188: 'CHART.ADD.DATA',\n0x0189: 'AUTO.OUTLINE',\n0x018A: 'TAB.ORDER',\n0x018B: 'SHOW.DIALOG',\n0x018C: 'SELECT.ALL',\n0x018D: 'UNGROUP.SHEETS',\n0x018E: 'SUBTOTAL.CREATE',\n0x018F: 'SUBTOTAL.REMOVE',\n0x0190: 'RENAME.OBJECT',\n0x019C: 'WORKBOOK.SCROLL',\n0x019D: 'WORKBOOK.NEXT',\n0x019E: 'WORKBOOK.PREV',\n0x019F: 'WORKBOOK.TAB.SPLIT',\n0x01A0: 'FULL.SCREEN',\n0x01A1: 'WORKBOOK.PROTECT',\n0x01A4: 'SCROLLBAR.PROPERTIES',\n0x01A5: 'PIVOT.SHOW.PAGES',\n0x01A6: 'TEXT.TO.COLUMNS',\n0x01A7: 'FORMAT.CHARTTYPE',\n0x01A8: 'LINK.FORMAT',\n0x01A9: 'TRACER.DISPLAY',\n0x01AE: 'TRACER.NAVIGATE',\n0x01AF: 'TRACER.CLEAR',\n0x01B0: 'TRACER.ERROR',\n0x01B1: 'PIVOT.FIELD.GROUP',\n0x01B2: 'PIVOT.FIELD.UNGROUP',\n0x01B3: 'CHECKBOX.PROPERTIES',\n0x01B4: 'LABEL.PROPERTIES',\n0x01B5: 'LISTBOX.PROPERTIES',\n0x01B6: 'EDITBOX.PROPERTIES',\n0x01B7: 'PIVOT.REFRESH',\n0x01B8: 'LINK.COMBO',\n0x01B9: 'OPEN.TEXT',\n0x01BA: 'HIDE.DIALOG',\n0x01BB: 'SET.DIALOG.FOCUS',\n0x01BC: 'ENABLE.OBJECT',\n0x01BD: 'PUSHBUTTON.PROPERTIES',\n0x01BE: 'SET.DIALOG.DEFAULT',\n0x01BF: 'FILTER',\n0x01C0: 'FILTER.SHOW.ALL',\n0x01C1: 'CLEAR.OUTLINE',\n0x01C2: 'FUNCTION.WIZARD',\n0x01C3: 'ADD.LIST.ITEM',\n0x01C4: 'SET.LIST.ITEM',\n0x01C5: 'REMOVE.LIST.ITEM',\n0x01C6: 'SELECT.LIST.ITEM',\n0x01C7: 'SET.CONTROL.VALUE',\n0x01C8: 'SAVE.COPY.AS',\n0x01CA: 'OPTIONS.LISTS.ADD',\n0x01CB: 'OPTIONS.LISTS.DELETE',\n0x01CC: 'SERIES.AXES',\n0x01CD: 'SERIES.X',\n0x01CE: 'SERIES.Y',\n0x01CF: 'ERRORBAR.X',\n0x01D0: 'ERRORBAR.Y',\n0x01D1: 'FORMAT.CHART',\n0x01D2: 'SERIES.ORDER',\n0x01D3: 'MAIL.LOGOFF',\n0x01D4: 'CLEAR.ROUTING.SLIP',\n0x01D5: 'APP.ACTIVATE.MICROSOFT',\n0x01D6: 'MAIL.EDIT.MAILER',\n0x01D7: 'ON.SHEET',\n0x01D8: 'STANDARD.WIDTH',\n0x01D9: 'SCENARIO.MERGE',\n0x01DA: 'SUMMARY.INFO',\n0x01DB: 'FIND.FILE',\n0x01DC: 'ACTIVE.CELL.FONT',\n0x01DD: 'ENABLE.TIPWIZARD',\n0x01DE: 'VBA.MAKE.ADDIN',\n0x01E0: 'INSERTDATATABLE',\n0x01E1: 'WORKGROUP.OPTIONS',\n0x01E2: 'MAIL.SEND.MAILER',\n0x01E5: 'AUTOCORRECT',\n0x01E9: 'POST.DOCUMENT',\n0x01EB: 'PICKLIST',\n0x01ED: 'VIEW.SHOW',\n0x01EE: 'VIEW.DEFINE',\n0x01EF: 'VIEW.DELETE',\n0x01FD: 'SHEET.BACKGROUND',\n0x01FE: 'INSERT.MAP.OBJECT',\n0x01FF: 'OPTIONS.MENONO',\n0x0205: 'MSOCHECKS',\n0x0206: 'NORMAL',\n0x0207: 'LAYOUT',\n0x0208: 'RM.PRINT.AREA',\n0x0209: 'CLEAR.PRINT.AREA',\n0x020A: 'ADD.PRINT.AREA',\n0x020B: 'MOVE.BRK',\n0x0221: 'HIDECURR.NOTE',\n0x0222: 'HIDEALL.NOTES',\n0x0223: 'DELETE.NOTE',\n0x0224: 'TRAVERSE.NOTES',\n0x0225: 'ACTIVATE.NOTES',\n0x026C: 'PROTECT.REVISIONS',\n0x026D: 'UNPROTECT.REVISIONS',\n0x0287: 'OPTIONS.ME',\n0x028D: 'WEB.PUBLISH',\n0x029B: 'NEWWEBQUERY',\n0x02A1: 'PIVOT.TABLE.CHART',\n0x02F1: 'OPTIONS.SAVE',\n0x02F3: 'OPTIONS.SPELL',\n0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\n/* [MS-XLSB] 2.5.97.10 */\nvar Ftab = {\n0x0000: 'COUNT',\n0x0001: 'IF',\n0x0002: 'ISNA',\n0x0003: 'ISERROR',\n0x0004: 'SUM',\n0x0005: 'AVERAGE',\n0x0006: 'MIN',\n0x0007: 'MAX',\n0x0008: 'ROW',\n0x0009: 'COLUMN',\n0x000A: 'NA',\n0x000B: 'NPV',\n0x000C: 'STDEV',\n0x000D: 'DOLLAR',\n0x000E: 'FIXED',\n0x000F: 'SIN',\n0x0010: 'COS',\n0x0011: 'TAN',\n0x0012: 'ATAN',\n0x0013: 'PI',\n0x0014: 'SQRT',\n0x0015: 'EXP',\n0x0016: 'LN',\n0x0017: 'LOG10',\n0x0018: 'ABS',\n0x0019: 'INT',\n0x001A: 'SIGN',\n0x001B: 'ROUND',\n0x001C: 'LOOKUP',\n0x001D: 'INDEX',\n0x001E: 'REPT',\n0x001F: 'MID',\n0x0020: 'LEN',\n0x0021: 'VALUE',\n0x0022: 'TRUE',\n0x0023: 'FALSE',\n0x0024: 'AND',\n0x0025: 'OR',\n0x0026: 'NOT',\n0x0027: 'MOD',\n0x0028: 'DCOUNT',\n0x0029: 'DSUM',\n0x002A: 'DAVERAGE',\n0x002B: 'DMIN',\n0x002C: 'DMAX',\n0x002D: 'DSTDEV',\n0x002E: 'VAR',\n0x002F: 'DVAR',\n0x0030: 'TEXT',\n0x0031: 'LINEST',\n0x0032: 'TREND',\n0x0033: 'LOGEST',\n0x0034: 'GROWTH',\n0x0035: 'GOTO',\n0x0036: 'HALT',\n0x0037: 'RETURN',\n0x0038: 'PV',\n0x0039: 'FV',\n0x003A: 'NPER',\n0x003B: 'PMT',\n0x003C: 'RATE',\n0x003D: 'MIRR',\n0x003E: 'IRR',\n0x003F: 'RAND',\n0x0040: 'MATCH',\n0x0041: 'DATE',\n0x0042: 'TIME',\n0x0043: 'DAY',\n0x0044: 'MONTH',\n0x0045: 'YEAR',\n0x0046: 'WEEKDAY',\n0x0047: 'HOUR',\n0x0048: 'MINUTE',\n0x0049: 'SECOND',\n0x004A: 'NOW',\n0x004B: 'AREAS',\n0x004C: 'ROWS',\n0x004D: 'COLUMNS',\n0x004E: 'OFFSET',\n0x004F: 'ABSREF',\n0x0050: 'RELREF',\n0x0051: 'ARGUMENT',\n0x0052: 'SEARCH',\n0x0053: 'TRANSPOSE',\n0x0054: 'ERROR',\n0x0055: 'STEP',\n0x0056: 'TYPE',\n0x0057: 'ECHO',\n0x0058: 'SET.NAME',\n0x0059: 'CALLER',\n0x005A: 'DEREF',\n0x005B: 'WINDOWS',\n0x005C: 'SERIES',\n0x005D: 'DOCUMENTS',\n0x005E: 'ACTIVE.CELL',\n0x005F: 'SELECTION',\n0x0060: 'RESULT',\n0x0061: 'ATAN2',\n0x0062: 'ASIN',\n0x0063: 'ACOS',\n0x0064: 'CHOOSE',\n0x0065: 'HLOOKUP',\n0x0066: 'VLOOKUP',\n0x0067: 'LINKS',\n0x0068: 'INPUT',\n0x0069: 'ISREF',\n0x006A: 'GET.FORMULA',\n0x006B: 'GET.NAME',\n0x006C: 'SET.VALUE',\n0x006D: 'LOG',\n0x006E: 'EXEC',\n0x006F: 'CHAR',\n0x0070: 'LOWER',\n0x0071: 'UPPER',\n0x0072: 'PROPER',\n0x0073: 'LEFT',\n0x0074: 'RIGHT',\n0x0075: 'EXACT',\n0x0076: 'TRIM',\n0x0077: 'REPLACE',\n0x0078: 'SUBSTITUTE',\n0x0079: 'CODE',\n0x007A: 'NAMES',\n0x007B: 'DIRECTORY',\n0x007C: 'FIND',\n0x007D: 'CELL',\n0x007E: 'ISERR',\n0x007F: 'ISTEXT',\n0x0080: 'ISNUMBER',\n0x0081: 'ISBLANK',\n0x0082: 'T',\n0x0083: 'N',\n0x0084: 'FOPEN',\n0x0085: 'FCLOSE',\n0x0086: 'FSIZE',\n0x0087: 'FREADLN',\n0x0088: 'FREAD',\n0x0089: 'FWRITELN',\n0x008A: 'FWRITE',\n0x008B: 'FPOS',\n0x008C: 'DATEVALUE',\n0x008D: 'TIMEVALUE',\n0x008E: 'SLN',\n0x008F: 'SYD',\n0x0090: 'DDB',\n0x0091: 'GET.DEF',\n0x0092: 'REFTEXT',\n0x0093: 'TEXTREF',\n0x0094: 'INDIRECT',\n0x0095: 'REGISTER',\n0x0096: 'CALL',\n0x0097: 'ADD.BAR',\n0x0098: 'ADD.MENU',\n0x0099: 'ADD.COMMAND',\n0x009A: 'ENABLE.COMMAND',\n0x009B: 'CHECK.COMMAND',\n0x009C: 'RENAME.COMMAND',\n0x009D: 'SHOW.BAR',\n0x009E: 'DELETE.MENU',\n0x009F: 'DELETE.COMMAND',\n0x00A0: 'GET.CHART.ITEM',\n0x00A1: 'DIALOG.BOX',\n0x00A2: 'CLEAN',\n0x00A3: 'MDETERM',\n0x00A4: 'MINVERSE',\n0x00A5: 'MMULT',\n0x00A6: 'FILES',\n0x00A7: 'IPMT',\n0x00A8: 'PPMT',\n0x00A9: 'COUNTA',\n0x00AA: 'CANCEL.KEY',\n0x00AB: 'FOR',\n0x00AC: 'WHILE',\n0x00AD: 'BREAK',\n0x00AE: 'NEXT',\n0x00AF: 'INITIATE',\n0x00B0: 'REQUEST',\n0x00B1: 'POKE',\n0x00B2: 'EXECUTE',\n0x00B3: 'TERMINATE',\n0x00B4: 'RESTART',\n0x00B5: 'HELP',\n0x00B6: 'GET.BAR',\n0x00B7: 'PRODUCT',\n0x00B8: 'FACT',\n0x00B9: 'GET.CELL',\n0x00BA: 'GET.WORKSPACE',\n0x00BB: 'GET.WINDOW',\n0x00BC: 'GET.DOCUMENT',\n0x00BD: 'DPRODUCT',\n0x00BE: 'ISNONTEXT',\n0x00BF: 'GET.NOTE',\n0x00C0: 'NOTE',\n0x00C1: 'STDEVP',\n0x00C2: 'VARP',\n0x00C3: 'DSTDEVP',\n0x00C4: 'DVARP',\n0x00C5: 'TRUNC',\n0x00C6: 'ISLOGICAL',\n0x00C7: 'DCOUNTA',\n0x00C8: 'DELETE.BAR',\n0x00C9: 'UNREGISTER',\n0x00CC: 'USDOLLAR',\n0x00CD: 'FINDB',\n0x00CE: 'SEARCHB',\n0x00CF: 'REPLACEB',\n0x00D0: 'LEFTB',\n0x00D1: 'RIGHTB',\n0x00D2: 'MIDB',\n0x00D3: 'LENB',\n0x00D4: 'ROUNDUP',\n0x00D5: 'ROUNDDOWN',\n0x00D6: 'ASC',\n0x00D7: 'DBCS',\n0x00D8: 'RANK',\n0x00DB: 'ADDRESS',\n0x00DC: 'DAYS360',\n0x00DD: 'TODAY',\n0x00DE: 'VDB',\n0x00DF: 'ELSE',\n0x00E0: 'ELSE.IF',\n0x00E1: 'END.IF',\n0x00E2: 'FOR.CELL',\n0x00E3: 'MEDIAN',\n0x00E4: 'SUMPRODUCT',\n0x00E5: 'SINH',\n0x00E6: 'COSH',\n0x00E7: 'TANH',\n0x00E8: 'ASINH',\n0x00E9: 'ACOSH',\n0x00EA: 'ATANH',\n0x00EB: 'DGET',\n0x00EC: 'CREATE.OBJECT',\n0x00ED: 'VOLATILE',\n0x00EE: 'LAST.ERROR',\n0x00EF: 'CUSTOM.UNDO',\n0x00F0: 'CUSTOM.REPEAT',\n0x00F1: 'FORMULA.CONVERT',\n0x00F2: 'GET.LINK.INFO',\n0x00F3: 'TEXT.BOX',\n0x00F4: 'INFO',\n0x00F5: 'GROUP',\n0x00F6: 'GET.OBJECT',\n0x00F7: 'DB',\n0x00F8: 'PAUSE',\n0x00FB: 'RESUME',\n0x00FC: 'FREQUENCY',\n0x00FD: 'ADD.TOOLBAR',\n0x00FE: 'DELETE.TOOLBAR',\n0x00FF: 'User',\n0x0100: 'RESET.TOOLBAR',\n0x0101: 'EVALUATE',\n0x0102: 'GET.TOOLBAR',\n0x0103: 'GET.TOOL',\n0x0104: 'SPELLING.CHECK',\n0x0105: 'ERROR.TYPE',\n0x0106: 'APP.TITLE',\n0x0107: 'WINDOW.TITLE',\n0x0108: 'SAVE.TOOLBAR',\n0x0109: 'ENABLE.TOOL',\n0x010A: 'PRESS.TOOL',\n0x010B: 'REGISTER.ID',\n0x010C: 'GET.WORKBOOK',\n0x010D: 'AVEDEV',\n0x010E: 'BETADIST',\n0x010F: 'GAMMALN',\n0x0110: 'BETAINV',\n0x0111: 'BINOMDIST',\n0x0112: 'CHIDIST',\n0x0113: 'CHIINV',\n0x0114: 'COMBIN',\n0x0115: 'CONFIDENCE',\n0x0116: 'CRITBINOM',\n0x0117: 'EVEN',\n0x0118: 'EXPONDIST',\n0x0119: 'FDIST',\n0x011A: 'FINV',\n0x011B: 'FISHER',\n0x011C: 'FISHERINV',\n0x011D: 'FLOOR',\n0x011E: 'GAMMADIST',\n0x011F: 'GAMMAINV',\n0x0120: 'CEILING',\n0x0121: 'HYPGEOMDIST',\n0x0122: 'LOGNORMDIST',\n0x0123: 'LOGINV',\n0x0124: 'NEGBINOMDIST',\n0x0125: 'NORMDIST',\n0x0126: 'NORMSDIST',\n0x0127: 'NORMINV',\n0x0128: 'NORMSINV',\n0x0129: 'STANDARDIZE',\n0x012A: 'ODD',\n0x012B: 'PERMUT',\n0x012C: 'POISSON',\n0x012D: 'TDIST',\n0x012E: 'WEIBULL',\n0x012F: 'SUMXMY2',\n0x0130: 'SUMX2MY2',\n0x0131: 'SUMX2PY2',\n0x0132: 'CHITEST',\n0x0133: 'CORREL',\n0x0134: 'COVAR',\n0x0135: 'FORECAST',\n0x0136: 'FTEST',\n0x0137: 'INTERCEPT',\n0x0138: 'PEARSON',\n0x0139: 'RSQ',\n0x013A: 'STEYX',\n0x013B: 'SLOPE',\n0x013C: 'TTEST',\n0x013D: 'PROB',\n0x013E: 'DEVSQ',\n0x013F: 'GEOMEAN',\n0x0140: 'HARMEAN',\n0x0141: 'SUMSQ',\n0x0142: 'KURT',\n0x0143: 'SKEW',\n0x0144: 'ZTEST',\n0x0145: 'LARGE',\n0x0146: 'SMALL',\n0x0147: 'QUARTILE',\n0x0148: 'PERCENTILE',\n0x0149: 'PERCENTRANK',\n0x014A: 'MODE',\n0x014B: 'TRIMMEAN',\n0x014C: 'TINV',\n0x014E: 'MOVIE.COMMAND',\n0x014F: 'GET.MOVIE',\n0x0150: 'CONCATENATE',\n0x0151: 'POWER',\n0x0152: 'PIVOT.ADD.DATA',\n0x0153: 'GET.PIVOT.TABLE',\n0x0154: 'GET.PIVOT.FIELD',\n0x0155: 'GET.PIVOT.ITEM',\n0x0156: 'RADIANS',\n0x0157: 'DEGREES',\n0x0158: 'SUBTOTAL',\n0x0159: 'SUMIF',\n0x015A: 'COUNTIF',\n0x015B: 'COUNTBLANK',\n0x015C: 'SCENARIO.GET',\n0x015D: 'OPTIONS.LISTS.GET',\n0x015E: 'ISPMT',\n0x015F: 'DATEDIF',\n0x0160: 'DATESTRING',\n0x0161: 'NUMBERSTRING',\n0x0162: 'ROMAN',\n0x0163: 'OPEN.DIALOG',\n0x0164: 'SAVE.DIALOG',\n0x0165: 'VIEW.GET',\n0x0166: 'GETPIVOTDATA',\n0x0167: 'HYPERLINK',\n0x0168: 'PHONETIC',\n0x0169: 'AVERAGEA',\n0x016A: 'MAXA',\n0x016B: 'MINA',\n0x016C: 'STDEVPA',\n0x016D: 'VARPA',\n0x016E: 'STDEVA',\n0x016F: 'VARA',\n0x0170: 'BAHTTEXT',\n0x0171: 'THAIDAYOFWEEK',\n0x0172: 'THAIDIGIT',\n0x0173: 'THAIMONTHOFYEAR',\n0x0174: 'THAINUMSOUND',\n0x0175: 'THAINUMSTRING',\n0x0176: 'THAISTRINGLENGTH',\n0x0177: 'ISTHAIDIGIT',\n0x0178: 'ROUNDBAHTDOWN',\n0x0179: 'ROUNDBAHTUP',\n0x017A: 'THAIYEAR',\n0x017B: 'RTD',\n\n0x017C: 'CUBEVALUE',\n0x017D: 'CUBEMEMBER',\n0x017E: 'CUBEMEMBERPROPERTY',\n0x017F: 'CUBERANKEDMEMBER',\n0x0180: 'HEX2BIN',\n0x0181: 'HEX2DEC',\n0x0182: 'HEX2OCT',\n0x0183: 'DEC2BIN',\n0x0184: 'DEC2HEX',\n0x0185: 'DEC2OCT',\n0x0186: 'OCT2BIN',\n0x0187: 'OCT2HEX',\n0x0188: 'OCT2DEC',\n0x0189: 'BIN2DEC',\n0x018A: 'BIN2OCT',\n0x018B: 'BIN2HEX',\n0x018C: 'IMSUB',\n0x018D: 'IMDIV',\n0x018E: 'IMPOWER',\n0x018F: 'IMABS',\n0x0190: 'IMSQRT',\n0x0191: 'IMLN',\n0x0192: 'IMLOG2',\n0x0193: 'IMLOG10',\n0x0194: 'IMSIN',\n0x0195: 'IMCOS',\n0x0196: 'IMEXP',\n0x0197: 'IMARGUMENT',\n0x0198: 'IMCONJUGATE',\n0x0199: 'IMAGINARY',\n0x019A: 'IMREAL',\n0x019B: 'COMPLEX',\n0x019C: 'IMSUM',\n0x019D: 'IMPRODUCT',\n0x019E: 'SERIESSUM',\n0x019F: 'FACTDOUBLE',\n0x01A0: 'SQRTPI',\n0x01A1: 'QUOTIENT',\n0x01A2: 'DELTA',\n0x01A3: 'GESTEP',\n0x01A4: 'ISEVEN',\n0x01A5: 'ISODD',\n0x01A6: 'MROUND',\n0x01A7: 'ERF',\n0x01A8: 'ERFC',\n0x01A9: 'BESSELJ',\n0x01AA: 'BESSELK',\n0x01AB: 'BESSELY',\n0x01AC: 'BESSELI',\n0x01AD: 'XIRR',\n0x01AE: 'XNPV',\n0x01AF: 'PRICEMAT',\n0x01B0: 'YIELDMAT',\n0x01B1: 'INTRATE',\n0x01B2: 'RECEIVED',\n0x01B3: 'DISC',\n0x01B4: 'PRICEDISC',\n0x01B5: 'YIELDDISC',\n0x01B6: 'TBILLEQ',\n0x01B7: 'TBILLPRICE',\n0x01B8: 'TBILLYIELD',\n0x01B9: 'PRICE',\n0x01BA: 'YIELD',\n0x01BB: 'DOLLARDE',\n0x01BC: 'DOLLARFR',\n0x01BD: 'NOMINAL',\n0x01BE: 'EFFECT',\n0x01BF: 'CUMPRINC',\n0x01C0: 'CUMIPMT',\n0x01C1: 'EDATE',\n0x01C2: 'EOMONTH',\n0x01C3: 'YEARFRAC',\n0x01C4: 'COUPDAYBS',\n0x01C5: 'COUPDAYS',\n0x01C6: 'COUPDAYSNC',\n0x01C7: 'COUPNCD',\n0x01C8: 'COUPNUM',\n0x01C9: 'COUPPCD',\n0x01CA: 'DURATION',\n0x01CB: 'MDURATION',\n0x01CC: 'ODDLPRICE',\n0x01CD: 'ODDLYIELD',\n0x01CE: 'ODDFPRICE',\n0x01CF: 'ODDFYIELD',\n0x01D0: 'RANDBETWEEN',\n0x01D1: 'WEEKNUM',\n0x01D2: 'AMORDEGRC',\n0x01D3: 'AMORLINC',\n0x01D4: 'CONVERT',\n0x02D4: 'SHEETJS',\n0x01D5: 'ACCRINT',\n0x01D6: 'ACCRINTM',\n0x01D7: 'WORKDAY',\n0x01D8: 'NETWORKDAYS',\n0x01D9: 'GCD',\n0x01DA: 'MULTINOMIAL',\n0x01DB: 'LCM',\n0x01DC: 'FVSCHEDULE',\n0x01DD: 'CUBEKPIMEMBER',\n0x01DE: 'CUBESET',\n0x01DF: 'CUBESETCOUNT',\n0x01E0: 'IFERROR',\n0x01E1: 'COUNTIFS',\n0x01E2: 'SUMIFS',\n0x01E3: 'AVERAGEIF',\n0x01E4: 'AVERAGEIFS'\n};\nvar FtabArgc = {\n0x0002: 1, /* ISNA */\n0x0003: 1, /* ISERROR */\n0x000A: 0, /* NA */\n0x000F: 1, /* SIN */\n0x0010: 1, /* COS */\n0x0011: 1, /* TAN */\n0x0012: 1, /* ATAN */\n0x0013: 0, /* PI */\n0x0014: 1, /* SQRT */\n0x0015: 1, /* EXP */\n0x0016: 1, /* LN */\n0x0017: 1, /* LOG10 */\n0x0018: 1, /* ABS */\n0x0019: 1, /* INT */\n0x001A: 1, /* SIGN */\n0x001B: 2, /* ROUND */\n0x001E: 2, /* REPT */\n0x001F: 3, /* MID */\n0x0020: 1, /* LEN */\n0x0021: 1, /* VALUE */\n0x0022: 0, /* TRUE */\n0x0023: 0, /* FALSE */\n0x0026: 1, /* NOT */\n0x0027: 2, /* MOD */\n0x0028: 3, /* DCOUNT */\n0x0029: 3, /* DSUM */\n0x002A: 3, /* DAVERAGE */\n0x002B: 3, /* DMIN */\n0x002C: 3, /* DMAX */\n0x002D: 3, /* DSTDEV */\n0x002F: 3, /* DVAR */\n0x0030: 2, /* TEXT */\n0x0035: 1, /* GOTO */\n0x003D: 3, /* MIRR */\n0x003F: 0, /* RAND */\n0x0041: 3, /* DATE */\n0x0042: 3, /* TIME */\n0x0043: 1, /* DAY */\n0x0044: 1, /* MONTH */\n0x0045: 1, /* YEAR */\n0x0046: 1, /* WEEKDAY */\n0x0047: 1, /* HOUR */\n0x0048: 1, /* MINUTE */\n0x0049: 1, /* SECOND */\n0x004A: 0, /* NOW */\n0x004B: 1, /* AREAS */\n0x004C: 1, /* ROWS */\n0x004D: 1, /* COLUMNS */\n0x004F: 2, /* ABSREF */\n0x0050: 2, /* RELREF */\n0x0053: 1, /* TRANSPOSE */\n0x0055: 0, /* STEP */\n0x0056: 1, /* TYPE */\n0x0059: 0, /* CALLER */\n0x005A: 1, /* DEREF */\n0x005E: 0, /* ACTIVE.CELL */\n0x005F: 0, /* SELECTION */\n0x0061: 2, /* ATAN2 */\n0x0062: 1, /* ASIN */\n0x0063: 1, /* ACOS */\n0x0065: 3, /* HLOOKUP */\n0x0066: 3, /* VLOOKUP */\n0x0069: 1, /* ISREF */\n0x006A: 1, /* GET.FORMULA */\n0x006C: 2, /* SET.VALUE */\n0x006F: 1, /* CHAR */\n0x0070: 1, /* LOWER */\n0x0071: 1, /* UPPER */\n0x0072: 1, /* PROPER */\n0x0075: 2, /* EXACT */\n0x0076: 1, /* TRIM */\n0x0077: 4, /* REPLACE */\n0x0079: 1, /* CODE */\n0x007E: 1, /* ISERR */\n0x007F: 1, /* ISTEXT */\n0x0080: 1, /* ISNUMBER */\n0x0081: 1, /* ISBLANK */\n0x0082: 1, /* T */\n0x0083: 1, /* N */\n0x0085: 1, /* FCLOSE */\n0x0086: 1, /* FSIZE */\n0x0087: 1, /* FREADLN */\n0x0088: 2, /* FREAD */\n0x0089: 2, /* FWRITELN */\n0x008A: 2, /* FWRITE */\n0x008C: 1, /* DATEVALUE */\n0x008D: 1, /* TIMEVALUE */\n0x008E: 3, /* SLN */\n0x008F: 4, /* SYD */\n0x0090: 4, /* DDB */\n0x00A1: 1, /* DIALOG.BOX */\n0x00A2: 1, /* CLEAN */\n0x00A3: 1, /* MDETERM */\n0x00A4: 1, /* MINVERSE */\n0x00A5: 2, /* MMULT */\n0x00AC: 1, /* WHILE */\n0x00AF: 2, /* INITIATE */\n0x00B0: 2, /* REQUEST */\n0x00B1: 3, /* POKE */\n0x00B2: 2, /* EXECUTE */\n0x00B3: 1, /* TERMINATE */\n0x00B8: 1, /* FACT */\n0x00BA: 1, /* GET.WORKSPACE */\n0x00BD: 3, /* DPRODUCT */\n0x00BE: 1, /* ISNONTEXT */\n0x00C3: 3, /* DSTDEVP */\n0x00C4: 3, /* DVARP */\n0x00C5: 1, /* TRUNC */\n0x00C6: 1, /* ISLOGICAL */\n0x00C7: 3, /* DCOUNTA */\n0x00C9: 1, /* UNREGISTER */\n0x00CF: 4, /* REPLACEB */\n0x00D2: 3, /* MIDB */\n0x00D3: 1, /* LENB */\n0x00D4: 2, /* ROUNDUP */\n0x00D5: 2, /* ROUNDDOWN */\n0x00D6: 1, /* ASC */\n0x00D7: 1, /* DBCS */\n0x00E1: 0, /* END.IF */\n0x00E5: 1, /* SINH */\n0x00E6: 1, /* COSH */\n0x00E7: 1, /* TANH */\n0x00E8: 1, /* ASINH */\n0x00E9: 1, /* ACOSH */\n0x00EA: 1, /* ATANH */\n0x00EB: 3, /* DGET */\n0x00F4: 1, /* INFO */\n0x00F7: 4, /* DB */\n0x00FC: 2, /* FREQUENCY */\n0x0101: 1, /* EVALUATE */\n0x0105: 1, /* ERROR.TYPE */\n0x010F: 1, /* GAMMALN */\n0x0111: 4, /* BINOMDIST */\n0x0112: 2, /* CHIDIST */\n0x0113: 2, /* CHIINV */\n0x0114: 2, /* COMBIN */\n0x0115: 3, /* CONFIDENCE */\n0x0116: 3, /* CRITBINOM */\n0x0117: 1, /* EVEN */\n0x0118: 3, /* EXPONDIST */\n0x0119: 3, /* FDIST */\n0x011A: 3, /* FINV */\n0x011B: 1, /* FISHER */\n0x011C: 1, /* FISHERINV */\n0x011D: 2, /* FLOOR */\n0x011E: 4, /* GAMMADIST */\n0x011F: 3, /* GAMMAINV */\n0x0120: 2, /* CEILING */\n0x0121: 4, /* HYPGEOMDIST */\n0x0122: 3, /* LOGNORMDIST */\n0x0123: 3, /* LOGINV */\n0x0124: 3, /* NEGBINOMDIST */\n0x0125: 4, /* NORMDIST */\n0x0126: 1, /* NORMSDIST */\n0x0127: 3, /* NORMINV */\n0x0128: 1, /* NORMSINV */\n0x0129: 3, /* STANDARDIZE */\n0x012A: 1, /* ODD */\n0x012B: 2, /* PERMUT */\n0x012C: 3, /* POISSON */\n0x012D: 3, /* TDIST */\n0x012E: 4, /* WEIBULL */\n0x012F: 2, /* SUMXMY2 */\n0x0130: 2, /* SUMX2MY2 */\n0x0131: 2, /* SUMX2PY2 */\n0x0132: 2, /* CHITEST */\n0x0133: 2, /* CORREL */\n0x0134: 2, /* COVAR */\n0x0135: 3, /* FORECAST */\n0x0136: 2, /* FTEST */\n0x0137: 2, /* INTERCEPT */\n0x0138: 2, /* PEARSON */\n0x0139: 2, /* RSQ */\n0x013A: 2, /* STEYX */\n0x013B: 2, /* SLOPE */\n0x013C: 4, /* TTEST */\n0x0145: 2, /* LARGE */\n0x0146: 2, /* SMALL */\n0x0147: 2, /* QUARTILE */\n0x0148: 2, /* PERCENTILE */\n0x014B: 2, /* TRIMMEAN */\n0x014C: 2, /* TINV */\n0x0151: 2, /* POWER */\n0x0156: 1, /* RADIANS */\n0x0157: 1, /* DEGREES */\n0x015A: 2, /* COUNTIF */\n0x015B: 1, /* COUNTBLANK */\n0x015E: 4, /* ISPMT */\n0x015F: 3, /* DATEDIF */\n0x0160: 1, /* DATESTRING */\n0x0161: 2, /* NUMBERSTRING */\n0x0168: 1, /* PHONETIC */\n0x0170: 1, /* BAHTTEXT */\n0x0171: 1, /* THAIDAYOFWEEK */\n0x0172: 1, /* THAIDIGIT */\n0x0173: 1, /* THAIMONTHOFYEAR */\n0x0174: 1, /* THAINUMSOUND */\n0x0175: 1, /* THAINUMSTRING */\n0x0176: 1, /* THAISTRINGLENGTH */\n0x0177: 1, /* ISTHAIDIGIT */\n0x0178: 1, /* ROUNDBAHTDOWN */\n0x0179: 1, /* ROUNDBAHTUP */\n0x017A: 1, /* THAIYEAR */\n0x017E: 3, /* CUBEMEMBERPROPERTY */\n0x0181: 1, /* HEX2DEC */\n0x0188: 1, /* OCT2DEC */\n0x0189: 1, /* BIN2DEC */\n0x018C: 2, /* IMSUB */\n0x018D: 2, /* IMDIV */\n0x018E: 2, /* IMPOWER */\n0x018F: 1, /* IMABS */\n0x0190: 1, /* IMSQRT */\n0x0191: 1, /* IMLN */\n0x0192: 1, /* IMLOG2 */\n0x0193: 1, /* IMLOG10 */\n0x0194: 1, /* IMSIN */\n0x0195: 1, /* IMCOS */\n0x0196: 1, /* IMEXP */\n0x0197: 1, /* IMARGUMENT */\n0x0198: 1, /* IMCONJUGATE */\n0x0199: 1, /* IMAGINARY */\n0x019A: 1, /* IMREAL */\n0x019E: 4, /* SERIESSUM */\n0x019F: 1, /* FACTDOUBLE */\n0x01A0: 1, /* SQRTPI */\n0x01A1: 2, /* QUOTIENT */\n0x01A4: 1, /* ISEVEN */\n0x01A5: 1, /* ISODD */\n0x01A6: 2, /* MROUND */\n0x01A8: 1, /* ERFC */\n0x01A9: 2, /* BESSELJ */\n0x01AA: 2, /* BESSELK */\n0x01AB: 2, /* BESSELY */\n0x01AC: 2, /* BESSELI */\n0x01AE: 3, /* XNPV */\n0x01B6: 3, /* TBILLEQ */\n0x01B7: 3, /* TBILLPRICE */\n0x01B8: 3, /* TBILLYIELD */\n0x01BB: 2, /* DOLLARDE */\n0x01BC: 2, /* DOLLARFR */\n0x01BD: 2, /* NOMINAL */\n0x01BE: 2, /* EFFECT */\n0x01BF: 6, /* CUMPRINC */\n0x01C0: 6, /* CUMIPMT */\n0x01C1: 2, /* EDATE */\n0x01C2: 2, /* EOMONTH */\n0x01D0: 2, /* RANDBETWEEN */\n0x01D4: 3, /* CONVERT */\n0x01DC: 2, /* FVSCHEDULE */\n0x01DF: 1, /* CUBESETCOUNT */\n0x01E0: 2, /* IFERROR */\n0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\n/* [MS-XLSB] 2.5.97.10 Ftab */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONCAT\": \"CONCAT\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORECAST.ETS\": \"FORECAST.ETS\",\n\t\"_xlfn.FORECAST.ETS.CONFINT\": \"FORECAST.ETS.CONFINT\",\n\t\"_xlfn.FORECAST.ETS.SEASONALITY\": \"FORECAST.ETS.SEASONALITY\",\n\t\"_xlfn.FORECAST.ETS.STAT\": \"FORECAST.ETS.STAT\",\n\t\"_xlfn.FORECAST.LINEAR\": \"FORECAST.LINEAR\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFS\": \"IFS\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MAXIFS\": \"MAXIFS\",\n\t\"_xlfn.MINIFS\": \"MINIFS\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.SWITCH\": \"SWITCH\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.TEXTJOIN\": \"TEXTJOIN\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f) {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f) {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r) {\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r) {\n\treturn r.replace(/\\./,\"!\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = [\n\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n];\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst, str, rev) {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C, col) {\n\tvar p = ({min:C+1,max:C+1});\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins, mode) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF.load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(SSF._table[fmtid] == null) SSF.load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd);\n\t\t\t\telse p.w = SSF._general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws, sname, i) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = opts.dense ? ([]) : ({});\n\tvar refguess = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} });\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length === 0) return \"\";\n\tvar o = '';\n\tfor(var i = 0; i != merges.length; ++i) o += '';\n\treturn o + '';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr, s, wb, idx) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr, body, s, wb, idx, styles, themes) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp) {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1});\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tvar dense = Array.isArray(s);\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(dense) {\n\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\tif(!s[R][C]) s[R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin) {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx) {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/;\nfunction parse_ws_xml_sheetviews(data, wb) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r, i) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb) {\n\tvar sview = ({workbookViewId:\"0\"});\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts) {\n\tif(cell.v === undefined && typeof cell.f !== \"string\" || cell.t === 'z') return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = ({r:ref});\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) ws['!links'].push([ref, cell.l]);\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess, themes, styles) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx=0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf = [];\n\tvar sharedf = [];\n\tvar dense = Array.isArray(s);\n\tvar rows = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden == \"1\") { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"});\n\n\t\t\tif((cref=d.match(match_v))!= null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1])).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && SSF.is_date(SSF._table[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(dense) {\n\t\t\t\tvar _r = decode_cell(tag.r);\n\t\t\t\tif(!s[_r.r]) s[_r.r] = [];\n\t\t\t\ts[_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = Array.isArray(ws);\n\tvar params = ({r:rr}), row, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr});\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1});\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = (''); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(ws['!links'].length > 0) {\n\t\to[o.length] = \"\";\nws['!links'].forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]});\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({});\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = Array.isArray(ws) ? (ws[caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 'BrtRowHdr', o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo() {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tif(o == null) o = new_buf(8 + 4 * cell.v.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(cell.v, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display});\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data) {\n\tvar margins = ({});\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\nif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb, themes, styles) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s = (opts.dense ? [] : {});\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell;\n\tvar merges = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || wb.supbooks || ([[]]);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo = [], rowinfo = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\trecordhopper(data, function ws_parse(val, R_n, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\t\tp = ({t:val[2]});\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && SSF.is_date(SSF._table[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:undefined});\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[R]) s[R] = []; s[R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[R]) s[R] = [];\n\t\t\t\t\t\tif(!s[R][C]) s[R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[R][C] : s[encode_col(C) + rr]));\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x0031: /* 'BrtCellMeta' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen) {\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || SSF._table[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = ({r:R, c:C});\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, \"BrtShortIsst\", write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, \"BrtCellIsst\", write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, \"BrtShortSt\", write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, \"BrtCellSt\", write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, \"BrtShortRk\", write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, \"BrtCellRk\", write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, \"BrtShortReal\", write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, \"BrtCellReal\", write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, \"BrtShortBool\", write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, \"BrtCellBool\", write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, \"BrtShortError\", write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, \"BrtCellError\", write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, \"BrtShortBlank\", write_BrtShortBlank(cell, o));\n\telse write_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tvar dense = Array.isArray(ws);\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_MERGECELLS(ba, ws) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 'BrtBeginMergeCells', write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 'BrtMergeCell', write_BrtMergeCell(m)); });\n\twrite_record(ba, 'BrtEndMergeCells');\n}\n\nfunction write_COLINFOS(ba, ws) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 'BrtBeginColInfos');\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 'BrtColInfo', write_BrtColInfo(i, m)); });\n\twrite_record(ba, 'BrtEndColInfos');\n}\n\nfunction write_IGNOREECS(ba, ws) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 'BrtBeginCellIgnoreECs');\n\twrite_record(ba, 'BrtCellIgnoreEC', write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 'BrtEndCellIgnoreECs');\n}\n\nfunction write_HLINKS(ba, ws, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, \"BrtHLink\", write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws, idx, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, \"BrtLegacyDrawing\", write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]});\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = \"'\" + wb.SheetNames[idx] + \"'!\" + ref; break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\n\twrite_record(ba, \"BrtBeginAFilter\", write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, \"BrtEndAFilter\");\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, \"BrtBeginWsViews\");\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, \"BrtBeginWsView\", write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, \"BrtEndWsView\");\n\t}\n\t/* *FRT */\n\twrite_record(ba, \"BrtEndWsViews\");\n}\n\nfunction write_WSFMTINFO() {\n\t/* [ACWSFMTINFO] */\n\t//write_record(ba, \"BrtWsFmtInfo\", write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, \"BrtSheetProtection\", write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx, opts, wb, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, \"BrtBeginSheet\");\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, \"BrtWsProp\", write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, \"BrtMargins\", write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\nRELS.CHART = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\";\nRELS.CHARTEX = \"http://schemas.microsoft.com/office/2014/relationships/chartEx\";\n\nfunction parse_Cache(data) {\n\tvar col = [];\n\tvar num = data.match(/^/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data, name, opts, rels, wb, csheet) {\n\tvar cs = ((csheet || {\"!type\":\"chart\"}));\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tcs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\nRELS.CS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\";\n\nvar CS_XML_ROOT = writextag('chartsheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"});\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_xml(idx, opts, wb, rels) {\n\tvar o = [XML_HEADER, CS_XML_ROOT];\n\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\tif(o.length>2) { o[o.length] = (''); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx, rels, wb) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R_n, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0) state.push(R_n);\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\nfunction write_cs_bin() {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtCsProp] */\n\t/* CSVIEWS */\n\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n\t/* [USERCSVIEWS] */\n\t/* [BrtMargins] */\n\t/* [BrtCsPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* BrtDrawing */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [WEBPUBITEMS] */\n\t/* FRTCHARTSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = \"][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n, safe) {\n\tif(n.length > 31) { if(safe) return false; throw new Error(\"Sheet names cannot exceed 31 chars\"); }\n\tvar _good = true;\n\tbadchars.forEach(function(c) {\n\t\tif(n.indexOf(c) == -1) return;\n\t\tif(!safe) throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t_good = false;\n\t});\n\treturn _good;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '': case '': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '': case '': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '': break;\n\t\t\tcase '': case '': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '': case '': case '': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '': case '': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '': case '': case '': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '': pass=true; break;\n\t\t\tcase '': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase ' 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr = ({codeName:\"ThisWorkbook\"});\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\nif((wb.Workbook.WBProps[x[0]]) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]);\n\t\t});\nif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '';\n\t\to[o.length] = \"\";\n\t}\n\n\to[o.length] = \"\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))});\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = ''; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tvar o = ({});\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tdata.l += 4; //var flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula});\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R_n, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(R_n); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif((R_n||\"\").indexOf(\"Begin\") > 0){/* empty */}\n\t\t\t\telse if((R_n||\"\").indexOf(\"End\") > 0){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != \"BrtACBegin\" && state[state.length-1] != \"BrtFRTBegin\")) throw new Error(\"Unexpected record \" + RT + \" \" + R_n);\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, \"BrtBeginBookViews\");\n\twrite_record(ba, \"BrtBookView\", write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\t/* write_record(ba, \"BrtCalcProp\", write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, \"BrtFileRecover\", write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data), opts);\n\treturn parse_wb_xml((data), opts);\n}\n\nfunction parse_ws(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name, idx, opts, rels, wb, themes, styles) {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data), themes, opts);\n\treturn parse_sty_xml((data), themes, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data), opts);\n\treturn parse_sst_xml((data), opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data), opts);\n\treturn parse_comments_xml((data), opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data), name, opts);\n\treturn parse_cc_xml((data), name, opts);\n}\n\nfunction parse_xlink(data, rel, name, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data), rel, name, opts);\n\treturn parse_xlink_xml((data), rel, name, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb, rels);\n}\n\n// eslint-disable-next-line no-unused-vars\nfunction write_cs(data, name, opts, wb, rels) {\n\treturn (name.slice(-4)===\".bin\" ? write_cs_bin : write_cs_xml)(data, opts, wb, rels);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n\nfunction write_cmnt(data, name, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n/*\nfunction write_cc(data, name:string, opts) {\n\treturn (name.slice(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = ([]); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\nif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val) {\n\tvar oval = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && SSF.is_date(z)) {\n\t\t\tvar _d = SSF.parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n\n/* TODO: Everything */\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?>:\\/]+)(?:[\\s?:\\/][^>]*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, _opts) {\n\tvar opts = _opts || {};\n\tmake_ssf(SSF);\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof cptable !== 'undefined') str = cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"= 0) ishtml = true; });\n\tif(ishtml) return HTML_.to_workbook(str, opts);\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames = [], cursheet = (opts.dense ? [] : {}), sheetname = \"\";\n\tvar table = {}, cell = ({}), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag(''), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments = [], comment = ({});\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf = [];\n\tvar rowinfo = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false} }), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[r]) cursheet[r] = [];\n\t\t\t\t\t\tcursheet[r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)});\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmerges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\nfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[cmd]) cursheet[cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = (opts.dense ? [] : {});\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(SSF._table[ssfidx] == null) { SSF.load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName = ({\n\t\t\t\tName: _NamedRange.Name,\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t});\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\nWorkbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author});\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\nWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].header = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tcursheet['!margins'].footer = parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(pagemargins.Top) cursheet['!margins'].top = pagemargins.Top;\n\t\t\t\t\t\tif(pagemargins.Left) cursheet['!margins'].left = pagemargins.Left;\n\t\t\t\t\t\tif(pagemargins.Right) cursheet['!margins'].right = pagemargins.Right;\n\t\t\t\t\t\tif(pagemargins.Bottom) cursheet['!margins'].bottom = pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({});\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n}\n\n/* TODO */\nfunction write_props_xlml(wb, opts) {\n\tvar o = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml() {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts) {\n\t/* Styles */\n\tvar styles = [''];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(SSF._table[xf.numFmtId])}));\n\n\t\tvar o = {\"ss:ID\": \"s\" + (21+id)};\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb) {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\nvar names = wb.Workbook.Names;\n\tvar out = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws, opts, idx, wb) {\n\tif(!ws) return \"\";\n\tvar o = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments) {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr){\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || SSF._table[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('' + _v + '');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R, row) {\n\tvar o = '';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws, opts, idx, wb) {\n\tif(!ws['!ref']) return \"\";\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar marr = ws['!merges'] || [], mi = 0;\n\tvar o = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = Array.isArray(ws);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_cell(addr), cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx, opts, wb) {\n\tvar o = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"\" + t + \"
\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts) {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = SSF.get_table();\n\tif(wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue\n\t- 2.4.59 ContinueBigName\n\t- 2.4.60 ContinueFrt\n\t- 2.4.61 ContinueFrt11\n\t- 2.4.62 ContinueFrt12\n*/\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': case 'EOF':\n\t\tbreak;\n\tcase 'BoundSheet8':\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\tvar start = 0;\n\twhile(next != null && next.n.slice(0,8) === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(next.n == 'ContinueFrt') start += 4;\n\t\telse if(next.n.slice(0,11) == 'ContinueFrt') {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs));\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record \" + (R && R.n || \"??\") + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && SSF.is_date(SSF._table[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF.parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn ({v:val, ixfe:ixfe, t:t});\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = ({opts:{}});\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out = ((options.dense ? [] : {}));\n\tvar Directory = {};\n\tvar range = ({});\n\tvar last_formula = null;\n\tvar sst = ([]);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf = [];\n\tvar temp_val;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar Workbook = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }), wsprops = {};\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({});\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[cell.r]) out[cell.r] = [];\n\t\t\t\tout[cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t});\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges = [];\n\tvar objects = [];\n\tvar colinfo = [], rowinfo = [];\n\t// eslint-disable-next-line no-unused-vars\n\tvar defwidth = 0, defheight = 0; // twips / MDW respectively\n\tvar seencol = false;\n\tvar supbooks = ([]); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val = ({});\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\nif(file_depth == 0 && Rn != 'BOF') continue;\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904':\nwb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': break;\n\t\t\t\tcase 'MTRSettings': break;\n\t\t\t\tcase 'RefreshAll':\n\t\t\t\tcase 'CalcCount':\n\t\t\t\tcase 'CalcDelta':\n\t\t\t\tcase 'CalcIter':\n\t\t\t\tcase 'CalcMode':\n\t\t\t\tcase 'CalcPrecision':\n\t\t\t\tcase 'CalcSaveRecalc':\n\t\t\t\t\twb.opts[Rn] = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool':\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 'XF':\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook':\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternName':\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl':\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t});\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'ExternCount': opts.ExternCount = val; break;\n\t\t\t\tcase 'ExternSheet':\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 'NameCmt':\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n0x0009:2,\n0x0209:3,\n0x0409:4\n\t\t\t\t\t}[RecordType] || {\n0x0200:2,\n0x0300:3,\n0x0400:4,\n0x0500:5,\n0x0600:8,\n0x0002:2,\n0x0007:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ((options.dense ? [] : {}));\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tdefwidth = defheight = 0;\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\n\t\t\t\tcase 'Number': case 'BIFF2NUM': case 'BIFF2INT': {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[val.r]||[])[val.c]: out[encode_cell({c:val.c, r:val.r})]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Blank': if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'});\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulBlank': if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'});\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'RString':\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(SSF._table[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF.load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 'BIFF2FORMAT': {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(SSF._table[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF.load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': merges = merges.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\t\t\t\tcase 'ImData': opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[val[0].r]) out[val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[val[0].r][val[0].c] = ({t:\"z\"});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'DefColWidth': defwidth = val; break;\n\t\t\t\tcase 'DefaultRowHeight': defheight = val[1]; break; // TODO: flags\n\n\t\t\t\tcase 'ColInfo': {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Row': {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tcase 'LeftMargin':\n\t\t\t\tcase 'RightMargin':\n\t\t\t\tcase 'TopMargin':\n\t\t\t\tcase 'BottomMargin':\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][Rn.slice(0,-6).toLowerCase()] = val;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Selection': break;\n\n\t\t\t\tcase 'Setup': // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Window2': // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXString': break; // TODO\n\t\t\t\tcase 'Sync': break;\n\t\t\t\tcase 'Addin': break;\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break;\n\t\t\t\tcase 'Theme': themes = val; break;\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\nif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\t\t\t\t\t/* empty */\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\tcase 'OleDbConn': break;\n\t\t\t\tcase 'ExtString': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': break;\n\t\t\t\tcase 'BuiltInFnGroupCount': /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ break;\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': break;\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub': break;\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks': break;\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\t/* BIFF2-4 records */\n\t\t\t\tcase 'BIFF2FONTCLR': case 'BIFF2FMTCNT': case 'BIFF2FONTXTRA': break;\n\t\t\t\tcase 'BIFF2XF': case 'BIFF3XF': case 'BIFF4XF': break;\n\t\t\t\tcase 'BIFF2XFINDEX': break;\n\t\t\t\tcase 'BIFF4FMTCNT': case 'BIFF2ROW': case 'BIFF2WINDOW2': break;\n\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tcase 'LHNGraph': case 'FnGroupName': case 'AddMenu': case 'LPr': break;\n\t\t\t\tcase 'ListObj': case 'ListField': break;\n\t\t\t\tcase 'RRSort': break;\n\t\t\t\tcase 'BigName': break;\n\t\t\t\tcase 'ToolbarHdr': case 'ToolbarEnd': break;\n\t\t\t\tcase 'DDEObjName': break;\n\t\t\t\tcase 'FRTArchId$': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb, cfb) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj, WB;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64.decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb});\n}\nvar WorkbookP;\n\nvar _data;\nif(CompObj) parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({});\nelse {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(cfb, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb, opts) {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n0x000C: { n:\"BrtShortBlank\", f:parse_BrtShortBlank },\n0x000D: { n:\"BrtShortRk\", f:parse_BrtShortRk },\n0x000E: { n:\"BrtShortError\", f:parse_BrtShortError },\n0x000F: { n:\"BrtShortBool\", f:parse_BrtShortBool },\n0x0010: { n:\"BrtShortReal\", f:parse_BrtShortReal },\n0x0011: { n:\"BrtShortSt\", f:parse_BrtShortSt },\n0x0012: { n:\"BrtShortIsst\", f:parse_BrtShortIsst },\n0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n0x0014: { n:\"BrtPCDIMissing\" },\n0x0015: { n:\"BrtPCDINumber\" },\n0x0016: { n:\"BrtPCDIBoolean\" },\n0x0017: { n:\"BrtPCDIError\" },\n0x0018: { n:\"BrtPCDIString\" },\n0x0019: { n:\"BrtPCDIDatetime\" },\n0x001A: { n:\"BrtPCDIIndex\" },\n0x001B: { n:\"BrtPCDIAMissing\" },\n0x001C: { n:\"BrtPCDIANumber\" },\n0x001D: { n:\"BrtPCDIABoolean\" },\n0x001E: { n:\"BrtPCDIAError\" },\n0x001F: { n:\"BrtPCDIAString\" },\n0x0020: { n:\"BrtPCDIADatetime\" },\n0x0021: { n:\"BrtPCRRecord\" },\n0x0022: { n:\"BrtPCRRecordDt\" },\n0x0023: { n:\"BrtFRTBegin\" },\n0x0024: { n:\"BrtFRTEnd\" },\n0x0025: { n:\"BrtACBegin\" },\n0x0026: { n:\"BrtACEnd\" },\n0x0027: { n:\"BrtName\", f:parse_BrtName },\n0x0028: { n:\"BrtIndexRowBlock\" },\n0x002A: { n:\"BrtIndexBlock\" },\n0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n0x002D: { n:\"BrtFill\", f:parse_BrtFill },\n0x002E: { n:\"BrtBorder\", f:parse_BrtBorder },\n0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n0x0030: { n:\"BrtStyle\" },\n0x0031: { n:\"BrtCellMeta\" },\n0x0032: { n:\"BrtValueMeta\" },\n0x0033: { n:\"BrtMdb\" },\n0x0034: { n:\"BrtBeginFmd\" },\n0x0035: { n:\"BrtEndFmd\" },\n0x0036: { n:\"BrtBeginMdx\" },\n0x0037: { n:\"BrtEndMdx\" },\n0x0038: { n:\"BrtBeginMdxTuple\" },\n0x0039: { n:\"BrtEndMdxTuple\" },\n0x003A: { n:\"BrtMdxMbrIstr\" },\n0x003B: { n:\"BrtStr\" },\n0x003C: { n:\"BrtColInfo\", f:parse_ColInfo },\n0x003E: { n:\"BrtCellRString\" },\n0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n0x0040: { n:\"BrtDVal\", f:parse_BrtDVal },\n0x0041: { n:\"BrtSxvcellNum\" },\n0x0042: { n:\"BrtSxvcellStr\" },\n0x0043: { n:\"BrtSxvcellBool\" },\n0x0044: { n:\"BrtSxvcellErr\" },\n0x0045: { n:\"BrtSxvcellDate\" },\n0x0046: { n:\"BrtSxvcellNil\" },\n0x0080: { n:\"BrtFileVersion\" },\n0x0081: { n:\"BrtBeginSheet\" },\n0x0082: { n:\"BrtEndSheet\" },\n0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n0x0084: { n:\"BrtEndBook\" },\n0x0085: { n:\"BrtBeginWsViews\" },\n0x0086: { n:\"BrtEndWsViews\" },\n0x0087: { n:\"BrtBeginBookViews\" },\n0x0088: { n:\"BrtEndBookViews\" },\n0x0089: { n:\"BrtBeginWsView\", f:parse_BrtBeginWsView },\n0x008A: { n:\"BrtEndWsView\" },\n0x008B: { n:\"BrtBeginCsViews\" },\n0x008C: { n:\"BrtEndCsViews\" },\n0x008D: { n:\"BrtBeginCsView\" },\n0x008E: { n:\"BrtEndCsView\" },\n0x008F: { n:\"BrtBeginBundleShs\" },\n0x0090: { n:\"BrtEndBundleShs\" },\n0x0091: { n:\"BrtBeginSheetData\" },\n0x0092: { n:\"BrtEndSheetData\" },\n0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n0x0097: { n:\"BrtPane\", f:parse_BrtPane },\n0x0098: { n:\"BrtSel\" },\n0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n0x009A: { n:\"BrtWbFactoid\" },\n0x009B: { n:\"BrtFileRecover\" },\n0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n0x009D: { n:\"BrtCalcProp\" },\n0x009E: { n:\"BrtBookView\" },\n0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n0x00A0: { n:\"BrtEndSst\" },\n0x00A1: { n:\"BrtBeginAFilter\", f:parse_UncheckedRfX },\n0x00A2: { n:\"BrtEndAFilter\" },\n0x00A3: { n:\"BrtBeginFilterColumn\" },\n0x00A4: { n:\"BrtEndFilterColumn\" },\n0x00A5: { n:\"BrtBeginFilters\" },\n0x00A6: { n:\"BrtEndFilters\" },\n0x00A7: { n:\"BrtFilter\" },\n0x00A8: { n:\"BrtColorFilter\" },\n0x00A9: { n:\"BrtIconFilter\" },\n0x00AA: { n:\"BrtTop10Filter\" },\n0x00AB: { n:\"BrtDynamicFilter\" },\n0x00AC: { n:\"BrtBeginCustomFilters\" },\n0x00AD: { n:\"BrtEndCustomFilters\" },\n0x00AE: { n:\"BrtCustomFilter\" },\n0x00AF: { n:\"BrtAFilterDateGroupItem\" },\n0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n0x00B1: { n:\"BrtBeginMergeCells\" },\n0x00B2: { n:\"BrtEndMergeCells\" },\n0x00B3: { n:\"BrtBeginPivotCacheDef\" },\n0x00B4: { n:\"BrtEndPivotCacheDef\" },\n0x00B5: { n:\"BrtBeginPCDFields\" },\n0x00B6: { n:\"BrtEndPCDFields\" },\n0x00B7: { n:\"BrtBeginPCDField\" },\n0x00B8: { n:\"BrtEndPCDField\" },\n0x00B9: { n:\"BrtBeginPCDSource\" },\n0x00BA: { n:\"BrtEndPCDSource\" },\n0x00BB: { n:\"BrtBeginPCDSRange\" },\n0x00BC: { n:\"BrtEndPCDSRange\" },\n0x00BD: { n:\"BrtBeginPCDFAtbl\" },\n0x00BE: { n:\"BrtEndPCDFAtbl\" },\n0x00BF: { n:\"BrtBeginPCDIRun\" },\n0x00C0: { n:\"BrtEndPCDIRun\" },\n0x00C1: { n:\"BrtBeginPivotCacheRecords\" },\n0x00C2: { n:\"BrtEndPivotCacheRecords\" },\n0x00C3: { n:\"BrtBeginPCDHierarchies\" },\n0x00C4: { n:\"BrtEndPCDHierarchies\" },\n0x00C5: { n:\"BrtBeginPCDHierarchy\" },\n0x00C6: { n:\"BrtEndPCDHierarchy\" },\n0x00C7: { n:\"BrtBeginPCDHFieldsUsage\" },\n0x00C8: { n:\"BrtEndPCDHFieldsUsage\" },\n0x00C9: { n:\"BrtBeginExtConnection\" },\n0x00CA: { n:\"BrtEndExtConnection\" },\n0x00CB: { n:\"BrtBeginECDbProps\" },\n0x00CC: { n:\"BrtEndECDbProps\" },\n0x00CD: { n:\"BrtBeginECOlapProps\" },\n0x00CE: { n:\"BrtEndECOlapProps\" },\n0x00CF: { n:\"BrtBeginPCDSConsol\" },\n0x00D0: { n:\"BrtEndPCDSConsol\" },\n0x00D1: { n:\"BrtBeginPCDSCPages\" },\n0x00D2: { n:\"BrtEndPCDSCPages\" },\n0x00D3: { n:\"BrtBeginPCDSCPage\" },\n0x00D4: { n:\"BrtEndPCDSCPage\" },\n0x00D5: { n:\"BrtBeginPCDSCPItem\" },\n0x00D6: { n:\"BrtEndPCDSCPItem\" },\n0x00D7: { n:\"BrtBeginPCDSCSets\" },\n0x00D8: { n:\"BrtEndPCDSCSets\" },\n0x00D9: { n:\"BrtBeginPCDSCSet\" },\n0x00DA: { n:\"BrtEndPCDSCSet\" },\n0x00DB: { n:\"BrtBeginPCDFGroup\" },\n0x00DC: { n:\"BrtEndPCDFGroup\" },\n0x00DD: { n:\"BrtBeginPCDFGItems\" },\n0x00DE: { n:\"BrtEndPCDFGItems\" },\n0x00DF: { n:\"BrtBeginPCDFGRange\" },\n0x00E0: { n:\"BrtEndPCDFGRange\" },\n0x00E1: { n:\"BrtBeginPCDFGDiscrete\" },\n0x00E2: { n:\"BrtEndPCDFGDiscrete\" },\n0x00E3: { n:\"BrtBeginPCDSDTupleCache\" },\n0x00E4: { n:\"BrtEndPCDSDTupleCache\" },\n0x00E5: { n:\"BrtBeginPCDSDTCEntries\" },\n0x00E6: { n:\"BrtEndPCDSDTCEntries\" },\n0x00E7: { n:\"BrtBeginPCDSDTCEMembers\" },\n0x00E8: { n:\"BrtEndPCDSDTCEMembers\" },\n0x00E9: { n:\"BrtBeginPCDSDTCEMember\" },\n0x00EA: { n:\"BrtEndPCDSDTCEMember\" },\n0x00EB: { n:\"BrtBeginPCDSDTCQueries\" },\n0x00EC: { n:\"BrtEndPCDSDTCQueries\" },\n0x00ED: { n:\"BrtBeginPCDSDTCQuery\" },\n0x00EE: { n:\"BrtEndPCDSDTCQuery\" },\n0x00EF: { n:\"BrtBeginPCDSDTCSets\" },\n0x00F0: { n:\"BrtEndPCDSDTCSets\" },\n0x00F1: { n:\"BrtBeginPCDSDTCSet\" },\n0x00F2: { n:\"BrtEndPCDSDTCSet\" },\n0x00F3: { n:\"BrtBeginPCDCalcItems\" },\n0x00F4: { n:\"BrtEndPCDCalcItems\" },\n0x00F5: { n:\"BrtBeginPCDCalcItem\" },\n0x00F6: { n:\"BrtEndPCDCalcItem\" },\n0x00F7: { n:\"BrtBeginPRule\" },\n0x00F8: { n:\"BrtEndPRule\" },\n0x00F9: { n:\"BrtBeginPRFilters\" },\n0x00FA: { n:\"BrtEndPRFilters\" },\n0x00FB: { n:\"BrtBeginPRFilter\" },\n0x00FC: { n:\"BrtEndPRFilter\" },\n0x00FD: { n:\"BrtBeginPNames\" },\n0x00FE: { n:\"BrtEndPNames\" },\n0x00FF: { n:\"BrtBeginPName\" },\n0x0100: { n:\"BrtEndPName\" },\n0x0101: { n:\"BrtBeginPNPairs\" },\n0x0102: { n:\"BrtEndPNPairs\" },\n0x0103: { n:\"BrtBeginPNPair\" },\n0x0104: { n:\"BrtEndPNPair\" },\n0x0105: { n:\"BrtBeginECWebProps\" },\n0x0106: { n:\"BrtEndECWebProps\" },\n0x0107: { n:\"BrtBeginEcWpTables\" },\n0x0108: { n:\"BrtEndECWPTables\" },\n0x0109: { n:\"BrtBeginECParams\" },\n0x010A: { n:\"BrtEndECParams\" },\n0x010B: { n:\"BrtBeginECParam\" },\n0x010C: { n:\"BrtEndECParam\" },\n0x010D: { n:\"BrtBeginPCDKPIs\" },\n0x010E: { n:\"BrtEndPCDKPIs\" },\n0x010F: { n:\"BrtBeginPCDKPI\" },\n0x0110: { n:\"BrtEndPCDKPI\" },\n0x0111: { n:\"BrtBeginDims\" },\n0x0112: { n:\"BrtEndDims\" },\n0x0113: { n:\"BrtBeginDim\" },\n0x0114: { n:\"BrtEndDim\" },\n0x0115: { n:\"BrtIndexPartEnd\" },\n0x0116: { n:\"BrtBeginStyleSheet\" },\n0x0117: { n:\"BrtEndStyleSheet\" },\n0x0118: { n:\"BrtBeginSXView\" },\n0x0119: { n:\"BrtEndSXVI\" },\n0x011A: { n:\"BrtBeginSXVI\" },\n0x011B: { n:\"BrtBeginSXVIs\" },\n0x011C: { n:\"BrtEndSXVIs\" },\n0x011D: { n:\"BrtBeginSXVD\" },\n0x011E: { n:\"BrtEndSXVD\" },\n0x011F: { n:\"BrtBeginSXVDs\" },\n0x0120: { n:\"BrtEndSXVDs\" },\n0x0121: { n:\"BrtBeginSXPI\" },\n0x0122: { n:\"BrtEndSXPI\" },\n0x0123: { n:\"BrtBeginSXPIs\" },\n0x0124: { n:\"BrtEndSXPIs\" },\n0x0125: { n:\"BrtBeginSXDI\" },\n0x0126: { n:\"BrtEndSXDI\" },\n0x0127: { n:\"BrtBeginSXDIs\" },\n0x0128: { n:\"BrtEndSXDIs\" },\n0x0129: { n:\"BrtBeginSXLI\" },\n0x012A: { n:\"BrtEndSXLI\" },\n0x012B: { n:\"BrtBeginSXLIRws\" },\n0x012C: { n:\"BrtEndSXLIRws\" },\n0x012D: { n:\"BrtBeginSXLICols\" },\n0x012E: { n:\"BrtEndSXLICols\" },\n0x012F: { n:\"BrtBeginSXFormat\" },\n0x0130: { n:\"BrtEndSXFormat\" },\n0x0131: { n:\"BrtBeginSXFormats\" },\n0x0132: { n:\"BrtEndSxFormats\" },\n0x0133: { n:\"BrtBeginSxSelect\" },\n0x0134: { n:\"BrtEndSxSelect\" },\n0x0135: { n:\"BrtBeginISXVDRws\" },\n0x0136: { n:\"BrtEndISXVDRws\" },\n0x0137: { n:\"BrtBeginISXVDCols\" },\n0x0138: { n:\"BrtEndISXVDCols\" },\n0x0139: { n:\"BrtEndSXLocation\" },\n0x013A: { n:\"BrtBeginSXLocation\" },\n0x013B: { n:\"BrtEndSXView\" },\n0x013C: { n:\"BrtBeginSXTHs\" },\n0x013D: { n:\"BrtEndSXTHs\" },\n0x013E: { n:\"BrtBeginSXTH\" },\n0x013F: { n:\"BrtEndSXTH\" },\n0x0140: { n:\"BrtBeginISXTHRws\" },\n0x0141: { n:\"BrtEndISXTHRws\" },\n0x0142: { n:\"BrtBeginISXTHCols\" },\n0x0143: { n:\"BrtEndISXTHCols\" },\n0x0144: { n:\"BrtBeginSXTDMPS\" },\n0x0145: { n:\"BrtEndSXTDMPs\" },\n0x0146: { n:\"BrtBeginSXTDMP\" },\n0x0147: { n:\"BrtEndSXTDMP\" },\n0x0148: { n:\"BrtBeginSXTHItems\" },\n0x0149: { n:\"BrtEndSXTHItems\" },\n0x014A: { n:\"BrtBeginSXTHItem\" },\n0x014B: { n:\"BrtEndSXTHItem\" },\n0x014C: { n:\"BrtBeginMetadata\" },\n0x014D: { n:\"BrtEndMetadata\" },\n0x014E: { n:\"BrtBeginEsmdtinfo\" },\n0x014F: { n:\"BrtMdtinfo\" },\n0x0150: { n:\"BrtEndEsmdtinfo\" },\n0x0151: { n:\"BrtBeginEsmdb\" },\n0x0152: { n:\"BrtEndEsmdb\" },\n0x0153: { n:\"BrtBeginEsfmd\" },\n0x0154: { n:\"BrtEndEsfmd\" },\n0x0155: { n:\"BrtBeginSingleCells\" },\n0x0156: { n:\"BrtEndSingleCells\" },\n0x0157: { n:\"BrtBeginList\" },\n0x0158: { n:\"BrtEndList\" },\n0x0159: { n:\"BrtBeginListCols\" },\n0x015A: { n:\"BrtEndListCols\" },\n0x015B: { n:\"BrtBeginListCol\" },\n0x015C: { n:\"BrtEndListCol\" },\n0x015D: { n:\"BrtBeginListXmlCPr\" },\n0x015E: { n:\"BrtEndListXmlCPr\" },\n0x015F: { n:\"BrtListCCFmla\" },\n0x0160: { n:\"BrtListTrFmla\" },\n0x0161: { n:\"BrtBeginExternals\" },\n0x0162: { n:\"BrtEndExternals\" },\n0x0163: { n:\"BrtSupBookSrc\", f:parse_RelID},\n0x0165: { n:\"BrtSupSelf\" },\n0x0166: { n:\"BrtSupSame\" },\n0x0167: { n:\"BrtSupTabs\" },\n0x0168: { n:\"BrtBeginSupBook\" },\n0x0169: { n:\"BrtPlaceholderName\" },\n0x016A: { n:\"BrtExternSheet\", f:parse_ExternSheet },\n0x016B: { n:\"BrtExternTableStart\" },\n0x016C: { n:\"BrtExternTableEnd\" },\n0x016E: { n:\"BrtExternRowHdr\" },\n0x016F: { n:\"BrtExternCellBlank\" },\n0x0170: { n:\"BrtExternCellReal\" },\n0x0171: { n:\"BrtExternCellBool\" },\n0x0172: { n:\"BrtExternCellError\" },\n0x0173: { n:\"BrtExternCellString\" },\n0x0174: { n:\"BrtBeginEsmdx\" },\n0x0175: { n:\"BrtEndEsmdx\" },\n0x0176: { n:\"BrtBeginMdxSet\" },\n0x0177: { n:\"BrtEndMdxSet\" },\n0x0178: { n:\"BrtBeginMdxMbrProp\" },\n0x0179: { n:\"BrtEndMdxMbrProp\" },\n0x017A: { n:\"BrtBeginMdxKPI\" },\n0x017B: { n:\"BrtEndMdxKPI\" },\n0x017C: { n:\"BrtBeginEsstr\" },\n0x017D: { n:\"BrtEndEsstr\" },\n0x017E: { n:\"BrtBeginPRFItem\" },\n0x017F: { n:\"BrtEndPRFItem\" },\n0x0180: { n:\"BrtBeginPivotCacheIDs\" },\n0x0181: { n:\"BrtEndPivotCacheIDs\" },\n0x0182: { n:\"BrtBeginPivotCacheID\" },\n0x0183: { n:\"BrtEndPivotCacheID\" },\n0x0184: { n:\"BrtBeginISXVIs\" },\n0x0185: { n:\"BrtEndISXVIs\" },\n0x0186: { n:\"BrtBeginColInfos\" },\n0x0187: { n:\"BrtEndColInfos\" },\n0x0188: { n:\"BrtBeginRwBrk\" },\n0x0189: { n:\"BrtEndRwBrk\" },\n0x018A: { n:\"BrtBeginColBrk\" },\n0x018B: { n:\"BrtEndColBrk\" },\n0x018C: { n:\"BrtBrk\" },\n0x018D: { n:\"BrtUserBookView\" },\n0x018E: { n:\"BrtInfo\" },\n0x018F: { n:\"BrtCUsr\" },\n0x0190: { n:\"BrtUsr\" },\n0x0191: { n:\"BrtBeginUsers\" },\n0x0193: { n:\"BrtEOF\" },\n0x0194: { n:\"BrtUCR\" },\n0x0195: { n:\"BrtRRInsDel\" },\n0x0196: { n:\"BrtRREndInsDel\" },\n0x0197: { n:\"BrtRRMove\" },\n0x0198: { n:\"BrtRREndMove\" },\n0x0199: { n:\"BrtRRChgCell\" },\n0x019A: { n:\"BrtRREndChgCell\" },\n0x019B: { n:\"BrtRRHeader\" },\n0x019C: { n:\"BrtRRUserView\" },\n0x019D: { n:\"BrtRRRenSheet\" },\n0x019E: { n:\"BrtRRInsertSh\" },\n0x019F: { n:\"BrtRRDefName\" },\n0x01A0: { n:\"BrtRRNote\" },\n0x01A1: { n:\"BrtRRConflict\" },\n0x01A2: { n:\"BrtRRTQSIF\" },\n0x01A3: { n:\"BrtRRFormat\" },\n0x01A4: { n:\"BrtRREndFormat\" },\n0x01A5: { n:\"BrtRRAutoFmt\" },\n0x01A6: { n:\"BrtBeginUserShViews\" },\n0x01A7: { n:\"BrtBeginUserShView\" },\n0x01A8: { n:\"BrtEndUserShView\" },\n0x01A9: { n:\"BrtEndUserShViews\" },\n0x01AA: { n:\"BrtArrFmla\", f:parse_BrtArrFmla },\n0x01AB: { n:\"BrtShrFmla\", f:parse_BrtShrFmla },\n0x01AC: { n:\"BrtTable\" },\n0x01AD: { n:\"BrtBeginExtConnections\" },\n0x01AE: { n:\"BrtEndExtConnections\" },\n0x01AF: { n:\"BrtBeginPCDCalcMems\" },\n0x01B0: { n:\"BrtEndPCDCalcMems\" },\n0x01B1: { n:\"BrtBeginPCDCalcMem\" },\n0x01B2: { n:\"BrtEndPCDCalcMem\" },\n0x01B3: { n:\"BrtBeginPCDHGLevels\" },\n0x01B4: { n:\"BrtEndPCDHGLevels\" },\n0x01B5: { n:\"BrtBeginPCDHGLevel\" },\n0x01B6: { n:\"BrtEndPCDHGLevel\" },\n0x01B7: { n:\"BrtBeginPCDHGLGroups\" },\n0x01B8: { n:\"BrtEndPCDHGLGroups\" },\n0x01B9: { n:\"BrtBeginPCDHGLGroup\" },\n0x01BA: { n:\"BrtEndPCDHGLGroup\" },\n0x01BB: { n:\"BrtBeginPCDHGLGMembers\" },\n0x01BC: { n:\"BrtEndPCDHGLGMembers\" },\n0x01BD: { n:\"BrtBeginPCDHGLGMember\" },\n0x01BE: { n:\"BrtEndPCDHGLGMember\" },\n0x01BF: { n:\"BrtBeginQSI\" },\n0x01C0: { n:\"BrtEndQSI\" },\n0x01C1: { n:\"BrtBeginQSIR\" },\n0x01C2: { n:\"BrtEndQSIR\" },\n0x01C3: { n:\"BrtBeginDeletedNames\" },\n0x01C4: { n:\"BrtEndDeletedNames\" },\n0x01C5: { n:\"BrtBeginDeletedName\" },\n0x01C6: { n:\"BrtEndDeletedName\" },\n0x01C7: { n:\"BrtBeginQSIFs\" },\n0x01C8: { n:\"BrtEndQSIFs\" },\n0x01C9: { n:\"BrtBeginQSIF\" },\n0x01CA: { n:\"BrtEndQSIF\" },\n0x01CB: { n:\"BrtBeginAutoSortScope\" },\n0x01CC: { n:\"BrtEndAutoSortScope\" },\n0x01CD: { n:\"BrtBeginConditionalFormatting\" },\n0x01CE: { n:\"BrtEndConditionalFormatting\" },\n0x01CF: { n:\"BrtBeginCFRule\" },\n0x01D0: { n:\"BrtEndCFRule\" },\n0x01D1: { n:\"BrtBeginIconSet\" },\n0x01D2: { n:\"BrtEndIconSet\" },\n0x01D3: { n:\"BrtBeginDatabar\" },\n0x01D4: { n:\"BrtEndDatabar\" },\n0x01D5: { n:\"BrtBeginColorScale\" },\n0x01D6: { n:\"BrtEndColorScale\" },\n0x01D7: { n:\"BrtCFVO\" },\n0x01D8: { n:\"BrtExternValueMeta\" },\n0x01D9: { n:\"BrtBeginColorPalette\" },\n0x01DA: { n:\"BrtEndColorPalette\" },\n0x01DB: { n:\"BrtIndexedColor\" },\n0x01DC: { n:\"BrtMargins\", f:parse_BrtMargins },\n0x01DD: { n:\"BrtPrintOptions\" },\n0x01DE: { n:\"BrtPageSetup\" },\n0x01DF: { n:\"BrtBeginHeaderFooter\" },\n0x01E0: { n:\"BrtEndHeaderFooter\" },\n0x01E1: { n:\"BrtBeginSXCrtFormat\" },\n0x01E2: { n:\"BrtEndSXCrtFormat\" },\n0x01E3: { n:\"BrtBeginSXCrtFormats\" },\n0x01E4: { n:\"BrtEndSXCrtFormats\" },\n0x01E5: { n:\"BrtWsFmtInfo\", f:parse_BrtWsFmtInfo },\n0x01E6: { n:\"BrtBeginMgs\" },\n0x01E7: { n:\"BrtEndMGs\" },\n0x01E8: { n:\"BrtBeginMGMaps\" },\n0x01E9: { n:\"BrtEndMGMaps\" },\n0x01EA: { n:\"BrtBeginMG\" },\n0x01EB: { n:\"BrtEndMG\" },\n0x01EC: { n:\"BrtBeginMap\" },\n0x01ED: { n:\"BrtEndMap\" },\n0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n0x01EF: { n:\"BrtBeginDCon\" },\n0x01F0: { n:\"BrtEndDCon\" },\n0x01F1: { n:\"BrtBeginDRefs\" },\n0x01F2: { n:\"BrtEndDRefs\" },\n0x01F3: { n:\"BrtDRef\" },\n0x01F4: { n:\"BrtBeginScenMan\" },\n0x01F5: { n:\"BrtEndScenMan\" },\n0x01F6: { n:\"BrtBeginSct\" },\n0x01F7: { n:\"BrtEndSct\" },\n0x01F8: { n:\"BrtSlc\" },\n0x01F9: { n:\"BrtBeginDXFs\" },\n0x01FA: { n:\"BrtEndDXFs\" },\n0x01FB: { n:\"BrtDXF\" },\n0x01FC: { n:\"BrtBeginTableStyles\" },\n0x01FD: { n:\"BrtEndTableStyles\" },\n0x01FE: { n:\"BrtBeginTableStyle\" },\n0x01FF: { n:\"BrtEndTableStyle\" },\n0x0200: { n:\"BrtTableStyleElement\" },\n0x0201: { n:\"BrtTableStyleClient\" },\n0x0202: { n:\"BrtBeginVolDeps\" },\n0x0203: { n:\"BrtEndVolDeps\" },\n0x0204: { n:\"BrtBeginVolType\" },\n0x0205: { n:\"BrtEndVolType\" },\n0x0206: { n:\"BrtBeginVolMain\" },\n0x0207: { n:\"BrtEndVolMain\" },\n0x0208: { n:\"BrtBeginVolTopic\" },\n0x0209: { n:\"BrtEndVolTopic\" },\n0x020A: { n:\"BrtVolSubtopic\" },\n0x020B: { n:\"BrtVolRef\" },\n0x020C: { n:\"BrtVolNum\" },\n0x020D: { n:\"BrtVolErr\" },\n0x020E: { n:\"BrtVolStr\" },\n0x020F: { n:\"BrtVolBool\" },\n0x0210: { n:\"BrtBeginCalcChain$\" },\n0x0211: { n:\"BrtEndCalcChain$\" },\n0x0212: { n:\"BrtBeginSortState\" },\n0x0213: { n:\"BrtEndSortState\" },\n0x0214: { n:\"BrtBeginSortCond\" },\n0x0215: { n:\"BrtEndSortCond\" },\n0x0216: { n:\"BrtBookProtection\" },\n0x0217: { n:\"BrtSheetProtection\" },\n0x0218: { n:\"BrtRangeProtection\" },\n0x0219: { n:\"BrtPhoneticInfo\" },\n0x021A: { n:\"BrtBeginECTxtWiz\" },\n0x021B: { n:\"BrtEndECTxtWiz\" },\n0x021C: { n:\"BrtBeginECTWFldInfoLst\" },\n0x021D: { n:\"BrtEndECTWFldInfoLst\" },\n0x021E: { n:\"BrtBeginECTwFldInfo\" },\n0x0224: { n:\"BrtFileSharing\" },\n0x0225: { n:\"BrtOleSize\" },\n0x0226: { n:\"BrtDrawing\", f:parse_RelID },\n0x0227: { n:\"BrtLegacyDrawing\" },\n0x0228: { n:\"BrtLegacyDrawingHF\" },\n0x0229: { n:\"BrtWebOpt\" },\n0x022A: { n:\"BrtBeginWebPubItems\" },\n0x022B: { n:\"BrtEndWebPubItems\" },\n0x022C: { n:\"BrtBeginWebPubItem\" },\n0x022D: { n:\"BrtEndWebPubItem\" },\n0x022E: { n:\"BrtBeginSXCondFmt\" },\n0x022F: { n:\"BrtEndSXCondFmt\" },\n0x0230: { n:\"BrtBeginSXCondFmts\" },\n0x0231: { n:\"BrtEndSXCondFmts\" },\n0x0232: { n:\"BrtBkHim\" },\n0x0234: { n:\"BrtColor\" },\n0x0235: { n:\"BrtBeginIndexedColors\" },\n0x0236: { n:\"BrtEndIndexedColors\" },\n0x0239: { n:\"BrtBeginMRUColors\" },\n0x023A: { n:\"BrtEndMRUColors\" },\n0x023C: { n:\"BrtMRUColor\" },\n0x023D: { n:\"BrtBeginDVals\" },\n0x023E: { n:\"BrtEndDVals\" },\n0x0241: { n:\"BrtSupNameStart\" },\n0x0242: { n:\"BrtSupNameValueStart\" },\n0x0243: { n:\"BrtSupNameValueEnd\" },\n0x0244: { n:\"BrtSupNameNum\" },\n0x0245: { n:\"BrtSupNameErr\" },\n0x0246: { n:\"BrtSupNameSt\" },\n0x0247: { n:\"BrtSupNameNil\" },\n0x0248: { n:\"BrtSupNameBool\" },\n0x0249: { n:\"BrtSupNameFmla\" },\n0x024A: { n:\"BrtSupNameBits\" },\n0x024B: { n:\"BrtSupNameEnd\" },\n0x024C: { n:\"BrtEndSupBook\" },\n0x024D: { n:\"BrtCellSmartTagProperty\" },\n0x024E: { n:\"BrtBeginCellSmartTag\" },\n0x024F: { n:\"BrtEndCellSmartTag\" },\n0x0250: { n:\"BrtBeginCellSmartTags\" },\n0x0251: { n:\"BrtEndCellSmartTags\" },\n0x0252: { n:\"BrtBeginSmartTags\" },\n0x0253: { n:\"BrtEndSmartTags\" },\n0x0254: { n:\"BrtSmartTagType\" },\n0x0255: { n:\"BrtBeginSmartTagTypes\" },\n0x0256: { n:\"BrtEndSmartTagTypes\" },\n0x0257: { n:\"BrtBeginSXFilters\" },\n0x0258: { n:\"BrtEndSXFilters\" },\n0x0259: { n:\"BrtBeginSXFILTER\" },\n0x025A: { n:\"BrtEndSXFilter\" },\n0x025B: { n:\"BrtBeginFills\" },\n0x025C: { n:\"BrtEndFills\" },\n0x025D: { n:\"BrtBeginCellWatches\" },\n0x025E: { n:\"BrtEndCellWatches\" },\n0x025F: { n:\"BrtCellWatch\" },\n0x0260: { n:\"BrtBeginCRErrs\" },\n0x0261: { n:\"BrtEndCRErrs\" },\n0x0262: { n:\"BrtCrashRecErr\" },\n0x0263: { n:\"BrtBeginFonts\" },\n0x0264: { n:\"BrtEndFonts\" },\n0x0265: { n:\"BrtBeginBorders\" },\n0x0266: { n:\"BrtEndBorders\" },\n0x0267: { n:\"BrtBeginFmts\" },\n0x0268: { n:\"BrtEndFmts\" },\n0x0269: { n:\"BrtBeginCellXFs\" },\n0x026A: { n:\"BrtEndCellXFs\" },\n0x026B: { n:\"BrtBeginStyles\" },\n0x026C: { n:\"BrtEndStyles\" },\n0x0271: { n:\"BrtBigName\" },\n0x0272: { n:\"BrtBeginCellStyleXFs\" },\n0x0273: { n:\"BrtEndCellStyleXFs\" },\n0x0274: { n:\"BrtBeginComments\" },\n0x0275: { n:\"BrtEndComments\" },\n0x0276: { n:\"BrtBeginCommentAuthors\" },\n0x0277: { n:\"BrtEndCommentAuthors\" },\n0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n0x0279: { n:\"BrtBeginCommentList\" },\n0x027A: { n:\"BrtEndCommentList\" },\n0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n0x027C: { n:\"BrtEndComment\" },\n0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n0x027E: { n:\"BrtBeginOleObjects\" },\n0x027F: { n:\"BrtOleObject\" },\n0x0280: { n:\"BrtEndOleObjects\" },\n0x0281: { n:\"BrtBeginSxrules\" },\n0x0282: { n:\"BrtEndSxRules\" },\n0x0283: { n:\"BrtBeginActiveXControls\" },\n0x0284: { n:\"BrtActiveX\" },\n0x0285: { n:\"BrtEndActiveXControls\" },\n0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\" },\n0x0288: { n:\"BrtBeginCellIgnoreECs\" },\n0x0289: { n:\"BrtCellIgnoreEC\" },\n0x028A: { n:\"BrtEndCellIgnoreECs\" },\n0x028B: { n:\"BrtCsProp\", f:parse_BrtCsProp },\n0x028C: { n:\"BrtCsPageSetup\" },\n0x028D: { n:\"BrtBeginUserCsViews\" },\n0x028E: { n:\"BrtEndUserCsViews\" },\n0x028F: { n:\"BrtBeginUserCsView\" },\n0x0290: { n:\"BrtEndUserCsView\" },\n0x0291: { n:\"BrtBeginPcdSFCIEntries\" },\n0x0292: { n:\"BrtEndPCDSFCIEntries\" },\n0x0293: { n:\"BrtPCDSFCIEntry\" },\n0x0294: { n:\"BrtBeginListParts\" },\n0x0295: { n:\"BrtListPart\" },\n0x0296: { n:\"BrtEndListParts\" },\n0x0297: { n:\"BrtSheetCalcProp\" },\n0x0298: { n:\"BrtBeginFnGroup\" },\n0x0299: { n:\"BrtFnGroup\" },\n0x029A: { n:\"BrtEndFnGroup\" },\n0x029B: { n:\"BrtSupAddin\" },\n0x029C: { n:\"BrtSXTDMPOrder\" },\n0x029D: { n:\"BrtCsProtection\" },\n0x029F: { n:\"BrtBeginWsSortMap\" },\n0x02A0: { n:\"BrtEndWsSortMap\" },\n0x02A1: { n:\"BrtBeginRRSort\" },\n0x02A2: { n:\"BrtEndRRSort\" },\n0x02A3: { n:\"BrtRRSortItem\" },\n0x02A4: { n:\"BrtFileSharingIso\" },\n0x02A5: { n:\"BrtBookProtectionIso\" },\n0x02A6: { n:\"BrtSheetProtectionIso\" },\n0x02A7: { n:\"BrtCsProtectionIso\" },\n0x02A8: { n:\"BrtRangeProtectionIso\" },\n0x02A9: { n:\"BrtDValList\" },\n0x0400: { n:\"BrtRwDescent\" },\n0x0401: { n:\"BrtKnownFonts\" },\n0x0402: { n:\"BrtBeginSXTupleSet\" },\n0x0403: { n:\"BrtEndSXTupleSet\" },\n0x0404: { n:\"BrtBeginSXTupleSetHeader\" },\n0x0405: { n:\"BrtEndSXTupleSetHeader\" },\n0x0406: { n:\"BrtSXTupleSetHeaderItem\" },\n0x0407: { n:\"BrtBeginSXTupleSetData\" },\n0x0408: { n:\"BrtEndSXTupleSetData\" },\n0x0409: { n:\"BrtBeginSXTupleSetRow\" },\n0x040A: { n:\"BrtEndSXTupleSetRow\" },\n0x040B: { n:\"BrtSXTupleSetRowItem\" },\n0x040C: { n:\"BrtNameExt\" },\n0x040D: { n:\"BrtPCDH14\" },\n0x040E: { n:\"BrtBeginPCDCalcMem14\" },\n0x040F: { n:\"BrtEndPCDCalcMem14\" },\n0x0410: { n:\"BrtSXTH14\" },\n0x0411: { n:\"BrtBeginSparklineGroup\" },\n0x0412: { n:\"BrtEndSparklineGroup\" },\n0x0413: { n:\"BrtSparkline\" },\n0x0414: { n:\"BrtSXDI14\" },\n0x0415: { n:\"BrtWsFmtInfoEx14\" },\n0x0416: { n:\"BrtBeginConditionalFormatting14\" },\n0x0417: { n:\"BrtEndConditionalFormatting14\" },\n0x0418: { n:\"BrtBeginCFRule14\" },\n0x0419: { n:\"BrtEndCFRule14\" },\n0x041A: { n:\"BrtCFVO14\" },\n0x041B: { n:\"BrtBeginDatabar14\" },\n0x041C: { n:\"BrtBeginIconSet14\" },\n0x041D: { n:\"BrtDVal14\", f: parse_BrtDVal14 },\n0x041E: { n:\"BrtBeginDVals14\" },\n0x041F: { n:\"BrtColor14\" },\n0x0420: { n:\"BrtBeginSparklines\" },\n0x0421: { n:\"BrtEndSparklines\" },\n0x0422: { n:\"BrtBeginSparklineGroups\" },\n0x0423: { n:\"BrtEndSparklineGroups\" },\n0x0425: { n:\"BrtSXVD14\" },\n0x0426: { n:\"BrtBeginSXView14\" },\n0x0427: { n:\"BrtEndSXView14\" },\n0x0428: { n:\"BrtBeginSXView16\" },\n0x0429: { n:\"BrtEndSXView16\" },\n0x042A: { n:\"BrtBeginPCD14\" },\n0x042B: { n:\"BrtEndPCD14\" },\n0x042C: { n:\"BrtBeginExtConn14\" },\n0x042D: { n:\"BrtEndExtConn14\" },\n0x042E: { n:\"BrtBeginSlicerCacheIDs\" },\n0x042F: { n:\"BrtEndSlicerCacheIDs\" },\n0x0430: { n:\"BrtBeginSlicerCacheID\" },\n0x0431: { n:\"BrtEndSlicerCacheID\" },\n0x0433: { n:\"BrtBeginSlicerCache\" },\n0x0434: { n:\"BrtEndSlicerCache\" },\n0x0435: { n:\"BrtBeginSlicerCacheDef\" },\n0x0436: { n:\"BrtEndSlicerCacheDef\" },\n0x0437: { n:\"BrtBeginSlicersEx\" },\n0x0438: { n:\"BrtEndSlicersEx\" },\n0x0439: { n:\"BrtBeginSlicerEx\" },\n0x043A: { n:\"BrtEndSlicerEx\" },\n0x043B: { n:\"BrtBeginSlicer\" },\n0x043C: { n:\"BrtEndSlicer\" },\n0x043D: { n:\"BrtSlicerCachePivotTables\" },\n0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\" },\n0x043F: { n:\"BrtEndSlicerCacheOlapImpl\" },\n0x0440: { n:\"BrtBeginSlicerCacheLevelsData\" },\n0x0441: { n:\"BrtEndSlicerCacheLevelsData\" },\n0x0442: { n:\"BrtBeginSlicerCacheLevelData\" },\n0x0443: { n:\"BrtEndSlicerCacheLevelData\" },\n0x0444: { n:\"BrtBeginSlicerCacheSiRanges\" },\n0x0445: { n:\"BrtEndSlicerCacheSiRanges\" },\n0x0446: { n:\"BrtBeginSlicerCacheSiRange\" },\n0x0447: { n:\"BrtEndSlicerCacheSiRange\" },\n0x0448: { n:\"BrtSlicerCacheOlapItem\" },\n0x0449: { n:\"BrtBeginSlicerCacheSelections\" },\n0x044A: { n:\"BrtSlicerCacheSelection\" },\n0x044B: { n:\"BrtEndSlicerCacheSelections\" },\n0x044C: { n:\"BrtBeginSlicerCacheNative\" },\n0x044D: { n:\"BrtEndSlicerCacheNative\" },\n0x044E: { n:\"BrtSlicerCacheNativeItem\" },\n0x044F: { n:\"BrtRangeProtection14\" },\n0x0450: { n:\"BrtRangeProtectionIso14\" },\n0x0451: { n:\"BrtCellIgnoreEC14\" },\n0x0457: { n:\"BrtList14\" },\n0x0458: { n:\"BrtCFIcon\" },\n0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\" },\n0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\" },\n0x045B: { n:\"BrtBeginSlicers\" },\n0x045C: { n:\"BrtEndSlicers\" },\n0x045D: { n:\"BrtWbProp14\" },\n0x045E: { n:\"BrtBeginSXEdit\" },\n0x045F: { n:\"BrtEndSXEdit\" },\n0x0460: { n:\"BrtBeginSXEdits\" },\n0x0461: { n:\"BrtEndSXEdits\" },\n0x0462: { n:\"BrtBeginSXChange\" },\n0x0463: { n:\"BrtEndSXChange\" },\n0x0464: { n:\"BrtBeginSXChanges\" },\n0x0465: { n:\"BrtEndSXChanges\" },\n0x0466: { n:\"BrtSXTupleItems\" },\n0x0468: { n:\"BrtBeginSlicerStyle\" },\n0x0469: { n:\"BrtEndSlicerStyle\" },\n0x046A: { n:\"BrtSlicerStyleElement\" },\n0x046B: { n:\"BrtBeginStyleSheetExt14\" },\n0x046C: { n:\"BrtEndStyleSheetExt14\" },\n0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\" },\n0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\" },\n0x046F: { n:\"BrtBeginConditionalFormattings\" },\n0x0470: { n:\"BrtEndConditionalFormattings\" },\n0x0471: { n:\"BrtBeginPCDCalcMemExt\" },\n0x0472: { n:\"BrtEndPCDCalcMemExt\" },\n0x0473: { n:\"BrtBeginPCDCalcMemsExt\" },\n0x0474: { n:\"BrtEndPCDCalcMemsExt\" },\n0x0475: { n:\"BrtPCDField14\" },\n0x0476: { n:\"BrtBeginSlicerStyles\" },\n0x0477: { n:\"BrtEndSlicerStyles\" },\n0x0478: { n:\"BrtBeginSlicerStyleElements\" },\n0x0479: { n:\"BrtEndSlicerStyleElements\" },\n0x047A: { n:\"BrtCFRuleExt\" },\n0x047B: { n:\"BrtBeginSXCondFmt14\" },\n0x047C: { n:\"BrtEndSXCondFmt14\" },\n0x047D: { n:\"BrtBeginSXCondFmts14\" },\n0x047E: { n:\"BrtEndSXCondFmts14\" },\n0x0480: { n:\"BrtBeginSortCond14\" },\n0x0481: { n:\"BrtEndSortCond14\" },\n0x0482: { n:\"BrtEndDVals14\" },\n0x0483: { n:\"BrtEndIconSet14\" },\n0x0484: { n:\"BrtEndDatabar14\" },\n0x0485: { n:\"BrtBeginColorScale14\" },\n0x0486: { n:\"BrtEndColorScale14\" },\n0x0487: { n:\"BrtBeginSxrules14\" },\n0x0488: { n:\"BrtEndSxrules14\" },\n0x0489: { n:\"BrtBeginPRule14\" },\n0x048A: { n:\"BrtEndPRule14\" },\n0x048B: { n:\"BrtBeginPRFilters14\" },\n0x048C: { n:\"BrtEndPRFilters14\" },\n0x048D: { n:\"BrtBeginPRFilter14\" },\n0x048E: { n:\"BrtEndPRFilter14\" },\n0x048F: { n:\"BrtBeginPRFItem14\" },\n0x0490: { n:\"BrtEndPRFItem14\" },\n0x0491: { n:\"BrtBeginCellIgnoreECs14\" },\n0x0492: { n:\"BrtEndCellIgnoreECs14\" },\n0x0493: { n:\"BrtDxf14\" },\n0x0494: { n:\"BrtBeginDxF14s\" },\n0x0495: { n:\"BrtEndDxf14s\" },\n0x0499: { n:\"BrtFilter14\" },\n0x049A: { n:\"BrtBeginCustomFilters14\" },\n0x049C: { n:\"BrtCustomFilter14\" },\n0x049D: { n:\"BrtIconFilter14\" },\n0x049E: { n:\"BrtPivotCacheConnectionName\" },\n0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\" },\n0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\" },\n0x0802: { n:\"BrtDecoupledPivotCacheID\" },\n0x0803: { n:\"BrtBeginPivotTableRefs\" },\n0x0804: { n:\"BrtEndPivotTableRefs\" },\n0x0805: { n:\"BrtPivotTableRef\" },\n0x0806: { n:\"BrtSlicerCacheBookPivotTables\" },\n0x0807: { n:\"BrtBeginSxvcells\" },\n0x0808: { n:\"BrtEndSxvcells\" },\n0x0809: { n:\"BrtBeginSxRow\" },\n0x080A: { n:\"BrtEndSxRow\" },\n0x080C: { n:\"BrtPcdCalcMem15\" },\n0x0813: { n:\"BrtQsi15\" },\n0x0814: { n:\"BrtBeginWebExtensions\" },\n0x0815: { n:\"BrtEndWebExtensions\" },\n0x0816: { n:\"BrtWebExtension\" },\n0x0817: { n:\"BrtAbsPath15\" },\n0x0818: { n:\"BrtBeginPivotTableUISettings\" },\n0x0819: { n:\"BrtEndPivotTableUISettings\" },\n0x081B: { n:\"BrtTableSlicerCacheIDs\" },\n0x081C: { n:\"BrtTableSlicerCacheID\" },\n0x081D: { n:\"BrtBeginTableSlicerCache\" },\n0x081E: { n:\"BrtEndTableSlicerCache\" },\n0x081F: { n:\"BrtSxFilter15\" },\n0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\" },\n0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\" },\n0x0822: { n:\"BrtTimelineCachePivotCacheID\" },\n0x0823: { n:\"BrtBeginTimelineCacheIDs\" },\n0x0824: { n:\"BrtEndTimelineCacheIDs\" },\n0x0825: { n:\"BrtBeginTimelineCacheID\" },\n0x0826: { n:\"BrtEndTimelineCacheID\" },\n0x0827: { n:\"BrtBeginTimelinesEx\" },\n0x0828: { n:\"BrtEndTimelinesEx\" },\n0x0829: { n:\"BrtBeginTimelineEx\" },\n0x082A: { n:\"BrtEndTimelineEx\" },\n0x082B: { n:\"BrtWorkBookPr15\" },\n0x082C: { n:\"BrtPCDH15\" },\n0x082D: { n:\"BrtBeginTimelineStyle\" },\n0x082E: { n:\"BrtEndTimelineStyle\" },\n0x082F: { n:\"BrtTimelineStyleElement\" },\n0x0830: { n:\"BrtBeginTimelineStylesheetExt15\" },\n0x0831: { n:\"BrtEndTimelineStylesheetExt15\" },\n0x0832: { n:\"BrtBeginTimelineStyles\" },\n0x0833: { n:\"BrtEndTimelineStyles\" },\n0x0834: { n:\"BrtBeginTimelineStyleElements\" },\n0x0835: { n:\"BrtEndTimelineStyleElements\" },\n0x0836: { n:\"BrtDxf15\" },\n0x0837: { n:\"BrtBeginDxfs15\" },\n0x0838: { n:\"brtEndDxfs15\" },\n0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\" },\n0x083A: { n:\"BrtBeginItemUniqueNames\" },\n0x083B: { n:\"BrtEndItemUniqueNames\" },\n0x083C: { n:\"BrtItemUniqueName\" },\n0x083D: { n:\"BrtBeginExtConn15\" },\n0x083E: { n:\"BrtEndExtConn15\" },\n0x083F: { n:\"BrtBeginOledbPr15\" },\n0x0840: { n:\"BrtEndOledbPr15\" },\n0x0841: { n:\"BrtBeginDataFeedPr15\" },\n0x0842: { n:\"BrtEndDataFeedPr15\" },\n0x0843: { n:\"BrtTextPr15\" },\n0x0844: { n:\"BrtRangePr15\" },\n0x0845: { n:\"BrtDbCommand15\" },\n0x0846: { n:\"BrtBeginDbTables15\" },\n0x0847: { n:\"BrtEndDbTables15\" },\n0x0848: { n:\"BrtDbTable15\" },\n0x0849: { n:\"BrtBeginDataModel\" },\n0x084A: { n:\"BrtEndDataModel\" },\n0x084B: { n:\"BrtBeginModelTables\" },\n0x084C: { n:\"BrtEndModelTables\" },\n0x084D: { n:\"BrtModelTable\" },\n0x084E: { n:\"BrtBeginModelRelationships\" },\n0x084F: { n:\"BrtEndModelRelationships\" },\n0x0850: { n:\"BrtModelRelationship\" },\n0x0851: { n:\"BrtBeginECTxtWiz15\" },\n0x0852: { n:\"BrtEndECTxtWiz15\" },\n0x0853: { n:\"BrtBeginECTWFldInfoLst15\" },\n0x0854: { n:\"BrtEndECTWFldInfoLst15\" },\n0x0855: { n:\"BrtBeginECTWFldInfo15\" },\n0x0856: { n:\"BrtFieldListActiveItem\" },\n0x0857: { n:\"BrtPivotCacheIdVersion\" },\n0x0858: { n:\"BrtSXDI15\" },\n0x0859: { n:\"BrtBeginModelTimeGroupings\" },\n0x085A: { n:\"BrtEndModelTimeGroupings\" },\n0x085B: { n:\"BrtBeginModelTimeGrouping\" },\n0x085C: { n:\"BrtEndModelTimeGrouping\" },\n0x085D: { n:\"BrtModelTimeGroupingCalcCol\" },\n0x0C00: { n:\"BrtUid\" },\n0x0C01: { n:\"BrtRevisionPtr\" },\n0x13e7: { n:\"BrtBeginCalcFeatures\" },\n0x13e8: { n:\"BrtEndCalcFeatures\" },\n0x13e9: { n:\"BrtCalcFeature\" },\n0xFFFF: { n:\"\" }\n};\n\nvar XLSBRE = evert_key(XLSBRecordEnum, 'n');\n/*jshint -W069 */\nXLSBRE[\"BrtFRTArchID$\"] = 0x0010;\n/*jshint +W069 */\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n0x0006: { n:\"Formula\", f:parse_Formula },\n0x000a: { n:'EOF', f:parsenoop2 },\n0x000c: { n:\"CalcCount\", f:parseuint16 },\n0x000d: { n:\"CalcMode\", f:parseuint16 },\n0x000e: { n:\"CalcPrecision\", f:parsebool },\n0x000f: { n:\"CalcRefMode\", f:parsebool },\n0x0010: { n:\"CalcDelta\", f:parse_Xnum },\n0x0011: { n:\"CalcIter\", f:parsebool },\n0x0012: { n:\"Protect\", f:parsebool },\n0x0013: { n:\"Password\", f:parseuint16 },\n0x0014: { n:\"Header\", f:parse_XLHeaderFooter },\n0x0015: { n:\"Footer\", f:parse_XLHeaderFooter },\n0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n0x0018: { n:\"Lbl\", f:parse_Lbl },\n0x0019: { n:\"WinProtect\", f:parsebool },\n0x001a: { n:\"VerticalPageBreaks\" },\n0x001b: { n:\"HorizontalPageBreaks\" },\n0x001c: { n:\"Note\", f:parse_Note },\n0x001d: { n:\"Selection\" },\n0x0022: { n:\"Date1904\", f:parsebool },\n0x0023: { n:\"ExternName\", f:parse_ExternName },\n0x0026: { n:\"LeftMargin\", f:parse_Xnum },\n0x0027: { n:\"RightMargin\", f:parse_Xnum },\n0x0028: { n:\"TopMargin\", f:parse_Xnum },\n0x0029: { n:\"BottomMargin\", f:parse_Xnum },\n0x002a: { n:\"PrintRowCol\", f:parsebool },\n0x002b: { n:\"PrintGrid\", f:parsebool },\n0x002f: { n:\"FilePass\", f:parse_FilePass },\n0x0031: { n:\"Font\", f:parse_Font },\n0x0033: { n:\"PrintSize\", f:parseuint16 },\n0x003c: { n:\"Continue\" },\n0x003d: { n:\"Window1\", f:parse_Window1 },\n0x0040: { n:\"Backup\", f:parsebool },\n0x0041: { n:\"Pane\", f:parse_Pane },\n0x0042: { n:'CodePage', f:parseuint16 },\n0x004d: { n:\"Pls\" },\n0x0050: { n:\"DCon\" },\n0x0051: { n:\"DConRef\" },\n0x0052: { n:\"DConName\" },\n0x0055: { n:\"DefColWidth\", f:parseuint16 },\n0x0059: { n:\"XCT\" },\n0x005a: { n:\"CRN\" },\n0x005b: { n:\"FileSharing\" },\n0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n0x005d: { n:\"Obj\", f:parse_Obj },\n0x005e: { n:\"Uncalced\" },\n0x005f: { n:\"CalcSaveRecalc\", f:parsebool },\n0x0060: { n:\"Template\" },\n0x0061: { n:\"Intl\" },\n0x0063: { n:\"ObjProtect\", f:parsebool },\n0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n0x0080: { n:\"Guts\", f:parse_Guts },\n0x0081: { n:\"WsBool\", f:parse_WsBool },\n0x0082: { n:\"GridSet\", f:parseuint16 },\n0x0083: { n:\"HCenter\", f:parsebool },\n0x0084: { n:\"VCenter\", f:parsebool },\n0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n0x0086: { n:\"WriteProtect\" },\n0x008c: { n:\"Country\", f:parse_Country },\n0x008d: { n:\"HideObj\", f:parseuint16 },\n0x0090: { n:\"Sort\" },\n0x0092: { n:\"Palette\", f:parse_Palette },\n0x0097: { n:\"Sync\" },\n0x0098: { n:\"LPr\" },\n0x0099: { n:\"DxGCol\" },\n0x009a: { n:\"FnGroupName\" },\n0x009b: { n:\"FilterMode\" },\n0x009c: { n:\"BuiltInFnGroupCount\", f:parseuint16 },\n0x009d: { n:\"AutoFilterInfo\" },\n0x009e: { n:\"AutoFilter\" },\n0x00a0: { n:\"Scl\", f:parse_Scl },\n0x00a1: { n:\"Setup\", f:parse_Setup },\n0x00ae: { n:\"ScenMan\" },\n0x00af: { n:\"SCENARIO\" },\n0x00b0: { n:\"SxView\" },\n0x00b1: { n:\"Sxvd\" },\n0x00b2: { n:\"SXVI\" },\n0x00b4: { n:\"SxIvd\" },\n0x00b5: { n:\"SXLI\" },\n0x00b6: { n:\"SXPI\" },\n0x00b8: { n:\"DocRoute\" },\n0x00b9: { n:\"RecipName\" },\n0x00bd: { n:\"MulRk\", f:parse_MulRk },\n0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n0x00c1: { n:'Mms', f:parsenoop2 },\n0x00c5: { n:\"SXDI\" },\n0x00c6: { n:\"SXDB\" },\n0x00c7: { n:\"SXFDB\" },\n0x00c8: { n:\"SXDBB\" },\n0x00c9: { n:\"SXNum\" },\n0x00ca: { n:\"SxBool\", f:parsebool },\n0x00cb: { n:\"SxErr\" },\n0x00cc: { n:\"SXInt\" },\n0x00cd: { n:\"SXString\" },\n0x00ce: { n:\"SXDtr\" },\n0x00cf: { n:\"SxNil\" },\n0x00d0: { n:\"SXTbl\" },\n0x00d1: { n:\"SXTBRGIITM\" },\n0x00d2: { n:\"SxTbpg\" },\n0x00d3: { n:\"ObProj\" },\n0x00d5: { n:\"SXStreamID\" },\n0x00d7: { n:\"DBCell\" },\n0x00d8: { n:\"SXRng\" },\n0x00d9: { n:\"SxIsxoper\" },\n0x00da: { n:\"BookBool\", f:parseuint16 },\n0x00dc: { n:\"DbOrParamQry\" },\n0x00dd: { n:\"ScenarioProtect\", f:parsebool },\n0x00de: { n:\"OleObjectSize\" },\n0x00e0: { n:\"XF\", f:parse_XF },\n0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n0x00e2: { n:'InterfaceEnd', f:parsenoop2 },\n0x00e3: { n:\"SXVS\" },\n0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n0x00e9: { n:\"BkHim\" },\n0x00eb: { n:\"MsoDrawingGroup\" },\n0x00ec: { n:\"MsoDrawing\" },\n0x00ed: { n:\"MsoDrawingSelection\" },\n0x00ef: { n:\"PhoneticInfo\" },\n0x00f0: { n:\"SxRule\" },\n0x00f1: { n:\"SXEx\" },\n0x00f2: { n:\"SxFilt\" },\n0x00f4: { n:\"SxDXF\" },\n0x00f5: { n:\"SxItm\" },\n0x00f6: { n:\"SxName\" },\n0x00f7: { n:\"SxSelect\" },\n0x00f8: { n:\"SXPair\" },\n0x00f9: { n:\"SxFmla\" },\n0x00fb: { n:\"SxFormat\" },\n0x00fc: { n:\"SST\", f:parse_SST },\n0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n0x0100: { n:\"SXVDEx\" },\n0x0103: { n:\"SXFormula\" },\n0x0122: { n:\"SXDBEx\" },\n0x0137: { n:\"RRDInsDel\" },\n0x0138: { n:\"RRDHead\" },\n0x013b: { n:\"RRDChgCell\" },\n0x013d: { n:\"RRTabId\", f:parseuint16a },\n0x013e: { n:\"RRDRenSheet\" },\n0x013f: { n:\"RRSort\" },\n0x0140: { n:\"RRDMove\" },\n0x014a: { n:\"RRFormat\" },\n0x014b: { n:\"RRAutoFmt\" },\n0x014d: { n:\"RRInsertSh\" },\n0x014e: { n:\"RRDMoveBegin\" },\n0x014f: { n:\"RRDMoveEnd\" },\n0x0150: { n:\"RRDInsDelBegin\" },\n0x0151: { n:\"RRDInsDelEnd\" },\n0x0152: { n:\"RRDConflict\" },\n0x0153: { n:\"RRDDefName\" },\n0x0154: { n:\"RRDRstEtxp\" },\n0x015f: { n:\"LRng\" },\n0x0160: { n:\"UsesELFs\", f:parsebool },\n0x0161: { n:\"DSF\", f:parsenoop2 },\n0x0191: { n:\"CUsr\" },\n0x0192: { n:\"CbUsr\" },\n0x0193: { n:\"UsrInfo\" },\n0x0194: { n:\"UsrExcl\" },\n0x0195: { n:\"FileLock\" },\n0x0196: { n:\"RRDInfo\" },\n0x0197: { n:\"BCUsrs\" },\n0x0198: { n:\"UsrChk\" },\n0x01a9: { n:\"UserBView\" },\n0x01aa: { n:\"UserSViewBegin\" },\n0x01ab: { n:\"UserSViewEnd\" },\n0x01ac: { n:\"RRDUserView\" },\n0x01ad: { n:\"Qsi\" },\n0x01ae: { n:\"SupBook\", f:parse_SupBook },\n0x01af: { n:\"Prot4Rev\", f:parsebool },\n0x01b0: { n:\"CondFmt\" },\n0x01b1: { n:\"CF\" },\n0x01b2: { n:\"DVal\" },\n0x01b5: { n:\"DConBin\" },\n0x01b6: { n:\"TxO\", f:parse_TxO },\n0x01b7: { n:\"RefreshAll\", f:parsebool },\n0x01b8: { n:\"HLink\", f:parse_HLink },\n0x01b9: { n:\"Lel\" },\n0x01ba: { n:\"CodeName\", f:parse_XLUnicodeString },\n0x01bb: { n:\"SXFDBType\" },\n0x01bc: { n:\"Prot4RevPass\", f:parseuint16 },\n0x01bd: { n:\"ObNoMacros\" },\n0x01be: { n:\"Dv\" },\n0x01c0: { n:\"Excel9File\", f:parsenoop2 },\n0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n0x01c2: { n:\"EntExU2\", f:parsenoop2 },\n0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n0x0201: { n:\"Blank\", f:parse_Blank },\n0x0203: { n:\"Number\", f:parse_Number },\n0x0204: { n:\"Label\", f:parse_Label },\n0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n0x0207: { n:\"String\", f:parse_String },\n0x0208: { n:'Row', f:parse_Row },\n0x020b: { n:\"Index\" },\n0x0221: { n:\"Array\", f:parse_Array },\n0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n0x0236: { n:\"Table\" },\n0x023e: { n:\"Window2\", f:parse_Window2 },\n0x027e: { n:\"RK\", f:parse_RK },\n0x0293: { n:\"Style\" },\n0x0418: { n:\"BigName\" },\n0x041e: { n:\"Format\", f:parse_Format },\n0x043c: { n:\"ContinueBigName\" },\n0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n0x0801: { n:\"WebPub\" },\n0x0802: { n:\"QsiSXTag\" },\n0x0803: { n:\"DBQueryExt\" },\n0x0804: { n:\"ExtString\" },\n0x0805: { n:\"TxtQry\" },\n0x0806: { n:\"Qsir\" },\n0x0807: { n:\"Qsif\" },\n0x0808: { n:\"RRDTQSIF\" },\n0x0809: { n:'BOF', f:parse_BOF },\n0x080a: { n:\"OleDbConn\" },\n0x080b: { n:\"WOpt\" },\n0x080c: { n:\"SXViewEx\" },\n0x080d: { n:\"SXTH\" },\n0x080e: { n:\"SXPIEx\" },\n0x080f: { n:\"SXVDTEx\" },\n0x0810: { n:\"SXViewEx9\" },\n0x0812: { n:\"ContinueFrt\" },\n0x0813: { n:\"RealTimeData\" },\n0x0850: { n:\"ChartFrtInfo\" },\n0x0851: { n:\"FrtWrapper\" },\n0x0852: { n:\"StartBlock\" },\n0x0853: { n:\"EndBlock\" },\n0x0854: { n:\"StartObject\" },\n0x0855: { n:\"EndObject\" },\n0x0856: { n:\"CatLab\" },\n0x0857: { n:\"YMult\" },\n0x0858: { n:\"SXViewLink\" },\n0x0859: { n:\"PivotChartBits\" },\n0x085a: { n:\"FrtFontList\" },\n0x0862: { n:\"SheetExt\" },\n0x0863: { n:\"BookExt\", r:12},\n0x0864: { n:\"SXAddl\" },\n0x0865: { n:\"CrErr\" },\n0x0866: { n:\"HFPicture\" },\n0x0867: { n:'FeatHdr', f:parsenoop2 },\n0x0868: { n:\"Feat\" },\n0x086a: { n:\"DataLabExt\" },\n0x086b: { n:\"DataLabExtContents\" },\n0x086c: { n:\"CellWatch\" },\n0x0871: { n:\"FeatHdr11\" },\n0x0872: { n:\"Feature11\" },\n0x0874: { n:\"DropDownObjIds\" },\n0x0875: { n:\"ContinueFrt11\" },\n0x0876: { n:\"DConn\" },\n0x0877: { n:\"List12\" },\n0x0878: { n:\"Feature12\" },\n0x0879: { n:\"CondFmt12\" },\n0x087a: { n:\"CF12\" },\n0x087b: { n:\"CFEx\" },\n0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n0x087e: { n:\"AutoFilter12\" },\n0x087f: { n:\"ContinueFrt12\" },\n0x0884: { n:\"MDTInfo\" },\n0x0885: { n:\"MDXStr\" },\n0x0886: { n:\"MDXTuple\" },\n0x0887: { n:\"MDXSet\" },\n0x0888: { n:\"MDXProp\" },\n0x0889: { n:\"MDXKPI\" },\n0x088a: { n:\"MDB\" },\n0x088b: { n:\"PLV\" },\n0x088c: { n:\"Compat12\", f:parsebool, r:12 },\n0x088d: { n:\"DXF\" },\n0x088e: { n:\"TableStyles\", r:12 },\n0x088f: { n:\"TableStyle\" },\n0x0890: { n:\"TableStyleElement\" },\n0x0892: { n:\"StyleExt\" },\n0x0893: { n:\"NamePublish\" },\n0x0894: { n:\"NameCmt\", f:parse_NameCmt, r:12 },\n0x0895: { n:\"SortData\" },\n0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n0x0897: { n:\"GUIDTypeLib\" },\n0x0898: { n:\"FnGrp12\" },\n0x0899: { n:\"NameFnGrp12\" },\n0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n0x089b: { n:\"CompressPictures\", f:parsenoop2 },\n0x089c: { n:\"HeaderFooter\" },\n0x089d: { n:\"CrtLayout12\" },\n0x089e: { n:\"CrtMlFrt\" },\n0x089f: { n:\"CrtMlFrtContinue\" },\n0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n0x08a4: { n:\"ShapePropsStream\" },\n0x08a5: { n:\"TextPropsStream\" },\n0x08a6: { n:\"RichTextStream\" },\n0x08a7: { n:\"CrtLayout12A\" },\n0x1001: { n:\"Units\" },\n0x1002: { n:\"Chart\" },\n0x1003: { n:\"Series\" },\n0x1006: { n:\"DataFormat\" },\n0x1007: { n:\"LineFormat\" },\n0x1009: { n:\"MarkerFormat\" },\n0x100a: { n:\"AreaFormat\" },\n0x100b: { n:\"PieFormat\" },\n0x100c: { n:\"AttachedLabel\" },\n0x100d: { n:\"SeriesText\" },\n0x1014: { n:\"ChartFormat\" },\n0x1015: { n:\"Legend\" },\n0x1016: { n:\"SeriesList\" },\n0x1017: { n:\"Bar\" },\n0x1018: { n:\"Line\" },\n0x1019: { n:\"Pie\" },\n0x101a: { n:\"Area\" },\n0x101b: { n:\"Scatter\" },\n0x101c: { n:\"CrtLine\" },\n0x101d: { n:\"Axis\" },\n0x101e: { n:\"Tick\" },\n0x101f: { n:\"ValueRange\" },\n0x1020: { n:\"CatSerRange\" },\n0x1021: { n:\"AxisLine\" },\n0x1022: { n:\"CrtLink\" },\n0x1024: { n:\"DefaultText\" },\n0x1025: { n:\"Text\" },\n0x1026: { n:\"FontX\", f:parseuint16 },\n0x1027: { n:\"ObjectLink\" },\n0x1032: { n:\"Frame\" },\n0x1033: { n:\"Begin\" },\n0x1034: { n:\"End\" },\n0x1035: { n:\"PlotArea\" },\n0x103a: { n:\"Chart3d\" },\n0x103c: { n:\"PicF\" },\n0x103d: { n:\"DropBar\" },\n0x103e: { n:\"Radar\" },\n0x103f: { n:\"Surf\" },\n0x1040: { n:\"RadarArea\" },\n0x1041: { n:\"AxisParent\" },\n0x1043: { n:\"LegendException\" },\n0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n0x1045: { n:\"SerToCrt\" },\n0x1046: { n:\"AxesUsed\" },\n0x1048: { n:\"SBaseRef\" },\n0x104a: { n:\"SerParent\" },\n0x104b: { n:\"SerAuxTrend\" },\n0x104e: { n:\"IFmtRecord\" },\n0x104f: { n:\"Pos\" },\n0x1050: { n:\"AlRuns\" },\n0x1051: { n:\"BRAI\" },\n0x105b: { n:\"SerAuxErrBar\" },\n0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n0x105d: { n:\"SerFmt\" },\n0x105f: { n:\"Chart3DBarShape\" },\n0x1060: { n:\"Fbi\" },\n0x1061: { n:\"BopPop\" },\n0x1062: { n:\"AxcExt\" },\n0x1063: { n:\"Dat\" },\n0x1064: { n:\"PlotGrowth\" },\n0x1065: { n:\"SIIndex\" },\n0x1066: { n:\"GelFrame\" },\n0x1067: { n:\"BopPopCustom\" },\n0x1068: { n:\"Fbi2\" },\n\n0x0000: { n:\"Dimensions\", f:parse_Dimensions },\n0x0001: { n:\"BIFF2BLANK\" },\n0x0002: { n:\"BIFF2INT\", f:parse_BIFF2INT },\n0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n0x0005: { n:\"BoolErr\", f:parse_BoolErr },\n0x0007: { n:\"String\", f:parse_BIFF2STRING },\n0x0008: { n:\"BIFF2ROW\" },\n0x0009: { n:'BOF', f:parse_BOF },\n0x000b: { n:\"Index\" },\n0x0016: { n:\"ExternCount\", f:parseuint16 },\n0x001e: { n:\"BIFF2FORMAT\", f:parse_BIFF2Format },\n0x001f: { n:\"BIFF2FMTCNT\" }, /* 16-bit cnt of BIFF2FORMAT records */\n0x0020: { n:\"BIFF2COLINFO\" },\n0x0021: { n:\"Array\", f:parse_Array },\n0x0024: { n:\"COLWIDTH\" },\n0x0025: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n0x0032: { n:\"BIFF2FONTXTRA\", f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n0x003e: { n:\"BIFF2WINDOW2\" },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n0x0034: { n:\"DDEObjName\" },\n0x0043: { n:\"BIFF2XF\" },\n0x0044: { n:\"BIFF2XFINDEX\", f:parseuint16 },\n0x0045: { n:\"BIFF2FONTCLR\" },\n0x0056: { n:\"BIFF4FMTCNT\" }, /* 16-bit cnt, similar to BIFF2 */\n0x007e: { n:\"RK\" }, /* Not necessarily same as 0x027e */\n0x007f: { n:\"ImData\", f:parse_ImData },\n0x0087: { n:\"Addin\" },\n0x0088: { n:\"Edg\" },\n0x0089: { n:\"Pub\" },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n0x0091: { n:\"Sub\" },\n\t// 0x93 STYLE\n0x0094: { n:\"LHRecord\" },\n0x0095: { n:\"LHNGraph\" },\n0x0096: { n:\"Sound\" },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n0x00a9: { n:\"CoordList\" },\n0x00ab: { n:\"GCW\" },\n0x00bc: { n:\"ShrFmla\" }, /* Not necessarily same as 0x04bc */\n0x00bf: { n:\"ToolbarHdr\" },\n0x00c0: { n:\"ToolbarEnd\" },\n0x00c2: { n:\"AddMenu\" },\n0x00c3: { n:\"DelMenu\" },\n0x00d6: { n:\"RString\", f:parse_RString },\n0x00df: { n:\"UDDesc\" },\n0x00ea: { n:\"TabIdConf\" },\n0x0162: { n:\"XL5Modify\" },\n0x01a5: { n:\"FileSharing2\" },\n0x0206: { n:\"Formula\", f:parse_Formula },\n0x0209: { n:'BOF', f:parse_BOF },\n0x0218: { n:\"Lbl\", f:parse_Lbl },\n0x0223: { n:\"ExternName\", f:parse_ExternName },\n0x0231: { n:\"Font\" },\n0x0243: { n:\"BIFF3XF\" },\n0x0406: { n:\"Formula\", f:parse_Formula },\n0x0409: { n:'BOF', f:parse_BOF },\n0x0443: { n:\"BIFF4XF\" },\n0x086d: { n:\"FeatInfo\" },\n0x0873: { n:\"FeatInfo11\" },\n0x0881: { n:\"SXAddl12\" },\n0x08c0: { n:\"AutoWebPub\" },\n0x08c1: { n:\"ListObj\" },\n0x08c2: { n:\"ListField\" },\n0x08c3: { n:\"ListDV\" },\n0x08c4: { n:\"ListCondFmt\" },\n0x08c5: { n:\"ListCF\" },\n0x08c6: { n:\"FMQry\" },\n0x08c7: { n:\"FMSQry\" },\n0x08c8: { n:\"PLV\" },\n0x08c9: { n:\"LnExt\" },\n0x08ca: { n:\"MkrExt\" },\n0x08cb: { n:\"CrtCoopt\" },\n0x08d6: { n:\"FRTArchId$\", r:12 },\n\n0x7262: {}\n};\n\nvar XLSRE = evert_key(XLSRecordEnum, 'n');\nfunction write_biff_rec(ba, type, payload, length) {\n\tvar t = typeof type == \"number\" ? type : (+type || +XLSRE[type]);\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba, type, payload, length) {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = +type || +XLSRE[type];\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r, c) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r, c, val, t) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r, c, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba, cell, R, C) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, (cell.v||\"\").slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba, ws, idx, opts) {\n\tvar dense = Array.isArray(ws);\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t\tref = encode_range(range);\n\t}\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb, opts) {\n\tvar o = opts || {};\n\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, \"CalcMode\", writeuint16(1));\n\twrite_biff_rec(ba, \"CalcCount\", writeuint16(100));\n\twrite_biff_rec(ba, \"CalcRefMode\", writebool(true));\n\twrite_biff_rec(ba, \"CalcIter\", writebool(false));\n\twrite_biff_rec(ba, \"CalcDelta\", write_Xnum(0.001));\n\twrite_biff_rec(ba, \"CalcSaveRecalc\", writebool(true));\n\twrite_biff_rec(ba, \"PrintRowCol\", writebool(false));\n\twrite_biff_rec(ba, \"PrintGrid\", writebool(false));\n\twrite_biff_rec(ba, \"GridSet\", writeuint16(1));\n\twrite_biff_rec(ba, \"Guts\", write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, \"HCenter\", writebool(false));\n\twrite_biff_rec(ba, \"VCenter\", writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"], ws);\n\t/* ... */\n\twrite_biff_rec(ba, 0x200, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[R]||[])[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t}\n\t}\n\tvar cname = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\tif(b8) write_biff_rec(ba, \"Window2\", write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, \"MergeCells\", write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, \"EOF\");\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb, bufs, opts) {\n\tvar A = buf_array();\n\tvar _WB = ((wb||{}).Workbook||{});\n\tvar _sheets = (_WB.Sheets||[]);\n\tvar _wb = _WB.WBProps||{};\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, \"Addin\");\n\twrite_biff_rec(A, \"InterfaceHdr\", b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, \"Mms\", writezeroes(2));\n\tif(b5) write_biff_rec(A, \"ToolbarHdr\");\n\tif(b5) write_biff_rec(A, \"ToolbarEnd\");\n\twrite_biff_rec(A, \"InterfaceEnd\");\n\twrite_biff_rec(A, \"WriteAccess\", write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, \"CodePage\", writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, \"DSF\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Excel9File\");\n\twrite_biff_rec(A, \"RRTabId\", write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, \"ObProj\");\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, \"CodeName\", write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, \"BuiltInFnGroupCount\", writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, \"WinProtect\", writebool(false));\n\twrite_biff_rec(A, \"Protect\", writebool(false));\n\twrite_biff_rec(A, \"Password\", writeuint16(0));\n\tif(b8) write_biff_rec(A, \"Prot4Rev\", writebool(false));\n\tif(b8) write_biff_rec(A, \"Prot4RevPass\", writeuint16(0));\n\twrite_biff_rec(A, \"Window1\", write_Window1(opts));\n\twrite_biff_rec(A, \"Backup\", writebool(false));\n\twrite_biff_rec(A, \"HideObj\", writeuint16(0));\n\twrite_biff_rec(A, \"Date1904\", writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, \"CalcPrecision\", writebool(true));\n\tif(b8) write_biff_rec(A, \"RefreshAll\", writebool(false));\n\twrite_biff_rec(A, \"BookBool\", writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, \"UsesELFs\", writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, \"Country\", write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, \"SST\", write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, \"EOF\");\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet = _sheets[j] || ({});\n\t\twrite_biff_rec(B, \"BoundSheet8\", write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn __toBuffer([out]);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb, opts) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = []; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn __toBuffer([bufs]);\n}\n\nfunction write_biff_buf(wb, opts) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\t if(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nvar HTML_ = (function() {\n\tfunction html_to_sheet(str, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tstr = str.replace(//g, \"\");\n\t\tvar mtch = str.match(/\");\n\t\tvar mtch2 = str.match(/<\\/table/i);\n\t\tvar i = mtch.index, j = mtch2 && mtch2.index || str.length;\n\t\tvar rows = split_regex(str.slice(i, j), /(:?]*>)/i, \"\");\n\t\tvar R = -1, C = 0, RS = 0, CS = 0;\n\t\tvar range = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\t\tvar merges = [];\n\t\tfor(i = 0; i < rows.length; ++i) {\n\t\t\tvar row = rows[i].trim();\n\t\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\t\tif(hd == \"/i);\n\t\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\t\tvar cell = cells[j].trim();\n\t\t\t\tif(!cell.match(/\")) > -1) m = m.slice(cc+1);\n\t\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\t\tvar _merge = merges[midx];\n\t\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t\t}\n\t\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\t\tvar _t = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t\t/* TODO: generate stub cells */\n\t\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\t\tm = htmldecode(m);\n\t\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\t\tif(!m.length) continue;\n\t\t\t\tvar o = {t:'s', v:m};\n\t\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(m)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = o; }\n\t\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\t\tC += CS;\n\t\t\t}\n\t\t}\n\t\tws['!ref'] = encode_range(range);\n\t\tif(merges.length) ws[\"!merges\"] = merges;\n\t\treturn ws;\n\t}\n\tfunction html_to_book(str, opts) {\n\t\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\t\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find
\");\n\t\tif(mtch.length == 1) return sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\t\tvar wb = utils.book_new();\n\t\tmtch.forEach(function(s, idx) { utils.book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\t\treturn wb;\n\t}\n\tfunction make_html_row(ws, r, R, o) {\n\t\tvar M = (ws['!merges'] ||[]);\n\t\tvar oo = [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tvar RS = 0, CS = 0;\n\t\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t\t}\n\t\t\tif(RS < 0) continue;\n\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\tvar cell = o.dense ? (ws[R]||[])[C] : ws[coord];\n\t\t\t/* TODO: html entities */\n\t\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\t\tvar sp = ({});\n\t\t\tif(RS > 1) sp.rowspan = RS;\n\t\t\tif(CS > 1) sp.colspan = CS;\n\t\t\tif(o.editable) w = '' + w + '';\n\t\t\telse if(cell) {\n\t\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '' + w + '';\n\t\t\t}\n\t\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\t\too.push(writextag('td', w, sp));\n\t\t}\n\t\tvar preamble = \"\";\n\t\treturn preamble + oo.join(\"\") + \"\";\n\t}\n\tfunction make_html_preamble(ws, R, o) {\n\t\tvar out = [];\n\t\treturn out.join(\"\") + '';\n\t}\n\tvar _BEGIN = 'SheetJS Table Export';\n\tvar _END = '';\n\tfunction sheet_to_html(ws, opts/*, wb:?Workbook*/) {\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : _BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : _END;\n\t\tvar out = [header];\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tout.push(make_html_preamble(ws, r, o));\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\t\tout.push(\"
\" + footer);\n\t\treturn out.join(\"\");\n\n\t}\n\treturn {\n\t\tto_workbook: html_to_book,\n\t\tto_sheet: html_to_sheet,\n\t\t_row: make_html_row,\n\t\tBEGIN: _BEGIN,\n\t\tEND: _END,\n\t\t_preamble: make_html_preamble,\n\t\tfrom_sheet: sheet_to_html\n\t};\n})();\n\nfunction sheet_add_dom(ws, table, _opts) {\n\tvar opts = _opts || {};\n\tif(DENSE != null) opts.dense = DENSE;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\tvar rows = table.getElementsByTagName('tr');\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges = [], midx = 0;\n\tvar rowinfo = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts = (row.children);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o = {t:'s', v:v};\n\t\t\tvar _t = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)});\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)});\n\t\t\t\t\to.z = opts.dateNF || SSF._table[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\") o.l = ({ Target: l });\n\t\t\tif(opts.dense) { if(!ws[R + or_R]) ws[R + or_R] = []; ws[R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table, _opts) {\n\tvar opts = _opts || {};\n\tvar ws = opts.dense ? ([]) : ({});\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table, opts) {\n\treturn sheet_to_workbook(parse_dom_table(table, opts), opts);\n}\n\nfunction is_dom_element_hidden(element) {\n\tvar display = '';\n\tvar get_computed_style = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style.display; // Fallback for cases when getComputedStyle is not available (e.g. an old browser or some Node.js environments) or doesn't work (e.g. if the element is not inserted to a document)\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element) {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nvar parse_content_xml = (function() {\n\n\tvar parse_text_p = function(text) {\n\t\t/* 6.1.2 White Space Characters */\n\t\tvar fixed = text\n\t\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t\t.replace(//g,\" \")\n\t\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t\t.replace(//g,\"\\n\");\n\t\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\t\treturn [v];\n\t};\n\n\tvar number_formats = {\n\t\t/* ods name: [short ssf fmt, long ssf fmt] */\n\t\tday: [\"d\", \"dd\"],\n\t\tmonth: [\"m\", \"mm\"],\n\t\tyear: [\"y\", \"yy\"],\n\t\thours: [\"h\", \"hh\"],\n\t\tminutes: [\"m\", \"mm\"],\n\t\tseconds: [\"s\", \"ss\"],\n\t\t\"am-pm\": [\"A/P\", \"AM/PM\"],\n\t\t\"day-of-week\": [\"ddd\", \"dddd\"],\n\t\tera: [\"e\", \"ee\"],\n\t\t/* there is no native representation of LO \"Q\" format */\n\t\tquarter: [\"\\\\Qm\", \"m\\\\\\\"th quarter\\\"\"]\n\t};\n\n\treturn function pcx(d, _opts) {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state = [], tmp;\n\t\tvar tag;\n\t\tvar NFtag = {name:\"\"}, NF = \"\", pidx = 0;\n\t\tvar sheetag;\n\t\tvar rowtag;\n\t\tvar Sheets = {}, SheetNames = [];\n\t\tvar ws = opts.dense ? ([]) : ({});\n\t\tvar Rn, q;\n\t\tvar ctag = ({value:\"\"});\n\t\tvar textp = \"\", textpidx = 0, textptag;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = {};\n\t\tvar merges = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf = [];\n\t\tvar WB = {Names:[]};\n\t\tvar atag = ({});\n\t\tvar _Ref = [\"\", \"\"];\n\t\tvar comments = [], comment = ({});\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = opts.dense ? ([]) : ({}); merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[R]) ws[R] = []; ws[R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null});\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[R]) ws[R] = [];\n\t\t\t\t\t\t\tws[R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_cell({r:R,c:C})] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({});\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null});\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v); }\n\t\t\t\t\t\t\tq.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tq.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[R + rpt]) ws[R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({});\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) comment.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-symbol': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'currency-style': // TODO: \n\t\t\t\tbreak;\n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tNF = \"\";\n\t\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': // 16.2 \n\t\t\t\tbreak;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t\t\tNF += number_formats[Rn[3]][tag.style==='long'?1:0]; break;\n\t\t\t\t} break;\n\n\t\t\tcase 'boolean-style': break; // 16.27.23 \n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text-style': break; // 16.27.25 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]});\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': break; // 9.4.2 TODO: date1904\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso() {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\nvar write_content_ods = (function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text) {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb, i) {\n\t\t/* Section 9 Tables */\n\t\tvar o = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr = ws['!merges'] || [], mi = 0;\n\t\tvar dense = Array.isArray(ws);\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o, wb) {\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* table cells, text */\n\t\to.push(' \\n');\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(/office:document-meta/g, \"office:meta\"));\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\twrite_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('
');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb, opts) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest = [];\n\tvar rdf = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods());\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\nvar NUMBERS = (function() {\n var __defProp = Object.defineProperty;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __markAsModule = function(target) {\n return __defProp(target, \"__esModule\", { value: true });\n };\n var __export = function(target, all) {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n };\n var __reExport = function(target, module, copyDefault, desc) {\n if (module && typeof module === \"object\" || typeof module === \"function\")\n for (var keys = __getOwnPropNames(module), i = 0, n = keys.length, key; i < n; i++) {\n key = keys[i];\n if (!__hasOwnProp.call(target, key) && (copyDefault || key !== \"default\"))\n __defProp(target, key, { get: function(k) {\n return module[k];\n }.bind(null, key), enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });\n }\n return target;\n };\n var __toCommonJS = /* @__PURE__ */ function(cache) {\n return function(module, temp) {\n return cache && cache.get(module) || (temp = __reExport(__markAsModule({}), module, 1), cache && cache.set(module, temp), temp);\n };\n }(typeof WeakMap !== \"undefined\" ? /* @__PURE__ */ new WeakMap() : 0);\n\n // 83_numbers.ts\n var numbers_exports = {};\n __export(numbers_exports, {\n parse_numbers: function() {\n return numbers_default;\n }\n });\n\n // src/util.ts\n var u8_to_dataview = function(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n };\n var u8str = function(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n };\n var u8concat = function(u8a) {\n var len = u8a.reduce(function(acc, x) {\n return acc + x.length;\n }, 0);\n var out = new Uint8Array(len);\n var off = 0;\n u8a.forEach(function(u8) {\n out.set(u8, off);\n off += u8.length;\n });\n return out;\n };\n var popcnt = function(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n };\n\n // src/proto.ts\n function parse_varint49(buf, ptr) {\n var l = ptr ? ptr[0] : 0;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n if (ptr)\n ptr[0] = l;\n return usz;\n }\n function varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n }\n function parse_shallow(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var off = ptr[0];\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = Math.floor(num / 8);\n var len = 0;\n var res;\n if (num == 0)\n break;\n switch (type) {\n case 0:\n {\n var l = ptr[0];\n while (buf[ptr[0]++] >= 128)\n ;\n res = buf.slice(l, ptr[0]);\n }\n break;\n case 5:\n len = 4;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 1:\n len = 8;\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 2:\n len = parse_varint49(buf, ptr);\n res = buf.slice(ptr[0], ptr[0] + len);\n ptr[0] += len;\n break;\n case 3:\n case 4:\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { offset: off, data: res, type: type };\n if (out[num] == null)\n out[num] = [v];\n else\n out[num].push(v);\n }\n return out;\n }\n function mappa(data, cb) {\n if (!data)\n return [];\n return data.map(function(d) {\n var _a;\n try {\n return cb(d.data);\n } catch (e) {\n var m = (_a = e.message) == null ? void 0 : _a.match(/at offset (\\d+)/);\n if (m)\n e.message = e.message.replace(/at offset (\\d+)/, \"at offset \" + (+m[1] + d.offset));\n throw e;\n }\n });\n }\n\n // src/frame.ts\n function deframe(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push(parse_snappy_chunk(t, buf.slice(l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return u8concat(out);\n }\n function parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = [0];\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n while (ptr[0] < buf.length) {\n var tag = buf[ptr[0]] & 3;\n if (tag == 0) {\n var len = buf[ptr[0]++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[ptr[0]];\n if (c > 1)\n len |= buf[ptr[0] + 1] << 8;\n if (c > 2)\n len |= buf[ptr[0] + 2] << 16;\n if (c > 3)\n len |= buf[ptr[0] + 3] << 24;\n len >>>= 0;\n len++;\n ptr[0] += c;\n }\n chunks.push(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[ptr[0]] >> 2 & 7) + 4;\n offset = (buf[ptr[0]++] & 224) << 3;\n offset |= buf[ptr[0]++];\n } else {\n length = (buf[ptr[0]++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[ptr[0]] | buf[ptr[0] + 1] << 8;\n ptr[0] += 2;\n } else {\n offset = (buf[ptr[0]] | buf[ptr[0] + 1] << 8 | buf[ptr[0] + 2] << 16 | buf[ptr[0] + 3] << 24) >>> 0;\n ptr[0] += 4;\n }\n }\n chunks = [u8concat(chunks)];\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n if (offset > chunks[0].length)\n throw new Error(\"Invalid offset beyond length\");\n if (length >= offset) {\n chunks.push(chunks[0].slice(-offset));\n length -= offset;\n while (length >= chunks[chunks.length - 1].length) {\n chunks.push(chunks[chunks.length - 1]);\n length -= chunks[chunks.length - 1].length;\n }\n }\n chunks.push(chunks[0].slice(-offset, -offset + length));\n }\n }\n var o = u8concat(chunks);\n if (o.length != usz)\n throw new Error(\"Unexpected length: \".concat(o.length, \" != \").concat(usz));\n return o;\n }\n\n // src/iwa.ts\n function parse_iwa(buf) {\n var out = [], ptr = [0];\n while (ptr[0] < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf.slice(ptr[0], ptr[0] + len));\n ptr[0] += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf.slice(ptr[0], ptr[0] + fl)\n });\n ptr[0] += fl;\n });\n out.push(res);\n }\n return out;\n }\n\n // src/prebnccell.ts\n function parseit(buf, sst, rsst, version) {\n var dv = u8_to_dataview(buf);\n var ctype = buf[version == 4 ? 1 : 2];\n var flags = dv.getUint32(4, true);\n var data_offset = 12 + popcnt(flags & 3470) * 4;\n var ridx = -1, sidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n if (flags & 512) {\n ridx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n data_offset += popcnt(flags & 12288) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(data_offset, true);\n data_offset += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(data_offset, true);\n data_offset += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(data_offset, true) * 1e3);\n data_offset += 8;\n }\n var ret;\n switch (ctype) {\n case 0:\n break;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: rsst[ridx] };\n else if (sidx > -1)\n ret = { t: \"s\", v: sst[sidx] };\n else if (!isNaN(ieee))\n ret = { t: \"n\", v: ieee };\n else\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf.slice(0, 4)));\n }\n return ret;\n }\n function parse(buf, sst, rsst) {\n var version = buf[0];\n switch (version) {\n case 3:\n case 4:\n return parseit(buf, sst, rsst, version);\n default:\n throw new Error(\"Unsupported pre-BNC version \".concat(version));\n }\n }\n\n // src/numbers.ts\n var encode_col = function(C) {\n var s = \"\";\n for (++C; C; C = Math.floor((C - 1) / 26))\n s = String.fromCharCode((C - 1) % 26 + 65) + s;\n return s;\n };\n var encode_cell = function(c) {\n return \"\".concat(encode_col(c.c)).concat(c.r + 1);\n };\n var encode_range = function(r) {\n return encode_cell(r.s) + \":\" + encode_cell(r.e);\n };\n var book_new = function() {\n return { Sheets: {}, SheetNames: [] };\n };\n var book_append_sheet = function(wb, ws, name) {\n if (!name)\n for (var i = 1; i < 9999; ++i) {\n if (wb.SheetNames.indexOf(name = \"Sheet \".concat(i)) == -1)\n break;\n }\n else if (wb.SheetNames.indexOf(name) > -1)\n for (var i = 1; i < 9999; ++i) {\n if (wb.SheetNames.indexOf(\"\".concat(name, \"_\").concat(i)) == -1) {\n name = \"\".concat(name, \"_\").concat(i);\n break;\n }\n }\n wb.SheetNames.push(name);\n wb.Sheets[name] = ws;\n };\n function parse_numbers(cfb) {\n var out = [];\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n var o;\n try {\n o = deframe(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n out[+packet.id] = packet.messages;\n });\n });\n if (!out.length)\n throw new Error(\"File has no messages\");\n var docroot;\n out.forEach(function(iwams) {\n iwams.forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_docroot(out, docroot);\n }\n var numbers_default = parse_numbers;\n function parse_Reference(buf) {\n var pb = parse_shallow(buf);\n return parse_varint49(pb[1][0].data);\n }\n function parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n }\n });\n return data;\n }\n function parse_TST_TileRowInfo(u8) {\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var storage = pb[3][0].data;\n var offsets = u8_to_dataview(pb[4][0].data);\n var cells = [];\n for (var C = 0; C < offsets.byteLength / 2; ++C) {\n var off = offsets.getUint16(C * 2, true);\n if (off > storage.length)\n continue;\n cells[C] = storage.subarray(off, offsets.getUint16(C * 2 + 2, true));\n }\n return { R: R, cells: cells };\n }\n function parse_TST_Tile(M, root) {\n var pb = parse_shallow(root.data);\n var ri = mappa(pb[5], parse_TST_TileRowInfo);\n return ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, []);\n }\n function parse_TST_TableModelArchive(M, root, ws) {\n var _a;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n {\n var store = parse_shallow(pb[4][0].data);\n var sst = parse_TST_TableDataList(M, M[parse_Reference(store[4][0].data)][0]);\n var rsst = ((_a = store[17]) == null ? void 0 : _a[0]) ? parse_TST_TableDataList(M, M[parse_Reference(store[17][0].data)][0]) : [];\n {\n var tile = parse_shallow(store[3][0].data);\n var tiles = [];\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref = M[parse_Reference(tl[2][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype));\n tiles.push({ id: varint_to_i32(tl[1][0].data), ref: parse_TST_Tile(M, ref) });\n });\n tiles.forEach(function(tile2) {\n tile2.ref.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var addr = encode_cell({ r: R, c: C });\n var res = parse(buf, sst, rsst);\n if (res)\n ws[addr] = res;\n });\n });\n });\n }\n }\n }\n function parse_TST_TableInfoArchive(M, root) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n var tableref = M[parse_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n }\n function parse_sheetroot(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m));\n });\n });\n return out;\n }\n function parse_docroot(M, root) {\n var out = book_new();\n var pb = parse_shallow(root.data);\n var sheetoffs = mappa(pb[1], parse_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_sheetroot(M, m);\n root2.sheets.forEach(function(sheet) {\n book_append_sheet(out, sheet, root2.name);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n return out;\n }\n return __toCommonJS(numbers_exports);\n})();\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = function(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n};\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction get_sheet_type(n) {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = 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)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path, relsPath, sheet, idx, sheetRels, sheets, stype, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments */\n\t\tvar comments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tvar dfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments);\n\t\t\t}\n\t\t});\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x) { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof NUMBERS != \"undefined\") {\n\t\t\tif(zip.FileIndex) return NUMBERS.parse_numbers(zip);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn NUMBERS.parse_numbers(_zip);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({});\n\tvar styles = ({});\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\",dir.themes[0], opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({});\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({});\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t});\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts) {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\nif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\nif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip(wb, opts) {\n\t_shapeid = 1024;\n\tif(opts.bookType == \"ods\") return write_ods(wb, opts);\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\nf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws(rId-1, f, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar cf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_cmnt(comments, cf, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_comments_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64.decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb, opts) {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data, opts) {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data, o) {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data, o) {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64.decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data, o) {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64.decode(d);\n\td = cptable.utils.decode(1200, d.slice(2), 'str');\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data) {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data, opts) {\n\treset_cp();\n\tvar o = opts||{};\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return RTF.to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t}\n\tif(DBF.versions.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_obj_str(factory) {\n\treturn function write_str(wb, o) {\n\t\tvar idx = 0;\n\t\tif(o.sheet) {\n\t\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t\t}\n\t\treturn factory.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb);\n\t};\n}\n\nvar write_htm_str = write_obj_str(HTML_);\nvar write_csv_str = write_obj_str({from_sheet:sheet_to_csv});\nvar write_slk_str = write_obj_str(typeof SYLK !== \"undefined\" ? SYLK : {});\nvar write_dif_str = write_obj_str(typeof DIF !== \"undefined\" ? DIF : {});\nvar write_prn_str = write_obj_str(typeof PRN !== \"undefined\" ? PRN : {});\nvar write_rtf_str = write_obj_str(typeof RTF !== \"undefined\" ? RTF : {});\nvar write_txt_str = write_obj_str({from_sheet:sheet_to_txt});\nvar write_dbf_buf = write_obj_str(typeof DBF !== \"undefined\" ? DBF : {});\nvar write_eth_str = write_obj_str(typeof ETH !== \"undefined\" ? ETH : {});\nvar write_wk1_buf = write_obj_str(typeof WK_ !== \"undefined\" ? {from_sheet:WK_.sheet_to_wk1} : {});\n\nfunction write_cfb_ctr(cfb, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip_type(wb, opts) {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\tvar oopts = {};\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = has_buf ? \"nodebuffer\" : \"string\";\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = has_buf ? \"nodebuffer\" : \"string\"; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: {\"nodebuffer\": \"buffer\", \"string\": \"binary\"}[oopts.type] || oopts.type}) : z.generate(oopts);\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(out) : out;\n}\n\nfunction write_cfb_type(wb, opts) {\n\tvar o = opts||{};\n\tvar cfb = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out, opts, bom) {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64.encode(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts) {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64.encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out = (writeSync(wb, o)); o.type = \"array\"; return s2ab(out); }\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(write_slk_str(wb, o), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(write_htm_str(wb, o), o);\n\t\tcase 'txt': return write_stxt_type(write_txt_str(wb, o), o);\n\t\tcase 'csv': return write_string_type(write_csv_str(wb, o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(write_dif_str(wb, o), o);\n\t\tcase 'dbf': return write_binary_type(write_dbf_buf(wb, o), o);\n\t\tcase 'prn': return write_string_type(write_prn_str(wb, o), o);\n\t\tcase 'rtf': return write_string_type(write_rtf_str(wb, o), o);\n\t\tcase 'eth': return write_string_type(write_eth_str(wb, o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(write_wk1_buf(wb, o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileAsync(filename, wb, opts, cb) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\nfunction make_json_row(sheet, r, R, cols, header, hdr, dense, o) {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true;\n\tvar row = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw || (o.rawNumbers && val.t == \"n\") ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet, opts) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = [];\n\tvar out = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = Array.isArray(sheet);\n\tvar R = r.s.r, C = 0, CC = 0;\n\tif(dense && !sheet[R]) sheet[R] = [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = 0;\n\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet, r, R, cols, fs, rs, FS, o) {\n\tvar isempty = true;\n\tvar row = [], txt = \"\", rr = encode_row(R);\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = o.dense ? (sheet[R]||[])[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols = [];\n\to.dense = Array.isArray(sheet);\n\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tout.push(row + RS);\n\t}\n\tdelete o.dense;\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet, opts) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet) {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tvar cmds = [];\n\tvar dense = Array.isArray(sheet);\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws, js, opts) {\n\tvar o = opts || {};\n\tvar offset = +!o.skipHeader;\n\tvar ws = _ws || ({});\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar cell;\n\tvar range = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}});\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr = o.header || [], C = 0;\n\n\tjs.forEach(function (JS, R) {\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = encode_cell({c:_C + C,r:_R + R + offset});\n\t\t\tcell = utils.sheet_get_cell(ws, ref);\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (o.dateNF || SSF._table[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) ws[ref] = cell = ({t:t, v:v});\n\t\t\t\telse {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(offset) for(C = 0; C < hdr.length; ++C) ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js, opts) { return sheet_add_json(null, js, opts); }\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: HTML_.from_sheet,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json\n};\n\n(function(utils) {\nutils.consts = utils.consts || {};\nfunction add_consts(R/*Array*/) { R.forEach(function(a){ utils.consts[a[0]] = a[1]; }); }\n\nfunction get_default(x, y, z) { return x[y] != null ? x[y] : (x[y] = z); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws, R, C) {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\t/* dense */\n\t\tif(Array.isArray(ws)) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[RC.r]) ws[RC.r] = [];\n\t\t\treturn ws[RC.r][RC.c] || (ws[RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_cell({r:R,c:C||0}));\n}\nutils.sheet_get_cell = ws_get_cell_stub;\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb, sh) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nutils.book_new = function() {\n\treturn { SheetNames: [], Sheets: {} };\n};\n\n/* add a worksheet to the end of a given workbook */\nutils.book_append_sheet = function(wb, ws, name) {\n\tif(!name) for(var i = 1; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n};\n\n/* set sheet visibility (visible/hidden/very hidden) */\nutils.book_set_sheet_visibility = function(wb, sh, vis) {\n\tget_default(wb,\"Workbook\",{});\n\tget_default(wb.Workbook,\"Sheets\",[]);\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tget_default(wb.Workbook.Sheets,idx, {});\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n};\nadd_consts([\n\t[\"SHEET_VISIBLE\", 0],\n\t[\"SHEET_HIDDEN\", 1],\n\t[\"SHEET_VERY_HIDDEN\", 2]\n]);\n\n/* set number format */\nutils.cell_set_number_format = function(cell, fmt) {\n\tcell.z = fmt;\n\treturn cell;\n};\n\n/* set cell hyperlink */\nutils.cell_set_hyperlink = function(cell, target, tooltip) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target });\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n};\nutils.cell_set_internal_link = function(cell, range, tooltip) { return utils.cell_set_hyperlink(cell, \"#\" + range, tooltip); };\n\n/* add to cell comments */\nutils.cell_add_comment = function(cell, text, author) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n};\n\n/* set array formula and flush related cells */\nutils.sheet_set_array_formula = function(ws, range, formula) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) cell.f = formula;\n\t}\n\treturn ws;\n};\n\nreturn utils;\n})(utils);\n\nif(has_buf && typeof require != 'undefined') (function() {\n\tvar strmod = require('stream');\n\tif(!strmod) return;\n\tvar Readable = strmod.Readable;\n\tif(!Readable) return;\n\n\tvar write_csv_stream = function(sheet, opts) {\n\t\tvar stream = Readable();\n\t\tvar o = opts == null ? {} : opts;\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\t\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\t\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\t\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\t\tvar row = \"\", cols = [];\n\t\to.dense = Array.isArray(sheet);\n\t\tvar colinfo = o.skipHidden && sheet[\"!cols\"] || [];\n\t\tvar rowinfo = o.skipHidden && sheet[\"!rows\"] || [];\n\t\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\t\tvar R = r.s.r;\n\t\tvar BOM = false;\n\t\tstream._read = function() {\n\t\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t++R;\n\t\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\t\tif(row != null) {\n\t\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\t\tstream.push(row + RS);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_html_stream = function(ws, opts) {\n\t\tvar stream = Readable();\n\n\t\tvar o = opts || {};\n\t\tvar header = o.header != null ? o.header : HTML_.BEGIN;\n\t\tvar footer = o.footer != null ? o.footer : HTML_.END;\n\t\tstream.push(header);\n\t\tvar r = decode_range(ws['!ref']);\n\t\to.dense = Array.isArray(ws);\n\t\tstream.push(HTML_._preamble(ws, r, o));\n\t\tvar R = r.s.r;\n\t\tvar end = false;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) {\n\t\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\t\treturn stream.push(null);\n\t\t\t}\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\tstream.push(HTML_._row(ws, r, R, o));\n\t\t\t\t++R;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tvar write_json_stream = function(sheet, opts) {\n\t\tvar stream = Readable({objectMode:true});\n\n\t\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\t\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr = [], v=0, vv=\"\";\n\t\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tvar o = opts || {};\n\t\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\t\tif(o.header === 1) header = 1;\n\t\telse if(o.header === \"A\") header = 2;\n\t\telse if(Array.isArray(o.header)) header = 3;\n\t\tswitch(typeof range) {\n\t\t\tcase 'string': r = safe_decode_range(range); break;\n\t\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\t\tdefault: r = range;\n\t\t}\n\t\tif(header > 0) offset = 0;\n\t\tvar rr = encode_row(r.s.r);\n\t\tvar cols = [];\n\t\tvar counter = 0;\n\t\tvar dense = Array.isArray(sheet);\n\t\tvar R = r.s.r, C = 0, CC = 0;\n\t\tif(dense && !sheet[R]) sheet[R] = [];\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tcols[C] = encode_col(C);\n\t\t\tval = dense ? sheet[R][C] : sheet[cols[C] + rr];\n\t\t\tswitch(header) {\n\t\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\t\tdefault:\n\t\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tfor(CC = 0; CC < hdr.length; ++CC) if(hdr[CC] == vv) vv = v + \"_\" + (++counter);\n\t\t\t\t\thdr[C] = vv;\n\t\t\t}\n\t\t}\n\t\tR = r.s.r + offset;\n\t\tstream._read = function() {\n\t\t\tif(R > r.e.r) return stream.push(null);\n\t\t\twhile(R <= r.e.r) {\n\t\t\t\t//if ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, dense, o);\n\t\t\t\t++R;\n\t\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\t\tstream.push(row.row);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn stream;\n\t};\n\n\tXLSX.stream = {\n\t\tto_json: write_json_stream,\n\t\tto_html: write_html_stream,\n\t\tto_csv: write_csv_stream\n\t};\n})();\n\nif(typeof parse_xlscfb !== \"undefined\") XLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.writeFileAsync = writeFileAsync;\nXLSX.utils = utils;\nXLSX.SSF = SSF;\nif(typeof CFB !== \"undefined\") XLSX.CFB = CFB;\n}\n/*global define */\nif(typeof exports !== 'undefined') make_xlsx_lib(exports);\nelse if(typeof module !== 'undefined' && module.exports) make_xlsx_lib(module.exports);\nelse if(typeof define === 'function' && define.amd) define('xlsx', function() { if(!XLSX.version) make_xlsx_lib(XLSX); return XLSX; });\nelse make_xlsx_lib(XLSX);\n/* NOTE: the following extra line is needed for \"Lightning Locker Service\" */\nif(typeof window !== 'undefined' && !window.XLSX) try { window.XLSX = XLSX; } catch(e) {}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay : '[јуче у] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : 'пре %s',\n s : 'неколико секунди',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'дан',\n dd : translator.translate,\n M : 'месец',\n MM : translator.translate,\n y : 'годину',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return srCyrl;\n\n})));\n","/*\n\nJSZip - A Javascript class for generating and reading zip files\n\n\n(c) 2009-2014 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n\nNote: since JSZip 3 removed critical functionality, this version assigns to the\n`JSZipSync` variable. Another JSZip version can be loaded in parallel.\n*/\n(function(e){\n\tif(\"object\"==typeof exports&&\"undefined\"!=typeof module&&\"undefined\"==typeof DO_NOT_EXPORT_JSZIP)module.exports=e();\n\telse if(\"function\"==typeof define&&define.amd&&\"undefined\"==typeof DO_NOT_EXPORT_JSZIP){JSZipSync=e();define('j',[],e);}\n\telse{\n\t\tvar f;\n\t\t\"undefined\"!=typeof globalThis?f=globalThis:\n\t\t\"undefined\"!=typeof window?f=window:\n\t\t\"undefined\"!=typeof global?f=global:\n\t\t\"undefined\"!=typeof $ && $.global?f=$.global:\n\t\t\"undefined\"!=typeof self&&(f=self),f.JSZipSync=e()\n\t}\n}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n }\n else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);\n\n }\n\n return output;\n};\n\n// public method for decoding\nexports.decode = function(input, utf8) {\n var output = \"\";\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0;\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n while (i < input.length) {\n\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output = output + String.fromCharCode(chr1);\n\n if (enc3 != 64) {\n output = output + String.fromCharCode(chr2);\n }\n if (enc4 != 64) {\n output = output + String.fromCharCode(chr3);\n }\n\n }\n\n return output;\n\n};\n\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nfunction CompressedObject() {\n this.compressedSize = 0;\n this.uncompressedSize = 0;\n this.crc32 = 0;\n this.compressionMethod = null;\n this.compressedContent = null;\n}\n\nCompressedObject.prototype = {\n /**\n * Return the decompressed content in an unspecified format.\n * The format will depend on the decompressor.\n * @return {Object} the decompressed content.\n */\n getContent: function() {\n return null; // see implementation\n },\n /**\n * Return the compressed content in an unspecified format.\n * The format will depend on the compressed conten source.\n * @return {Object} the compressed content.\n */\n getCompressedContent: function() {\n return null; // see implementation\n }\n};\nmodule.exports = CompressedObject;\n\n},{}],3:[function(_dereq_,module,exports){\n'use strict';\nexports.STORE = {\n magic: \"\\x00\\x00\",\n compress: function(content) {\n return content; // no compression\n },\n uncompress: function(content) {\n return content; // no compression\n },\n compressInputType: null,\n uncompressInputType: null\n};\nexports.DEFLATE = _dereq_('./flate');\n\n},{\"./flate\":8}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\nvar table = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D\n];\n\n/**\n *\n * Javascript crc32\n * http://www.webtoolkit.info/\n *\n */\nmodule.exports = function crc32(input, crc) {\n if (typeof input === \"undefined\" || !input.length) {\n return 0;\n }\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n\n if (typeof(crc) == \"undefined\") {\n crc = 0;\n }\n var x = 0;\n var y = 0;\n var b = 0;\n\n crc = crc ^ (-1);\n for (var i = 0, iTop = input.length; i < iTop; i++) {\n b = isArray ? input[i] : input.charCodeAt(i);\n y = (crc ^ b) & 0xFF;\n x = table[y];\n crc = (crc >>> 8) ^ x;\n }\n\n return crc ^ (-1);\n};\n// vim: set shiftwidth=4 softtabstop=4:\n\n},{\"./utils\":21}],5:[function(_dereq_,module,exports){\n'use strict';\nvar utils = _dereq_('./utils');\n\nfunction DataReader(data) {\n this.data = null; // type : see implementation\n this.length = 0;\n this.index = 0;\n}\nDataReader.prototype = {\n /**\n * Check that the offset will not go too far.\n * @param {string} offset the additional offset to check.\n * @throws {Error} an Error if the offset is out of bounds.\n */\n checkOffset: function(offset) {\n this.checkIndex(this.index + offset);\n },\n /**\n * Check that the specifed index will not be too far.\n * @param {string} newIndex the index to check.\n * @throws {Error} an Error if the index is out of bounds.\n */\n checkIndex: function(newIndex) {\n if (this.length < newIndex || newIndex < 0) {\n throw new Error(\"End of data reached (data length = \" + this.length + \", asked index = \" + (newIndex) + \"). Corrupted zip ?\");\n }\n },\n /**\n * Change the index.\n * @param {number} newIndex The new index.\n * @throws {Error} if the new index is out of the data.\n */\n setIndex: function(newIndex) {\n this.checkIndex(newIndex);\n this.index = newIndex;\n },\n /**\n * Skip the next n bytes.\n * @param {number} n the number of bytes to skip.\n * @throws {Error} if the new index is out of the data.\n */\n skip: function(n) {\n this.setIndex(this.index + n);\n },\n /**\n * Get the byte at the specified index.\n * @param {number} i the index to use.\n * @return {number} a byte.\n */\n byteAt: function(i) {\n // see implementations\n },\n /**\n * Get the next number with a given byte size.\n * @param {number} size the number of bytes to read.\n * @return {number} the corresponding number.\n */\n readInt: function(size) {\n var result = 0,\n i;\n this.checkOffset(size);\n for (i = this.index + size - 1; i >= this.index; i--) {\n result = (result << 8) + this.byteAt(i);\n }\n this.index += size;\n return result;\n },\n /**\n * Get the next string with a given byte size.\n * @param {number} size the number of bytes to read.\n * @return {string} the corresponding string.\n */\n readString: function(size) {\n return utils.transformTo(\"string\", this.readData(size));\n },\n /**\n * Get raw data without conversion, bytes.\n * @param {number} size the number of bytes to read.\n * @return {Object} the raw data, implementation specific.\n */\n readData: function(size) {\n // see implementations\n },\n /**\n * Find the last occurrence of a zip signature (4 bytes).\n * @param {string} sig the signature to find.\n * @return {number} the index of the last occurrence, -1 if not found.\n */\n lastIndexOfSignature: function(sig) {\n // see implementations\n },\n /**\n * Get the next date.\n * @return {Date} the date.\n */\n readDate: function() {\n var dostime = this.readInt(4);\n return new Date(\n ((dostime >> 25) & 0x7f) + 1980, // year\n ((dostime >> 21) & 0x0f) - 1, // month\n (dostime >> 16) & 0x1f, // day\n (dostime >> 11) & 0x1f, // hour\n (dostime >> 5) & 0x3f, // minute\n (dostime & 0x1f) << 1); // second\n }\n};\nmodule.exports = DataReader;\n\n},{\"./utils\":21}],6:[function(_dereq_,module,exports){\n'use strict';\nexports.base64 = false;\nexports.binary = false;\nexports.dir = false;\nexports.createFolders = false;\nexports.date = null;\nexports.compression = null;\nexports.comment = null;\n\n},{}],7:[function(_dereq_,module,exports){\n'use strict';\nvar utils = _dereq_('./utils');\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2binary = function(str) {\n return utils.string2binary(str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2Uint8Array = function(str) {\n return utils.transformTo(\"uint8array\", str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.uint8Array2String = function(array) {\n return utils.transformTo(\"string\", array);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.string2Blob = function(str) {\n var buffer = utils.transformTo(\"arraybuffer\", str);\n return utils.arrayBuffer2Blob(buffer);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.arrayBuffer2Blob = function(buffer) {\n return utils.arrayBuffer2Blob(buffer);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.transformTo = function(outputType, input) {\n return utils.transformTo(outputType, input);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.getTypeOf = function(input) {\n return utils.getTypeOf(input);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.checkSupport = function(type) {\n return utils.checkSupport(type);\n};\n\n/**\n * @deprecated\n * This value will be removed in a future version without replacement.\n */\nexports.MAX_VALUE_16BITS = utils.MAX_VALUE_16BITS;\n\n/**\n * @deprecated\n * This value will be removed in a future version without replacement.\n */\nexports.MAX_VALUE_32BITS = utils.MAX_VALUE_32BITS;\n\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.pretty = function(str) {\n return utils.pretty(str);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.findCompression = function(compressionMethod) {\n return utils.findCompression(compressionMethod);\n};\n\n/**\n * @deprecated\n * This function will be removed in a future version without replacement.\n */\nexports.isRegExp = function (object) {\n return utils.isRegExp(object);\n};\n\n\n},{\"./utils\":21}],8:[function(_dereq_,module,exports){\n'use strict';\nvar USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined');\n\nvar pako = _dereq_(\"pako\");\nexports.uncompressInputType = USE_TYPEDARRAY ? \"uint8array\" : \"array\";\nexports.compressInputType = USE_TYPEDARRAY ? \"uint8array\" : \"array\";\n\nexports.magic = \"\\x08\\x00\";\nexports.compress = function(input) {\n return pako.deflateRaw(input);\n};\nexports.uncompress = function(input) {\n return pako.inflateRaw(input);\n};\n\n},{\"pako\":24}],9:[function(_dereq_,module,exports){\n'use strict';\n\nvar base64 = _dereq_('./base64');\n\n/**\nUsage:\n zip = new JSZip();\n zip.file(\"hello.txt\", \"Hello, World!\").file(\"tempfile\", \"nothing\");\n zip.folder(\"images\").file(\"smile.gif\", base64Data, {base64: true});\n zip.file(\"Xmas.txt\", \"Ho ho ho !\", {date : new Date(\"December 25, 2007 00:00:01\")});\n zip.remove(\"tempfile\");\n\n base64zip = zip.generate();\n\n**/\n\n/**\n * Representation a of zip file in js\n * @constructor\n * @param {String=|ArrayBuffer=|Uint8Array=} data the data to load, if any (optional).\n * @param {Object=} options the options for creating this objects (optional).\n */\nfunction JSZipSync(data, options) {\n // if this constructor is used without `new`, it adds `new` before itself:\n if(!(this instanceof JSZipSync)) return new JSZipSync(data, options);\n\n // object containing the files :\n // {\n // \"folder/\" : {...},\n // \"folder/data.txt\" : {...}\n // }\n this.files = {};\n\n this.comment = null;\n\n // Where we are in the hierarchy\n this.root = \"\";\n if (data) {\n this.load(data, options);\n }\n this.clone = function() {\n var newObj = new JSZipSync();\n for (var i in this) {\n if (typeof this[i] !== \"function\") {\n newObj[i] = this[i];\n }\n }\n return newObj;\n };\n}\nJSZipSync.prototype = _dereq_('./object');\nJSZipSync.prototype.load = _dereq_('./load');\nJSZipSync.support = _dereq_('./support');\nJSZipSync.defaults = _dereq_('./defaults');\n\n/**\n * @deprecated\n * This namespace will be removed in a future version without replacement.\n */\nJSZipSync.utils = _dereq_('./deprecatedPublicUtils');\n\nJSZipSync.base64 = {\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n encode : function(input) {\n return base64.encode(input);\n },\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n decode : function(input) {\n return base64.decode(input);\n }\n};\nJSZipSync.compressions = _dereq_('./compressions');\nmodule.exports = JSZipSync;\n\n},{\"./base64\":1,\"./compressions\":3,\"./defaults\":6,\"./deprecatedPublicUtils\":7,\"./load\":10,\"./object\":13,\"./support\":17}],10:[function(_dereq_,module,exports){\n'use strict';\nvar base64 = _dereq_('./base64');\nvar ZipEntries = _dereq_('./zipEntries');\nmodule.exports = function(data, options) {\n var files, zipEntries, i, input;\n options = options || {};\n if (options.base64) {\n data = base64.decode(data);\n }\n\n zipEntries = new ZipEntries(data, options);\n files = zipEntries.files;\n for (i = 0; i < files.length; i++) {\n input = files[i];\n this.file(input.fileName, input.decompressed, {\n binary: true,\n optimizedBinaryString: true,\n date: input.date,\n dir: input.dir,\n comment : input.fileComment.length ? input.fileComment : null,\n createFolders: options.createFolders\n });\n }\n if (zipEntries.zipComment.length) {\n this.comment = zipEntries.zipComment;\n }\n\n return this;\n};\n\n},{\"./base64\":1,\"./zipEntries\":22}],11:[function(_dereq_,module,exports){\n(function (Buffer){\n'use strict';\nvar Buffer_from = /*::(*/function(){}/*:: :any)*/;\nif(typeof Buffer !== 'undefined') {\n\tvar nbfs = !Buffer.from;\n\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t// $FlowIgnore\n\tif(!Buffer.alloc) Buffer.alloc = function(n) { return new Buffer(n); };\n}\nmodule.exports = function(data, encoding){\n return typeof data == 'number' ? Buffer.alloc(data) : Buffer_from(data, encoding);\n};\nmodule.exports.test = function(b){\n return Buffer.isBuffer(b);\n};\n}).call(this,(typeof Buffer !== \"undefined\" ? Buffer : undefined))\n},{}],12:[function(_dereq_,module,exports){\n'use strict';\nvar Uint8ArrayReader = _dereq_('./uint8ArrayReader');\n\nfunction NodeBufferReader(data) {\n this.data = data;\n this.length = this.data.length;\n this.index = 0;\n}\nNodeBufferReader.prototype = new Uint8ArrayReader();\n\n/**\n * @see DataReader.readData\n */\nNodeBufferReader.prototype.readData = function(size) {\n this.checkOffset(size);\n var result = this.data.slice(this.index, this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = NodeBufferReader;\n\n},{\"./uint8ArrayReader\":18}],13:[function(_dereq_,module,exports){\n'use strict';\nvar support = _dereq_('./support');\nvar utils = _dereq_('./utils');\nvar crc32 = _dereq_('./crc32');\nvar signature = _dereq_('./signature');\nvar defaults = _dereq_('./defaults');\nvar base64 = _dereq_('./base64');\nvar compressions = _dereq_('./compressions');\nvar CompressedObject = _dereq_('./compressedObject');\nvar nodeBuffer = _dereq_('./nodeBuffer');\nvar utf8 = _dereq_('./utf8');\nvar StringWriter = _dereq_('./stringWriter');\nvar Uint8ArrayWriter = _dereq_('./uint8ArrayWriter');\n\n/**\n * Returns the raw data of a ZipObject, decompress the content if necessary.\n * @param {ZipObject} file the file to use.\n * @return {String|ArrayBuffer|Uint8Array|Buffer} the data.\n */\nvar getRawData = function(file) {\n if (file._data instanceof CompressedObject) {\n file._data = file._data.getContent();\n file.options.binary = true;\n file.options.base64 = false;\n\n if (utils.getTypeOf(file._data) === \"uint8array\") {\n var copy = file._data;\n // when reading an arraybuffer, the CompressedObject mechanism will keep it and subarray() a Uint8Array.\n // if we request a file in the same format, we might get the same Uint8Array or its ArrayBuffer (the original zip file).\n file._data = new Uint8Array(copy.length);\n // with an empty Uint8Array, Opera fails with a \"Offset larger than array size\"\n if (copy.length !== 0) {\n file._data.set(copy, 0);\n }\n }\n }\n return file._data;\n};\n\n/**\n * Returns the data of a ZipObject in a binary form. If the content is an unicode string, encode it.\n * @param {ZipObject} file the file to use.\n * @return {String|ArrayBuffer|Uint8Array|Buffer} the data.\n */\nvar getBinaryData = function(file) {\n var result = getRawData(file),\n type = utils.getTypeOf(result);\n if (type === \"string\") {\n if (!file.options.binary) {\n // unicode text !\n // unicode string => binary string is a painful process, check if we can avoid it.\n if (support.nodebuffer) {\n return nodeBuffer(result, \"utf-8\");\n }\n }\n return file.asBinary();\n }\n return result;\n};\n\n/**\n * Transform this._data into a string.\n * @param {function} filter a function String -> String, applied if not null on the result.\n * @return {String} the string representing this._data.\n */\nvar dataToString = function(asUTF8) {\n var result = getRawData(this);\n if (result === null || typeof result === \"undefined\") {\n return \"\";\n }\n // if the data is a base64 string, we decode it before checking the encoding !\n if (this.options.base64) {\n result = base64.decode(result);\n }\n if (asUTF8 && this.options.binary) {\n // JSZip.prototype.utf8decode supports arrays as input\n // skip to array => string step, utf8decode will do it.\n result = out.utf8decode(result);\n }\n else {\n // no utf8 transformation, do the array => string step.\n result = utils.transformTo(\"string\", result);\n }\n\n if (!asUTF8 && !this.options.binary) {\n result = utils.transformTo(\"string\", out.utf8encode(result));\n }\n return result;\n};\n/**\n * A simple object representing a file in the zip file.\n * @constructor\n * @param {string} name the name of the file\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data\n * @param {Object} options the options of the file\n */\nvar ZipObject = function(name, data, options) {\n this.name = name;\n this.dir = options.dir;\n this.date = options.date;\n this.comment = options.comment;\n\n this._data = data;\n this.options = options;\n\n /*\n * This object contains initial values for dir and date.\n * With them, we can check if the user changed the deprecated metadata in\n * `ZipObject#options` or not.\n */\n this._initialMetadata = {\n dir : options.dir,\n date : options.date\n };\n};\n\nZipObject.prototype = {\n /**\n * Return the content as UTF8 string.\n * @return {string} the UTF8 string.\n */\n asText: function() {\n return dataToString.call(this, true);\n },\n /**\n * Returns the binary content.\n * @return {string} the content as binary.\n */\n asBinary: function() {\n return dataToString.call(this, false);\n },\n /**\n * Returns the content as a nodejs Buffer.\n * @return {Buffer} the content as a Buffer.\n */\n asNodeBuffer: function() {\n var result = getBinaryData(this);\n return utils.transformTo(\"nodebuffer\", result);\n },\n /**\n * Returns the content as an Uint8Array.\n * @return {Uint8Array} the content as an Uint8Array.\n */\n asUint8Array: function() {\n var result = getBinaryData(this);\n return utils.transformTo(\"uint8array\", result);\n },\n /**\n * Returns the content as an ArrayBuffer.\n * @return {ArrayBuffer} the content as an ArrayBufer.\n */\n asArrayBuffer: function() {\n return this.asUint8Array().buffer;\n }\n};\n\n/**\n * Transform an integer into a string in hexadecimal.\n * @private\n * @param {number} dec the number to convert.\n * @param {number} bytes the number of bytes to generate.\n * @returns {string} the result.\n */\nvar decToHex = function(dec, bytes) {\n var hex = \"\",\n i;\n for (i = 0; i < bytes; i++) {\n hex += String.fromCharCode(dec & 0xff);\n dec = dec >>> 8;\n }\n return hex;\n};\n\n/**\n * Merge the objects passed as parameters into a new one.\n * @private\n * @param {...Object} var_args All objects to merge.\n * @return {Object} a new object with the data of the others.\n */\nvar extend = function() {\n var result = {}, i, attr;\n for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers\n for (attr in arguments[i]) {\n if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === \"undefined\") {\n result[attr] = arguments[i][attr];\n }\n }\n }\n return result;\n};\n\n/**\n * Transforms the (incomplete) options from the user into the complete\n * set of options to create a file.\n * @private\n * @param {Object} o the options from the user.\n * @return {Object} the complete set of options.\n */\nvar prepareFileAttrs = function(o) {\n o = o || {};\n if (o.base64 === true && (o.binary === null || o.binary === undefined)) {\n o.binary = true;\n }\n o = extend(o, defaults);\n o.date = o.date || new Date();\n if (o.compression !== null) o.compression = o.compression.toUpperCase();\n\n return o;\n};\n\n/**\n * Add a file in the current folder.\n * @private\n * @param {string} name the name of the file\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file\n * @param {Object} o the options of the file\n * @return {Object} the new file.\n */\nvar fileAdd = function(name, data, o) {\n // be sure sub folders exist\n var dataType = utils.getTypeOf(data),\n parent;\n\n o = prepareFileAttrs(o);\n\n if (o.createFolders && (parent = parentFolder(name))) {\n folderAdd.call(this, parent, true);\n }\n\n if (o.dir || data === null || typeof data === \"undefined\") {\n o.base64 = false;\n o.binary = false;\n data = null;\n }\n else if (dataType === \"string\") {\n if (o.binary && !o.base64) {\n // optimizedBinaryString == true means that the file has already been filtered with a 0xFF mask\n if (o.optimizedBinaryString !== true) {\n // this is a string, not in a base64 format.\n // Be sure that this is a correct \"binary string\"\n data = utils.string2binary(data);\n }\n }\n }\n else { // arraybuffer, uint8array, ...\n o.base64 = false;\n o.binary = true;\n\n if (!dataType && !(data instanceof CompressedObject)) {\n throw new Error(\"The data of '\" + name + \"' is in an unsupported format !\");\n }\n\n // special case : it's way easier to work with Uint8Array than with ArrayBuffer\n if (dataType === \"arraybuffer\") {\n data = utils.transformTo(\"uint8array\", data);\n }\n }\n\n var object = new ZipObject(name, data, o);\n this.files[name] = object;\n return object;\n};\n\n/**\n * Find the parent folder of the path.\n * @private\n * @param {string} path the path to use\n * @return {string} the parent folder, or \"\"\n */\nvar parentFolder = function (path) {\n if (path.slice(-1) == '/') {\n path = path.substring(0, path.length - 1);\n }\n var lastSlash = path.lastIndexOf('/');\n return (lastSlash > 0) ? path.substring(0, lastSlash) : \"\";\n};\n\n/**\n * Add a (sub) folder in the current folder.\n * @private\n * @param {string} name the folder's name\n * @param {boolean=} [createFolders] If true, automatically create sub\n * folders. Defaults to false.\n * @return {Object} the new folder.\n */\nvar folderAdd = function(name, createFolders) {\n // Check the name ends with a /\n if (name.slice(-1) != \"/\") {\n name += \"/\"; // IE doesn't like substr(-1)\n }\n\n createFolders = (typeof createFolders !== 'undefined') ? createFolders : false;\n\n // Does this folder already exist?\n if (!this.files[name]) {\n fileAdd.call(this, name, null, {\n dir: true,\n createFolders: createFolders\n });\n }\n return this.files[name];\n};\n\n/**\n * Generate a JSZip.CompressedObject for a given zipOject.\n * @param {ZipObject} file the object to read.\n * @param {JSZip.compression} compression the compression to use.\n * @return {JSZip.CompressedObject} the compressed result.\n */\nvar generateCompressedObjectFrom = function(file, compression) {\n var result = new CompressedObject(),\n content;\n\n // the data has not been decompressed, we might reuse things !\n if (file._data instanceof CompressedObject) {\n result.uncompressedSize = file._data.uncompressedSize;\n result.crc32 = file._data.crc32;\n\n if (result.uncompressedSize === 0 || file.dir) {\n compression = compressions['STORE'];\n result.compressedContent = \"\";\n result.crc32 = 0;\n }\n else if (file._data.compressionMethod === compression.magic) {\n result.compressedContent = file._data.getCompressedContent();\n }\n else {\n content = file._data.getContent();\n // need to decompress / recompress\n result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content));\n }\n }\n else {\n // have uncompressed data\n content = getBinaryData(file);\n if (!content || content.length === 0 || file.dir) {\n compression = compressions['STORE'];\n content = \"\";\n }\n result.uncompressedSize = content.length;\n result.crc32 = crc32(content);\n result.compressedContent = compression.compress(utils.transformTo(compression.compressInputType, content));\n }\n\n result.compressedSize = result.compressedContent.length;\n result.compressionMethod = compression.magic;\n\n return result;\n};\n\n/**\n * Generate the various parts used in the construction of the final zip file.\n * @param {string} name the file name.\n * @param {ZipObject} file the file content.\n * @param {JSZip.CompressedObject} compressedObject the compressed object.\n * @param {number} offset the current offset from the start of the zip file.\n * @return {object} the zip parts.\n */\nvar generateZipParts = function(name, file, compressedObject, offset) {\n var data = compressedObject.compressedContent,\n utfEncodedFileName = utils.transformTo(\"string\", utf8.utf8encode(file.name)),\n comment = file.comment || \"\",\n utfEncodedComment = utils.transformTo(\"string\", utf8.utf8encode(comment)),\n useUTF8ForFileName = utfEncodedFileName.length !== file.name.length,\n useUTF8ForComment = utfEncodedComment.length !== comment.length,\n o = file.options,\n dosTime,\n dosDate,\n extraFields = \"\",\n unicodePathExtraField = \"\",\n unicodeCommentExtraField = \"\",\n dir, date;\n\n\n // handle the deprecated options.dir\n if (file._initialMetadata.dir !== file.dir) {\n dir = file.dir;\n } else {\n dir = o.dir;\n }\n\n // handle the deprecated options.date\n if(file._initialMetadata.date !== file.date) {\n date = file.date;\n } else {\n date = o.date;\n }\n\n\n dosTime = date.getHours();\n dosTime = dosTime << 6;\n dosTime = dosTime | date.getMinutes();\n dosTime = dosTime << 5;\n dosTime = dosTime | date.getSeconds() / 2;\n\n dosDate = date.getFullYear() - 1980;\n dosDate = dosDate << 4;\n dosDate = dosDate | (date.getMonth() + 1);\n dosDate = dosDate << 5;\n dosDate = dosDate | date.getDate();\n\n if (useUTF8ForFileName) {\n // set the unicode path extra field. unzip needs at least one extra\n // field to correctly handle unicode path, so using the path is as good\n // as any other information. This could improve the situation with\n // other archive managers too.\n // This field is usually used without the utf8 flag, with a non\n // unicode path in the header (winrar, winzip). This helps (a bit)\n // with the messy Windows' default compressed folders feature but\n // breaks on p7zip which doesn't seek the unicode path extra field.\n // So for now, UTF-8 everywhere !\n unicodePathExtraField =\n // Version\n decToHex(1, 1) +\n // NameCRC32\n decToHex(crc32(utfEncodedFileName), 4) +\n // UnicodeName\n utfEncodedFileName;\n\n extraFields +=\n // Info-ZIP Unicode Path Extra Field\n \"\\x75\\x70\" +\n // size\n decToHex(unicodePathExtraField.length, 2) +\n // content\n unicodePathExtraField;\n }\n\n if(useUTF8ForComment) {\n\n unicodeCommentExtraField =\n // Version\n decToHex(1, 1) +\n // CommentCRC32\n decToHex(this.crc32(utfEncodedComment), 4) +\n // UnicodeName\n utfEncodedComment;\n\n extraFields +=\n // Info-ZIP Unicode Path Extra Field\n \"\\x75\\x63\" +\n // size\n decToHex(unicodeCommentExtraField.length, 2) +\n // content\n unicodeCommentExtraField;\n }\n\n var header = \"\";\n\n // version needed to extract\n header += \"\\x0A\\x00\";\n // general purpose bit flag\n // set bit 11 if utf8\n header += (useUTF8ForFileName || useUTF8ForComment) ? \"\\x00\\x08\" : \"\\x00\\x00\";\n // compression method\n header += compressedObject.compressionMethod;\n // last mod file time\n header += decToHex(dosTime, 2);\n // last mod file date\n header += decToHex(dosDate, 2);\n // crc-32\n header += decToHex(compressedObject.crc32, 4);\n // compressed size\n header += decToHex(compressedObject.compressedSize, 4);\n // uncompressed size\n header += decToHex(compressedObject.uncompressedSize, 4);\n // file name length\n header += decToHex(utfEncodedFileName.length, 2);\n // extra field length\n header += decToHex(extraFields.length, 2);\n\n\n var fileRecord = signature.LOCAL_FILE_HEADER + header + utfEncodedFileName + extraFields;\n\n var dirRecord = signature.CENTRAL_FILE_HEADER +\n // version made by (00: DOS)\n \"\\x14\\x00\" +\n // file header (common to file and central directory)\n header +\n // file comment length\n decToHex(utfEncodedComment.length, 2) +\n // disk number start\n \"\\x00\\x00\" +\n // internal file attributes TODO\n \"\\x00\\x00\" +\n // external file attributes\n (dir === true ? \"\\x10\\x00\\x00\\x00\" : \"\\x00\\x00\\x00\\x00\") +\n // relative offset of local header\n decToHex(offset, 4) +\n // file name\n utfEncodedFileName +\n // extra field\n extraFields +\n // file comment\n utfEncodedComment;\n\n return {\n fileRecord: fileRecord,\n dirRecord: dirRecord,\n compressedObject: compressedObject\n };\n};\n\n\n// return the actual prototype of JSZip\nvar out = {\n /**\n * Read an existing zip and merge the data in the current JSZip object.\n * The implementation is in jszip-load.js, don't forget to include it.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} stream The stream to load\n * @param {Object} options Options for loading the stream.\n * options.base64 : is the stream in base64 ? default : false\n * @return {JSZip} the current JSZip object\n */\n load: function(stream, options) {\n throw new Error(\"Load method is not defined. Is the file jszip-load.js included ?\");\n },\n\n /**\n * Filter nested files/folders with the specified function.\n * @param {Function} search the predicate to use :\n * function (relativePath, file) {...}\n * It takes 2 arguments : the relative path and the file.\n * @return {Array} An array of matching elements.\n */\n filter: function(search) {\n var result = [],\n filename, relativePath, file, fileClone;\n for (filename in this.files) {\n if (!this.files.hasOwnProperty(filename)) {\n continue;\n }\n file = this.files[filename];\n // return a new object, don't let the user mess with our internal objects :)\n fileClone = new ZipObject(file.name, file._data, extend(file.options));\n relativePath = filename.slice(this.root.length, filename.length);\n if (filename.slice(0, this.root.length) === this.root && // the file is in the current root\n search(relativePath, fileClone)) { // and the file matches the function\n result.push(fileClone);\n }\n }\n return result;\n },\n\n /**\n * Add a file to the zip file, or search a file.\n * @param {string|RegExp} name The name of the file to add (if data is defined),\n * the name of the file to find (if no data) or a regex to match files.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded\n * @param {Object} o File options\n * @return {JSZip|Object|Array} this JSZip object (when adding a file),\n * a file (when searching by string) or an array of files (when searching by regex).\n */\n file: function(name, data, o) {\n if (arguments.length === 1) {\n if (utils.isRegExp(name)) {\n var regexp = name;\n return this.filter(function(relativePath, file) {\n return !file.dir && regexp.test(relativePath);\n });\n }\n else { // text\n return this.filter(function(relativePath, file) {\n return !file.dir && relativePath === name;\n })[0] || null;\n }\n }\n else { // more than one argument : we have data !\n name = this.root + name;\n fileAdd.call(this, name, data, o);\n }\n return this;\n },\n\n /**\n * Add a directory to the zip file, or search.\n * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders.\n * @return {JSZip} an object with the new directory as the root, or an array containing matching folders.\n */\n folder: function(arg) {\n if (!arg) {\n return this;\n }\n\n if (utils.isRegExp(arg)) {\n return this.filter(function(relativePath, file) {\n return file.dir && arg.test(relativePath);\n });\n }\n\n // else, name is a new folder\n var name = this.root + arg;\n var newFolder = folderAdd.call(this, name);\n\n // Allow chaining by returning a new object with this folder as the root\n var ret = this.clone();\n ret.root = newFolder.name;\n return ret;\n },\n\n /**\n * Delete a file, or a directory and all sub-files, from the zip\n * @param {string} name the name of the file to delete\n * @return {JSZip} this JSZip object\n */\n remove: function(name) {\n name = this.root + name;\n var file = this.files[name];\n if (!file) {\n // Look for any folders\n if (name.slice(-1) != \"/\") {\n name += \"/\";\n }\n file = this.files[name];\n }\n\n if (file && !file.dir) {\n // file\n delete this.files[name];\n } else {\n // maybe a folder, delete recursively\n var kids = this.filter(function(relativePath, file) {\n return file.name.slice(0, name.length) === name;\n });\n for (var i = 0; i < kids.length; i++) {\n delete this.files[kids[i].name];\n }\n }\n\n return this;\n },\n\n /**\n * Generate the complete zip file\n * @param {Object} options the options to generate the zip file :\n * - base64, (deprecated, use type instead) true to generate base64.\n * - compression, \"STORE\" by default.\n * - type, \"base64\" by default. Values are : string, base64, uint8array, arraybuffer, blob.\n * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file\n */\n generate: function(options) {\n options = extend(options || {}, {\n base64: true,\n compression: \"STORE\",\n type: \"base64\",\n comment: null\n });\n\n utils.checkSupport(options.type);\n\n var zipData = [],\n localDirLength = 0,\n centralDirLength = 0,\n writer, i,\n utfEncodedComment = utils.transformTo(\"string\", this.utf8encode(options.comment || this.comment || \"\"));\n\n // first, generate all the zip parts.\n for (var name in this.files) {\n if (!this.files.hasOwnProperty(name)) {\n continue;\n }\n var file = this.files[name];\n\n var compressionName = file.options.compression || options.compression.toUpperCase();\n var compression = compressions[compressionName];\n if (!compression) {\n throw new Error(compressionName + \" is not a valid compression method !\");\n }\n\n var compressedObject = generateCompressedObjectFrom.call(this, file, compression);\n\n var zipPart = generateZipParts.call(this, name, file, compressedObject, localDirLength);\n localDirLength += zipPart.fileRecord.length + compressedObject.compressedSize;\n centralDirLength += zipPart.dirRecord.length;\n zipData.push(zipPart);\n }\n\n var dirEnd = \"\";\n\n // end of central dir signature\n dirEnd = signature.CENTRAL_DIRECTORY_END +\n // number of this disk\n \"\\x00\\x00\" +\n // number of the disk with the start of the central directory\n \"\\x00\\x00\" +\n // total number of entries in the central directory on this disk\n decToHex(zipData.length, 2) +\n // total number of entries in the central directory\n decToHex(zipData.length, 2) +\n // size of the central directory 4 bytes\n decToHex(centralDirLength, 4) +\n // offset of start of central directory with respect to the starting disk number\n decToHex(localDirLength, 4) +\n // .ZIP file comment length\n decToHex(utfEncodedComment.length, 2) +\n // .ZIP file comment\n utfEncodedComment;\n\n\n // we have all the parts (and the total length)\n // time to create a writer !\n var typeName = options.type.toLowerCase();\n if(typeName===\"uint8array\"||typeName===\"arraybuffer\"||typeName===\"blob\"||typeName===\"nodebuffer\") {\n writer = new Uint8ArrayWriter(localDirLength + centralDirLength + dirEnd.length);\n }else{\n writer = new StringWriter(localDirLength + centralDirLength + dirEnd.length);\n }\n\n for (i = 0; i < zipData.length; i++) {\n writer.append(zipData[i].fileRecord);\n writer.append(zipData[i].compressedObject.compressedContent);\n }\n for (i = 0; i < zipData.length; i++) {\n writer.append(zipData[i].dirRecord);\n }\n\n writer.append(dirEnd);\n\n var zip = writer.finalize();\n\n\n\n switch(options.type.toLowerCase()) {\n // case \"zip is an Uint8Array\"\n case \"uint8array\" :\n case \"arraybuffer\" :\n case \"nodebuffer\" :\n return utils.transformTo(options.type.toLowerCase(), zip);\n case \"blob\" :\n return utils.arrayBuffer2Blob(utils.transformTo(\"arraybuffer\", zip));\n // case \"zip is a string\"\n case \"base64\" :\n return (options.base64) ? base64.encode(zip) : zip;\n default : // case \"string\" :\n return zip;\n }\n\n },\n\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n crc32: function (input, crc) {\n return crc32(input, crc);\n },\n\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n utf8encode: function (string) {\n return utils.transformTo(\"string\", utf8.utf8encode(string));\n },\n\n /**\n * @deprecated\n * This method will be removed in a future version without replacement.\n */\n utf8decode: function (input) {\n return utf8.utf8decode(input);\n }\n};\nmodule.exports = out;\n\n},{\"./base64\":1,\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./defaults\":6,\"./nodeBuffer\":11,\"./signature\":14,\"./stringWriter\":16,\"./support\":17,\"./uint8ArrayWriter\":19,\"./utf8\":20,\"./utils\":21}],14:[function(_dereq_,module,exports){\n'use strict';\nexports.LOCAL_FILE_HEADER = \"PK\\x03\\x04\";\nexports.CENTRAL_FILE_HEADER = \"PK\\x01\\x02\";\nexports.CENTRAL_DIRECTORY_END = \"PK\\x05\\x06\";\nexports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = \"PK\\x06\\x07\";\nexports.ZIP64_CENTRAL_DIRECTORY_END = \"PK\\x06\\x06\";\nexports.DATA_DESCRIPTOR = \"PK\\x07\\x08\";\n\n},{}],15:[function(_dereq_,module,exports){\n'use strict';\nvar DataReader = _dereq_('./dataReader');\nvar utils = _dereq_('./utils');\n\nfunction StringReader(data, optimizedBinaryString) {\n this.data = data;\n if (!optimizedBinaryString) {\n this.data = utils.string2binary(this.data);\n }\n this.length = this.data.length;\n this.index = 0;\n}\nStringReader.prototype = new DataReader();\n/**\n * @see DataReader.byteAt\n */\nStringReader.prototype.byteAt = function(i) {\n return this.data.charCodeAt(i);\n};\n/**\n * @see DataReader.lastIndexOfSignature\n */\nStringReader.prototype.lastIndexOfSignature = function(sig) {\n return this.data.lastIndexOf(sig);\n};\n/**\n * @see DataReader.readData\n */\nStringReader.prototype.readData = function(size) {\n this.checkOffset(size);\n // this will work because the constructor applied the \"& 0xff\" mask.\n var result = this.data.slice(this.index, this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = StringReader;\n\n},{\"./dataReader\":5,\"./utils\":21}],16:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\n/**\n * An object to write any content to a string.\n * @constructor\n */\nvar StringWriter = function() {\n this.data = [];\n};\nStringWriter.prototype = {\n /**\n * Append any content to the current string.\n * @param {Object} input the content to add.\n */\n append: function(input) {\n input = utils.transformTo(\"string\", input);\n this.data.push(input);\n },\n /**\n * Finalize the construction an return the result.\n * @return {string} the generated string.\n */\n finalize: function() {\n return this.data.join(\"\");\n }\n};\n\nmodule.exports = StringWriter;\n\n},{\"./utils\":21}],17:[function(_dereq_,module,exports){\n(function (Buffer){\n'use strict';\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\n// contains true if JSZip can read/generate nodejs Buffer, false otherwise.\n// Browserify will provide a Buffer implementation for browsers, which is\n// an augmented Uint8Array (i.e., can be used as either Buffer or U8).\nexports.nodebuffer = typeof Buffer !== \"undefined\";\n// contains true if JSZip can read/generate Uint8Array, false otherwise.\nexports.uint8array = typeof Uint8Array !== \"undefined\";\n\nif (typeof ArrayBuffer === \"undefined\") {\n exports.blob = false;\n}\nelse {\n var buffer = new ArrayBuffer(0);\n try {\n exports.blob = new Blob([buffer], {\n type: \"application/zip\"\n }).size === 0;\n }\n catch (e) {\n try {\n var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n exports.blob = builder.getBlob('application/zip').size === 0;\n }\n catch (e) {\n exports.blob = false;\n }\n }\n}\n\n}).call(this,(typeof Buffer !== \"undefined\" ? Buffer : undefined))\n},{}],18:[function(_dereq_,module,exports){\n'use strict';\nvar DataReader = _dereq_('./dataReader');\n\nfunction Uint8ArrayReader(data) {\n if (data) {\n this.data = data;\n this.length = this.data.length;\n this.index = 0;\n }\n}\nUint8ArrayReader.prototype = new DataReader();\n/**\n * @see DataReader.byteAt\n */\nUint8ArrayReader.prototype.byteAt = function(i) {\n return this.data[i];\n};\n/**\n * @see DataReader.lastIndexOfSignature\n */\nUint8ArrayReader.prototype.lastIndexOfSignature = function(sig) {\n var sig0 = sig.charCodeAt(0),\n sig1 = sig.charCodeAt(1),\n sig2 = sig.charCodeAt(2),\n sig3 = sig.charCodeAt(3);\n for (var i = this.length - 4; i >= 0; --i) {\n if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) {\n return i;\n }\n }\n\n return -1;\n};\n/**\n * @see DataReader.readData\n */\nUint8ArrayReader.prototype.readData = function(size) {\n this.checkOffset(size);\n if(size === 0) {\n // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of [].\n return new Uint8Array(0);\n }\n var result = this.data.subarray(this.index, this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = Uint8ArrayReader;\n\n},{\"./dataReader\":5}],19:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\n\n/**\n * An object to write any content to an Uint8Array.\n * @constructor\n * @param {number} length The length of the array.\n */\nvar Uint8ArrayWriter = function(length) {\n this.data = new Uint8Array(length);\n this.index = 0;\n};\nUint8ArrayWriter.prototype = {\n /**\n * Append any content to the current array.\n * @param {Object} input the content to add.\n */\n append: function(input) {\n if (input.length !== 0) {\n // with an empty Uint8Array, Opera fails with a \"Offset larger than array size\"\n input = utils.transformTo(\"uint8array\", input);\n this.data.set(input, this.index);\n this.index += input.length;\n }\n },\n /**\n * Finalize the construction an return the result.\n * @return {Uint8Array} the generated array.\n */\n finalize: function() {\n return this.data;\n }\n};\n\nmodule.exports = Uint8ArrayWriter;\n\n},{\"./utils\":21}],20:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('./utils');\nvar support = _dereq_('./support');\nvar nodeBuffer = _dereq_('./nodeBuffer');\n\n/**\n * The following functions come from pako, from pako/lib/utils/strings\n * released under the MIT license, see pako https://github.com/nodeca/pako/\n */\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new Array(256);\nfor (var i=0; i<256; i++) {\n _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);\n}\n_utf8len[254]=_utf8len[254]=1; // Invalid sequence start\n\n// convert string to array (typed, when possible)\nvar string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if (((c & 0xfc00) === 0xd800) && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += (c < 0x80) ? 1 : ((c < 0x800) ? 2 : ((c < 0x10000) ? 3 : 4));\n }\n\n // allocate buffer\n if (support.uint8array) {\n buf = new Uint8Array(buf_len);\n } else {\n buf = new Array(buf_len);\n }\n\n // convert\n for (i=0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | ((c >>> 6) & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | ((c >>> 12) & 0x3f);\n buf[i++] = 0x80 | ((c >>> 6) & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nvar utf8border = function(buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max-1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Fuckup - very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means vuffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n// convert array to string\nvar buf2string = function (buf) {\n var str, i, out, c, c_len;\n var len = buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len*2);\n\n for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n // shrinkBuf(utf16buf, out)\n if (utf16buf.length !== out) {\n if(utf16buf.subarray) {\n utf16buf = utf16buf.subarray(0, out);\n } else {\n utf16buf.length = out;\n }\n }\n\n // return String.fromCharCode.apply(null, utf16buf);\n return utils.applyFromCharCode(utf16buf);\n};\n\n\n// That's all for the pako functions.\n\n\n/**\n * Transform a javascript string into an array (typed if possible) of bytes,\n * UTF-8 encoded.\n * @param {String} str the string to encode\n * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string.\n */\nexports.utf8encode = function utf8encode(str) {\n if (support.nodebuffer) {\n return nodeBuffer(str, \"utf-8\");\n }\n\n return string2buf(str);\n};\n\n\n/**\n * Transform a bytes array (or a representation) representing an UTF-8 encoded\n * string into a javascript string.\n * @param {Array|Uint8Array|Buffer} buf the data de decode\n * @return {String} the decoded string.\n */\nexports.utf8decode = function utf8decode(buf) {\n if (support.nodebuffer) {\n return utils.transformTo(\"nodebuffer\", buf).toString(\"utf-8\");\n }\n\n buf = utils.transformTo(support.uint8array ? \"uint8array\" : \"array\", buf);\n\n // return buf2string(buf);\n // Chrome prefers to work with \"small\" chunks of data\n // for the method buf2string.\n // Firefox and Chrome has their own shortcut, IE doesn't seem to really care.\n var result = [], k = 0, len = buf.length, chunk = 65536;\n while (k < len) {\n var nextBoundary = utf8border(buf, Math.min(k + chunk, len));\n if (support.uint8array) {\n result.push(buf2string(buf.subarray(k, nextBoundary)));\n } else {\n result.push(buf2string(buf.slice(k, nextBoundary)));\n }\n k = nextBoundary;\n }\n return result.join(\"\");\n\n};\n// vim: set shiftwidth=4 softtabstop=4:\n\n},{\"./nodeBuffer\":11,\"./support\":17,\"./utils\":21}],21:[function(_dereq_,module,exports){\n'use strict';\nvar support = _dereq_('./support');\nvar compressions = _dereq_('./compressions');\nvar nodeBuffer = _dereq_('./nodeBuffer');\n/**\n * Convert a string to a \"binary string\" : a string containing only char codes between 0 and 255.\n * @param {string} str the string to transform.\n * @return {String} the binary string.\n */\nexports.string2binary = function(str) {\n var result = \"\";\n for (var i = 0; i < str.length; i++) {\n result += String.fromCharCode(str.charCodeAt(i) & 0xff);\n }\n return result;\n};\nexports.arrayBuffer2Blob = function(buffer) {\n exports.checkSupport(\"blob\");\n\n try {\n // Blob constructor\n return new Blob([buffer], {\n type: \"application/zip\"\n });\n }\n catch (e) {\n\n try {\n // deprecated, browser only, old way\n var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n return builder.getBlob('application/zip');\n }\n catch (e) {\n\n // well, fuck ?!\n throw new Error(\"Bug : can't construct the Blob.\");\n }\n }\n\n\n};\n/**\n * The identity function.\n * @param {Object} input the input.\n * @return {Object} the same input.\n */\nfunction identity(input) {\n return input;\n}\n\n/**\n * Fill in an array with a string.\n * @param {String} str the string to use.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated).\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array.\n */\nfunction stringToArrayLike(str, array) {\n for (var i = 0; i < str.length; ++i) {\n array[i] = str.charCodeAt(i) & 0xFF;\n }\n return array;\n}\n\n/**\n * Transform an array-like object to a string.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @return {String} the result.\n */\nfunction arrayLikeToString(array) {\n // Performances notes :\n // --------------------\n // String.fromCharCode.apply(null, array) is the fastest, see\n // see http://jsperf.com/converting-a-uint8array-to-a-string/2\n // but the stack is limited (and we can get huge arrays !).\n //\n // result += String.fromCharCode(array[i]); generate too many strings !\n //\n // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2\n var chunk = 65536;\n var result = [],\n len = array.length,\n type = exports.getTypeOf(array),\n k = 0,\n canUseApply = true;\n try {\n switch(type) {\n case \"uint8array\":\n String.fromCharCode.apply(null, new Uint8Array(0));\n break;\n case \"nodebuffer\":\n String.fromCharCode.apply(null, nodeBuffer(0));\n break;\n }\n } catch(e) {\n canUseApply = false;\n }\n\n // no apply : slow and painful algorithm\n // default browser on android 4.*\n if (!canUseApply) {\n var resultStr = \"\";\n for(var i = 0; i < array.length;i++) {\n resultStr += String.fromCharCode(array[i]);\n }\n return resultStr;\n }\n while (k < len && chunk > 1) {\n try {\n if (type === \"array\" || type === \"nodebuffer\") {\n result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len))));\n }\n else {\n result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len))));\n }\n k += chunk;\n }\n catch (e) {\n chunk = Math.floor(chunk / 2);\n }\n }\n return result.join(\"\");\n}\n\nexports.applyFromCharCode = arrayLikeToString;\n\n\n/**\n * Copy the data from an array-like to an other array-like.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated.\n * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array.\n */\nfunction arrayLikeToArrayLike(arrayFrom, arrayTo) {\n for (var i = 0; i < arrayFrom.length; i++) {\n arrayTo[i] = arrayFrom[i];\n }\n return arrayTo;\n}\n\n// a matrix containing functions to transform everything into everything.\nvar transform = {};\n\n// string to ?\ntransform[\"string\"] = {\n \"string\": identity,\n \"array\": function(input) {\n return stringToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return transform[\"string\"][\"uint8array\"](input).buffer;\n },\n \"uint8array\": function(input) {\n return stringToArrayLike(input, new Uint8Array(input.length));\n },\n \"nodebuffer\": function(input) {\n return stringToArrayLike(input, nodeBuffer(input.length));\n }\n};\n\n// array to ?\ntransform[\"array\"] = {\n \"string\": arrayLikeToString,\n \"array\": identity,\n \"arraybuffer\": function(input) {\n return (new Uint8Array(input)).buffer;\n },\n \"uint8array\": function(input) {\n return new Uint8Array(input);\n },\n \"nodebuffer\": function(input) {\n return nodeBuffer(input);\n }\n};\n\n// arraybuffer to ?\ntransform[\"arraybuffer\"] = {\n \"string\": function(input) {\n return arrayLikeToString(new Uint8Array(input));\n },\n \"array\": function(input) {\n return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength));\n },\n \"arraybuffer\": identity,\n \"uint8array\": function(input) {\n return new Uint8Array(input);\n },\n \"nodebuffer\": function(input) {\n return nodeBuffer(new Uint8Array(input));\n }\n};\n\n// uint8array to ?\ntransform[\"uint8array\"] = {\n \"string\": arrayLikeToString,\n \"array\": function(input) {\n return arrayLikeToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return input.buffer;\n },\n \"uint8array\": identity,\n \"nodebuffer\": function(input) {\n return nodeBuffer(input);\n }\n};\n\n// nodebuffer to ?\ntransform[\"nodebuffer\"] = {\n \"string\": arrayLikeToString,\n \"array\": function(input) {\n return arrayLikeToArrayLike(input, new Array(input.length));\n },\n \"arraybuffer\": function(input) {\n return transform[\"nodebuffer\"][\"uint8array\"](input).buffer;\n },\n \"uint8array\": function(input) {\n return arrayLikeToArrayLike(input, new Uint8Array(input.length));\n },\n \"nodebuffer\": identity\n};\n\n/**\n * Transform an input into any type.\n * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer.\n * If no output type is specified, the unmodified input will be returned.\n * @param {String} outputType the output type.\n * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert.\n * @throws {Error} an Error if the browser doesn't support the requested output type.\n */\nexports.transformTo = function(outputType, input) {\n if (!input) {\n // undefined, null, etc\n // an empty string won't harm.\n input = \"\";\n }\n if (!outputType) {\n return input;\n }\n exports.checkSupport(outputType);\n var inputType = exports.getTypeOf(input);\n var result = transform[inputType][outputType](input);\n return result;\n};\n\n/**\n * Return the type of the input.\n * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer.\n * @param {Object} input the input to identify.\n * @return {String} the (lowercase) type of the input.\n */\nexports.getTypeOf = function(input) {\n if (typeof input === \"string\") {\n return \"string\";\n }\n if (Object.prototype.toString.call(input) === \"[object Array]\") {\n return \"array\";\n }\n if (support.nodebuffer && nodeBuffer.test(input)) {\n return \"nodebuffer\";\n }\n if (support.uint8array && input instanceof Uint8Array) {\n return \"uint8array\";\n }\n if (support.arraybuffer && input instanceof ArrayBuffer) {\n return \"arraybuffer\";\n }\n};\n\n/**\n * Throw an exception if the type is not supported.\n * @param {String} type the type to check.\n * @throws {Error} an Error if the browser doesn't support the requested type.\n */\nexports.checkSupport = function(type) {\n var supported = support[type.toLowerCase()];\n if (!supported) {\n throw new Error(type + \" is not supported by this browser\");\n }\n};\nexports.MAX_VALUE_16BITS = 65535;\nexports.MAX_VALUE_32BITS = -1; // well, \"\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\\xFF\" is parsed as -1\n\n/**\n * Prettify a string read as binary.\n * @param {string} str the string to prettify.\n * @return {string} a pretty string.\n */\nexports.pretty = function(str) {\n var res = '',\n code, i;\n for (i = 0; i < (str || \"\").length; i++) {\n code = str.charCodeAt(i);\n res += '\\\\x' + (code < 16 ? \"0\" : \"\") + code.toString(16).toUpperCase();\n }\n return res;\n};\n\n/**\n * Find a compression registered in JSZip.\n * @param {string} compressionMethod the method magic to find.\n * @return {Object|null} the JSZip compression object, null if none found.\n */\nexports.findCompression = function(compressionMethod) {\n for (var method in compressions) {\n if (!compressions.hasOwnProperty(method)) {\n continue;\n }\n if (compressions[method].magic === compressionMethod) {\n return compressions[method];\n }\n }\n return null;\n};\n/**\n* Cross-window, cross-Node-context regular expression detection\n* @param {Object} object Anything\n* @return {Boolean} true if the object is a regular expression,\n* false otherwise\n*/\nexports.isRegExp = function (object) {\n return Object.prototype.toString.call(object) === \"[object RegExp]\";\n};\n\n\n},{\"./compressions\":3,\"./nodeBuffer\":11,\"./support\":17}],22:[function(_dereq_,module,exports){\n'use strict';\nvar StringReader = _dereq_('./stringReader');\nvar NodeBufferReader = _dereq_('./nodeBufferReader');\nvar Uint8ArrayReader = _dereq_('./uint8ArrayReader');\nvar utils = _dereq_('./utils');\nvar sig = _dereq_('./signature');\nvar ZipEntry = _dereq_('./zipEntry');\nvar support = _dereq_('./support');\nvar jszipProto = _dereq_('./object');\n// class ZipEntries {{{\n/**\n * All the entries in the zip file.\n * @constructor\n * @param {String|ArrayBuffer|Uint8Array} data the binary stream to load.\n * @param {Object} loadOptions Options for loading the stream.\n */\nfunction ZipEntries(data, loadOptions) {\n this.files = [];\n this.loadOptions = loadOptions;\n if (data) {\n this.load(data);\n }\n}\nZipEntries.prototype = {\n /**\n * Check that the reader is on the speficied signature.\n * @param {string} expectedSignature the expected signature.\n * @throws {Error} if it is an other signature.\n */\n checkSignature: function(expectedSignature) {\n var signature = this.reader.readString(4);\n if (signature !== expectedSignature) {\n throw new Error(\"Corrupted zip or bug : unexpected signature \" + \"(\" + utils.pretty(signature) + \", expected \" + utils.pretty(expectedSignature) + \")\");\n }\n },\n /**\n * Read the end of the central directory.\n */\n readBlockEndOfCentral: function() {\n this.diskNumber = this.reader.readInt(2);\n this.diskWithCentralDirStart = this.reader.readInt(2);\n this.centralDirRecordsOnThisDisk = this.reader.readInt(2);\n this.centralDirRecords = this.reader.readInt(2);\n this.centralDirSize = this.reader.readInt(4);\n this.centralDirOffset = this.reader.readInt(4);\n\n this.zipCommentLength = this.reader.readInt(2);\n // warning : the encoding depends of the system locale\n // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded.\n // On a windows machine, this field is encoded with the localized windows code page.\n this.zipComment = this.reader.readString(this.zipCommentLength);\n // To get consistent behavior with the generation part, we will assume that\n // this is utf8 encoded.\n this.zipComment = jszipProto.utf8decode(this.zipComment);\n },\n /**\n * Read the end of the Zip 64 central directory.\n * Not merged with the method readEndOfCentral :\n * The end of central can coexist with its Zip64 brother,\n * I don't want to read the wrong number of bytes !\n */\n readBlockZip64EndOfCentral: function() {\n this.zip64EndOfCentralSize = this.reader.readInt(8);\n this.versionMadeBy = this.reader.readString(2);\n this.versionNeeded = this.reader.readInt(2);\n this.diskNumber = this.reader.readInt(4);\n this.diskWithCentralDirStart = this.reader.readInt(4);\n this.centralDirRecordsOnThisDisk = this.reader.readInt(8);\n this.centralDirRecords = this.reader.readInt(8);\n this.centralDirSize = this.reader.readInt(8);\n this.centralDirOffset = this.reader.readInt(8);\n\n this.zip64ExtensibleData = {};\n var extraDataSize = this.zip64EndOfCentralSize - 44,\n index = 0,\n extraFieldId,\n extraFieldLength,\n extraFieldValue;\n while (index < extraDataSize) {\n extraFieldId = this.reader.readInt(2);\n extraFieldLength = this.reader.readInt(4);\n extraFieldValue = this.reader.readString(extraFieldLength);\n this.zip64ExtensibleData[extraFieldId] = {\n id: extraFieldId,\n length: extraFieldLength,\n value: extraFieldValue\n };\n }\n },\n /**\n * Read the end of the Zip 64 central directory locator.\n */\n readBlockZip64EndOfCentralLocator: function() {\n this.diskWithZip64CentralDirStart = this.reader.readInt(4);\n this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8);\n this.disksCount = this.reader.readInt(4);\n if (this.disksCount > 1) {\n throw new Error(\"Multi-volumes zip are not supported\");\n }\n },\n /**\n * Read the local files, based on the offset read in the central part.\n */\n readLocalFiles: function() {\n var i, file;\n for (i = 0; i < this.files.length; i++) {\n file = this.files[i];\n this.reader.setIndex(file.localHeaderOffset);\n this.checkSignature(sig.LOCAL_FILE_HEADER);\n file.readLocalPart(this.reader);\n file.handleUTF8();\n }\n },\n /**\n * Read the central directory.\n */\n readCentralDir: function() {\n var file;\n\n this.reader.setIndex(this.centralDirOffset);\n while (this.reader.readString(4) === sig.CENTRAL_FILE_HEADER) {\n file = new ZipEntry({\n zip64: this.zip64\n }, this.loadOptions);\n file.readCentralPart(this.reader);\n this.files.push(file);\n }\n },\n /**\n * Read the end of central directory.\n */\n readEndOfCentral: function() {\n var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END);\n if (offset === -1) {\n throw new Error(\"Corrupted zip : can't find end of central directory\");\n }\n this.reader.setIndex(offset);\n this.checkSignature(sig.CENTRAL_DIRECTORY_END);\n this.readBlockEndOfCentral();\n\n\n /* extract from the zip spec :\n 4) If one of the fields in the end of central directory\n record is too small to hold required data, the field\n should be set to -1 (0xFFFF or 0xFFFFFFFF) and the\n ZIP64 format record should be created.\n 5) The end of central directory record and the\n Zip64 end of central directory locator record must\n reside on the same disk when splitting or spanning\n an archive.\n */\n 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) {\n this.zip64 = true;\n\n /*\n Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from\n the zip file can fit into a 32bits integer. This cannot be solved : Javascript represents\n all numbers as 64-bit double precision IEEE 754 floating point numbers.\n So, we have 53bits for integers and bitwise operations treat everything as 32bits.\n see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators\n and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5\n */\n\n // should look for a zip64 EOCD locator\n offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);\n if (offset === -1) {\n throw new Error(\"Corrupted zip : can't find the ZIP64 end of central directory locator\");\n }\n this.reader.setIndex(offset);\n this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR);\n this.readBlockZip64EndOfCentralLocator();\n\n // now the zip64 EOCD record\n this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir);\n this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END);\n this.readBlockZip64EndOfCentral();\n }\n },\n prepareReader: function(data) {\n var type = utils.getTypeOf(data);\n if (type === \"string\" && !support.uint8array) {\n this.reader = new StringReader(data, this.loadOptions.optimizedBinaryString);\n }\n else if (type === \"nodebuffer\") {\n this.reader = new NodeBufferReader(data);\n }\n else {\n this.reader = new Uint8ArrayReader(utils.transformTo(\"uint8array\", data));\n }\n },\n /**\n * Read a zip file and create ZipEntries.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file.\n */\n load: function(data) {\n this.prepareReader(data);\n this.readEndOfCentral();\n this.readCentralDir();\n this.readLocalFiles();\n }\n};\n// }}} end of ZipEntries\nmodule.exports = ZipEntries;\n\n},{\"./nodeBufferReader\":12,\"./object\":13,\"./signature\":14,\"./stringReader\":15,\"./support\":17,\"./uint8ArrayReader\":18,\"./utils\":21,\"./zipEntry\":23}],23:[function(_dereq_,module,exports){\n'use strict';\nvar StringReader = _dereq_('./stringReader');\nvar utils = _dereq_('./utils');\nvar CompressedObject = _dereq_('./compressedObject');\nvar jszipProto = _dereq_('./object');\n// class ZipEntry {{{\n/**\n * An entry in the zip file.\n * @constructor\n * @param {Object} options Options of the current file.\n * @param {Object} loadOptions Options for loading the stream.\n */\nfunction ZipEntry(options, loadOptions) {\n this.options = options;\n this.loadOptions = loadOptions;\n}\nZipEntry.prototype = {\n /**\n * say if the file is encrypted.\n * @return {boolean} true if the file is encrypted, false otherwise.\n */\n isEncrypted: function() {\n // bit 1 is set\n return (this.bitFlag & 0x0001) === 0x0001;\n },\n /**\n * say if the file has utf-8 filename/comment.\n * @return {boolean} true if the filename/comment is in utf-8, false otherwise.\n */\n useUTF8: function() {\n // bit 11 is set\n return (this.bitFlag & 0x0800) === 0x0800;\n },\n /**\n * Prepare the function used to generate the compressed content from this ZipFile.\n * @param {DataReader} reader the reader to use.\n * @param {number} from the offset from where we should read the data.\n * @param {number} length the length of the data to read.\n * @return {Function} the callback to get the compressed content (the type depends of the DataReader class).\n */\n prepareCompressedContent: function(reader, from, length) {\n return function() {\n var previousIndex = reader.index;\n reader.setIndex(from);\n var compressedFileData = reader.readData(length);\n reader.setIndex(previousIndex);\n\n return compressedFileData;\n };\n },\n /**\n * Prepare the function used to generate the uncompressed content from this ZipFile.\n * @param {DataReader} reader the reader to use.\n * @param {number} from the offset from where we should read the data.\n * @param {number} length the length of the data to read.\n * @param {JSZip.compression} compression the compression used on this file.\n * @param {number} uncompressedSize the uncompressed size to expect.\n * @return {Function} the callback to get the uncompressed content (the type depends of the DataReader class).\n */\n prepareContent: function(reader, from, length, compression, uncompressedSize) {\n return function() {\n\n var compressedFileData = utils.transformTo(compression.uncompressInputType, this.getCompressedContent());\n var uncompressedFileData = compression.uncompress(compressedFileData);\n\n if (uncompressedFileData.length !== uncompressedSize) {\n throw new Error(\"Bug : uncompressed data size mismatch\");\n }\n\n return uncompressedFileData;\n };\n },\n /**\n * Read the local part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readLocalPart: function(reader) {\n var compression, localExtraFieldsLength;\n\n // we already know everything from the central dir !\n // If the central dir data are false, we are doomed.\n // On the bright side, the local part is scary : zip64, data descriptors, both, etc.\n // The less data we get here, the more reliable this should be.\n // Let's skip the whole header and dash to the data !\n reader.skip(22);\n // in some zip created on windows, the filename stored in the central dir contains \\ instead of /.\n // Strangely, the filename here is OK.\n // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes\n // or APPNOTE#4.4.17.1, \"All slashes MUST be forward slashes '/'\") but there are a lot of bad zip generators...\n // Search \"unzip mismatching \"local\" filename continuing with \"central\" filename version\" on\n // the internet.\n //\n // I think I see the logic here : the central directory is used to display\n // content and the local directory is used to extract the files. Mixing / and \\\n // may be used to display \\ to windows users and use / when extracting the files.\n // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394\n this.fileNameLength = reader.readInt(2);\n localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir\n this.fileName = reader.readString(this.fileNameLength);\n reader.skip(localExtraFieldsLength);\n\n if (this.compressedSize == -1 || this.uncompressedSize == -1) {\n throw new Error(\"Bug or corrupted zip : didn't get enough informations from the central directory \" + \"(compressedSize == -1 || uncompressedSize == -1)\");\n }\n\n compression = utils.findCompression(this.compressionMethod);\n if (compression === null) { // no compression found\n throw new Error(\"Corrupted zip : compression \" + utils.pretty(this.compressionMethod) + \" unknown (inner file : \" + this.fileName + \")\");\n }\n this.decompressed = new CompressedObject();\n this.decompressed.compressedSize = this.compressedSize;\n this.decompressed.uncompressedSize = this.uncompressedSize;\n this.decompressed.crc32 = this.crc32;\n this.decompressed.compressionMethod = this.compressionMethod;\n this.decompressed.getCompressedContent = this.prepareCompressedContent(reader, reader.index, this.compressedSize, compression);\n this.decompressed.getContent = this.prepareContent(reader, reader.index, this.compressedSize, compression, this.uncompressedSize);\n\n // we need to compute the crc32...\n if (this.loadOptions.checkCRC32) {\n this.decompressed = utils.transformTo(\"string\", this.decompressed.getContent());\n if (jszipProto.crc32(this.decompressed) !== this.crc32) {\n throw new Error(\"Corrupted zip : CRC32 mismatch\");\n }\n }\n },\n\n /**\n * Read the central part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readCentralPart: function(reader) {\n this.versionMadeBy = reader.readString(2);\n this.versionNeeded = reader.readInt(2);\n this.bitFlag = reader.readInt(2);\n this.compressionMethod = reader.readString(2);\n this.date = reader.readDate();\n this.crc32 = reader.readInt(4);\n this.compressedSize = reader.readInt(4);\n this.uncompressedSize = reader.readInt(4);\n this.fileNameLength = reader.readInt(2);\n this.extraFieldsLength = reader.readInt(2);\n this.fileCommentLength = reader.readInt(2);\n this.diskNumberStart = reader.readInt(2);\n this.internalFileAttributes = reader.readInt(2);\n this.externalFileAttributes = reader.readInt(4);\n this.localHeaderOffset = reader.readInt(4);\n\n if (this.isEncrypted()) {\n throw new Error(\"Encrypted zip are not supported\");\n }\n\n this.fileName = reader.readString(this.fileNameLength);\n this.readExtraFields(reader);\n this.parseZIP64ExtraField(reader);\n this.fileComment = reader.readString(this.fileCommentLength);\n\n // warning, this is true only for zip with madeBy == DOS (plateform dependent feature)\n this.dir = this.externalFileAttributes & 0x00000010 ? true : false;\n },\n /**\n * Parse the ZIP64 extra field and merge the info in the current ZipEntry.\n * @param {DataReader} reader the reader to use.\n */\n parseZIP64ExtraField: function(reader) {\n\n if (!this.extraFields[0x0001]) {\n return;\n }\n\n // should be something, preparing the extra reader\n var extraReader = new StringReader(this.extraFields[0x0001].value);\n\n // I really hope that these 64bits integer can fit in 32 bits integer, because js\n // won't let us have more.\n if (this.uncompressedSize === utils.MAX_VALUE_32BITS) {\n this.uncompressedSize = extraReader.readInt(8);\n }\n if (this.compressedSize === utils.MAX_VALUE_32BITS) {\n this.compressedSize = extraReader.readInt(8);\n }\n if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) {\n this.localHeaderOffset = extraReader.readInt(8);\n }\n if (this.diskNumberStart === utils.MAX_VALUE_32BITS) {\n this.diskNumberStart = extraReader.readInt(4);\n }\n },\n /**\n * Read the central part of a zip file and add the info in this object.\n * @param {DataReader} reader the reader to use.\n */\n readExtraFields: function(reader) {\n var start = reader.index,\n extraFieldId,\n extraFieldLength,\n extraFieldValue;\n\n this.extraFields = this.extraFields || {};\n\n while (reader.index < start + this.extraFieldsLength) {\n extraFieldId = reader.readInt(2);\n extraFieldLength = reader.readInt(2);\n extraFieldValue = reader.readString(extraFieldLength);\n\n this.extraFields[extraFieldId] = {\n id: extraFieldId,\n length: extraFieldLength,\n value: extraFieldValue\n };\n }\n },\n /**\n * Apply an UTF8 transformation if needed.\n */\n handleUTF8: function() {\n if (this.useUTF8()) {\n this.fileName = jszipProto.utf8decode(this.fileName);\n this.fileComment = jszipProto.utf8decode(this.fileComment);\n } else {\n var upath = this.findExtraFieldUnicodePath();\n if (upath !== null) {\n this.fileName = upath;\n }\n var ucomment = this.findExtraFieldUnicodeComment();\n if (ucomment !== null) {\n this.fileComment = ucomment;\n }\n }\n },\n\n /**\n * Find the unicode path declared in the extra field, if any.\n * @return {String} the unicode path, null otherwise.\n */\n findExtraFieldUnicodePath: function() {\n var upathField = this.extraFields[0x7075];\n if (upathField) {\n var extraReader = new StringReader(upathField.value);\n\n // wrong version\n if (extraReader.readInt(1) !== 1) {\n return null;\n }\n\n // the crc of the filename changed, this field is out of date.\n if (jszipProto.crc32(this.fileName) !== extraReader.readInt(4)) {\n return null;\n }\n\n return jszipProto.utf8decode(extraReader.readString(upathField.length - 5));\n }\n return null;\n },\n\n /**\n * Find the unicode comment declared in the extra field, if any.\n * @return {String} the unicode comment, null otherwise.\n */\n findExtraFieldUnicodeComment: function() {\n var ucommentField = this.extraFields[0x6375];\n if (ucommentField) {\n var extraReader = new StringReader(ucommentField.value);\n\n // wrong version\n if (extraReader.readInt(1) !== 1) {\n return null;\n }\n\n // the crc of the comment changed, this field is out of date.\n if (jszipProto.crc32(this.fileComment) !== extraReader.readInt(4)) {\n return null;\n }\n\n return jszipProto.utf8decode(extraReader.readString(ucommentField.length - 5));\n }\n return null;\n }\n};\nmodule.exports = ZipEntry;\n\n},{\"./compressedObject\":2,\"./object\":13,\"./stringReader\":15,\"./utils\":21}],24:[function(_dereq_,module,exports){\n// Top level file is just a mixin of submodules & constants\n'use strict';\n\nvar assign = _dereq_('./lib/utils/common').assign;\n\nvar deflate = _dereq_('./lib/deflate');\nvar inflate = _dereq_('./lib/inflate');\nvar constants = _dereq_('./lib/zlib/constants');\n\nvar pako = {};\n\nassign(pako, deflate, inflate, constants);\n\nmodule.exports = pako;\n},{\"./lib/deflate\":25,\"./lib/inflate\":26,\"./lib/utils/common\":27,\"./lib/zlib/constants\":30}],25:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar zlib_deflate = _dereq_('./zlib/deflate.js');\nvar utils = _dereq_('./utils/common');\nvar strings = _dereq_('./utils/strings');\nvar msg = _dereq_('./zlib/messages');\nvar zstream = _dereq_('./zlib/zstream');\n\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nvar Z_NO_FLUSH = 0;\nvar Z_FINISH = 4;\n\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n\nvar Z_DEFAULT_COMPRESSION = -1;\n\nvar Z_DEFAULT_STRATEGY = 0;\n\nvar Z_DEFLATED = 8;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overriden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nvar Deflate = function(options) {\n\n this.options = utils.assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n var status = zlib_deflate.deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n zlib_deflate.deflateSetHeader(this.strm, opt.header);\n }\n};\n\n/**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|String): input data. Strings will be converted to\n * utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That flush internal pending buffers and call\n * [[Deflate#onEnd]].\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nDeflate.prototype.push = function(data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n\n if (this.ended) { return false; }\n\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = strings.string2buf(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n status = zlib_deflate.deflate(strm, _mode); /* no bad return value */\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n if (strm.avail_out === 0 || (strm.avail_in === 0 && _mode === Z_FINISH)) {\n if (this.options.to === 'string') {\n this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = zlib_deflate.deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): ouput data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function(chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that input stream complete\n * or error happenned. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function(status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate alrorythm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n var deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate(input, options);\n}\n\n\nexports.Deflate = Deflate;\nexports.deflate = deflate;\nexports.deflateRaw = deflateRaw;\nexports.gzip = gzip;\n},{\"./utils/common\":27,\"./utils/strings\":28,\"./zlib/deflate.js\":32,\"./zlib/messages\":37,\"./zlib/zstream\":39}],26:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar zlib_inflate = _dereq_('./zlib/inflate.js');\nvar utils = _dereq_('./utils/common');\nvar strings = _dereq_('./utils/strings');\nvar c = _dereq_('./zlib/constants');\nvar msg = _dereq_('./zlib/messages');\nvar zstream = _dereq_('./zlib/zstream');\nvar gzheader = _dereq_('./zlib/gzheader');\n\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overriden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nvar Inflate = function(options) {\n\n this.options = utils.assign({\n chunkSize: 16384,\n windowBits: 0,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new zstream();\n this.strm.avail_out = 0;\n\n var status = zlib_inflate.inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== c.Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new gzheader();\n\n zlib_inflate.inflateGetHeader(this.strm, this.header);\n};\n\n/**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` meansh Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That flush internal pending buffers and call\n * [[Inflate#onEnd]].\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\nInflate.prototype.push = function(data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n var next_out_utf8, tail, utf8str;\n\n if (this.ended) { return false; }\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // Only binary strings can be decompressed on practice\n strm.input = strings.binstring2buf(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = new utils.Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); /* no bad return value */\n\n if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && _mode === c.Z_FINISH)) {\n\n if (this.options.to === 'string') {\n\n next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n tail = strm.next_out - next_out_utf8;\n utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n // move tail\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n this.onData(utf8str);\n\n } else {\n this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n }\n }\n }\n } while ((strm.avail_in > 0) && status !== c.Z_STREAM_END);\n\n if (status === c.Z_STREAM_END) {\n _mode = c.Z_FINISH;\n }\n // Finalize on the last chunk.\n if (_mode === c.Z_FINISH) {\n status = zlib_inflate.inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === c.Z_OK;\n }\n\n return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): ouput data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function(chunk) {\n this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell inflate that input stream complete\n * or error happenned. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function(status) {\n // On success - join\n if (status === c.Z_OK) {\n if (this.options.to === 'string') {\n // Glue & convert here, until we teach pako to send\n // utf8 alligned strings to onData\n this.result = this.chunks.join('');\n } else {\n this.result = utils.flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n * , output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n var inflator = new Inflate(options);\n\n inflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) { throw inflator.msg; }\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nexports.Inflate = Inflate;\nexports.inflate = inflate;\nexports.inflateRaw = inflateRaw;\nexports.ungzip = inflate;\n\n},{\"./utils/common\":27,\"./utils/strings\":28,\"./zlib/constants\":30,\"./zlib/gzheader\":33,\"./zlib/inflate.js\":35,\"./zlib/messages\":37,\"./zlib/zstream\":39}],27:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof(source) !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (source.hasOwnProperty(p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs+len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for(var i=0; i= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1);\n}\n_utf8len[254]=_utf8len[254]=1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new utils.Buf8(buf_len);\n\n // convert\n for (i=0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) {\n c2 = str.charCodeAt(m_pos+1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n // use fallback for big arrays to avoid stack overflow\n if (len < 65537) {\n if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for(var i=0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function(buf) {\n return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function(str) {\n var buf = new utils.Buf8(str.length);\n for(var i=0, len=buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len*2);\n\n for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nexports.utf8border = function(buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max-1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Fuckup - very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means vuffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n\n},{\"./common\":27}],29:[function(_dereq_,module,exports){\n'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It doesn't worth to make additional optimizationa as in original.\n// Small size is preferable.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0\n , s2 = ((adler >>> 16) & 0xffff) |0\n , n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n},{}],30:[function(_dereq_,module,exports){\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n},{}],31:[function(_dereq_,module,exports){\n'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for(var n =0; n < 256; n++){\n c = n;\n for(var k =0; k < 8; k++){\n c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable\n , end = pos + len;\n\n crc = crc ^ (-1);\n\n for (var i = pos; i < end; i++ ) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n},{}],32:[function(_dereq_,module,exports){\n'use strict';\n\nvar utils = _dereq_('../utils/common');\nvar trees = _dereq_('./trees');\nvar adler32 = _dereq_('./adler32');\nvar crc32 = _dereq_('./crc32');\nvar msg = _dereq_('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\n//var Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2*L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only (s, last) {\n trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH-1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH-1)) ? s.strstart : MIN_MATCH-1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH-1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size-MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH-1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = trees._tr_tally(s, s.strstart - 1- s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length-1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH-1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart-1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH-1 ? s.strstart : MIN_MATCH-1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nvar Config = function (good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n};\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2*D_CODES+1) * 2);\n this.bl_tree = new utils.Buf16((2*BL_CODES+1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new utils.Buf16(MAX_BITS+1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new utils.Buf16(2*L_CODES+1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2*L_CODES+1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n trees._tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n s.d_buf = s.lit_bufsize >> 1;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg){\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n/* =========================================================================\n * Copy the source state to the destination state\n */\n//function deflateCopy(dest, source) {\n//\n//}\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n},{\"../utils/common\":27,\"./adler32\":29,\"./crc32\":31,\"./messages\":37,\"./trees\":38}],33:[function(_dereq_,module,exports){\n'use strict';\n\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\nmodule.exports = GZheader;\n},{}],34:[function(_dereq_,module,exports){\n'use strict';\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n var window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n\n},{}],35:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\nvar adler32 = _dereq_('./adler32');\nvar crc32 = _dereq_('./crc32');\nvar inflate_fast = _dereq_('./inffast');\nvar inflate_table = _dereq_('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction ZSWAP32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {bits: 9});\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {bits: 5});\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window,src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window,src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window,src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more conveniend processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0 /*crc32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = ZSWAP32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = {bits: state.lenbits};\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = {bits: state.lenbits};\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = {bits: state.distbits};\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) -1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) -1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) -1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) -1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' insdead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, ZSWAP32 returns signed too\n if ((state.flags ? hold : ZSWAP32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n},{\"../utils/common\":27,\"./adler32\":29,\"./crc32\":31,\"./inffast\":34,\"./inftrees\":36}],36:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS+1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS+1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n var i=0;\n /* process all codes and make table entries */\n for (;;) {\n i++;\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n\n},{\"../utils/common\":27}],37:[function(_dereq_,module,exports){\n'use strict';\n\nmodule.exports = {\n '2': 'need dictionary', /* Z_NEED_DICT 2 */\n '1': 'stream end', /* Z_STREAM_END 1 */\n '0': '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n},{}],38:[function(_dereq_,module,exports){\n'use strict';\n\n\nvar utils = _dereq_('../utils/common');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2*L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\nvar extra_lbits = /* extra bits for each length code */\n [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];\n\nvar extra_dbits = /* extra bits for each distance code */\n [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];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array insdead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES+2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH-MIN_MATCH+1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nvar StaticTreeDesc = function (static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n};\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nvar TreeDesc = function(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n};\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short (s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c*2]/*.Code*/, tree[c*2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max]*2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max+1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n*2 +1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n*2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n-base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n*2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length-1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits+1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m*2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m*2 + 1]/*.Len*/)*tree[m*2]/*.Freq*/;\n tree[m*2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS+1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits-1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES-1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1< dist code (0..29) */\n dist = 0;\n for (code = 0 ; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */\n for ( ; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n*2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n*2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n*2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n*2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES+1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n*2 + 1]/*.Len*/ = 5;\n static_dtree[n*2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc =new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n*2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n*2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n*2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK*2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n*2;\n var _m2 = m*2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j+1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx*2] << 8) | (s.pending_buf[s.d_buf + lx*2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code+LITERALS+1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n*2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node*2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n*2 + 1]/*.Dad*/ = tree[m*2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code+1)*2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n+1)*2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6*2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10*2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138*2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0*2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n+1)*2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count-3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count-3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count-11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex]*2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3*(max_blindex+1) + 5+5+4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes-1, 5);\n send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank]*2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes-1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes-1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n*2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK<<1)+(last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES<<1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len+3+7) >>> 3;\n static_lenb = (s.static_len+3+7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len+4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES<<1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES<<1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code+1, s.d_desc.max_code+1, max_blindex+1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc*2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc]+LITERALS+1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defailts,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize-1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n},{\"../utils/common\":27}],39:[function(_dereq_,module,exports){\n'use strict';\n\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n},{}]},{},[9])\n(9)\n}));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mt = moment.defineLocale('mt', {\n months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),\n monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),\n weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Illum fil-]LT',\n nextDay : '[Għada fil-]LT',\n nextWeek : 'dddd [fil-]LT',\n lastDay : '[Il-bieraħ fil-]LT',\n lastWeek : 'dddd [li għadda] [fil-]LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'f’ %s',\n past : '%s ilu',\n s : 'ftit sekondi',\n ss : '%d sekondi',\n m : 'minuta',\n mm : '%d minuti',\n h : 'siegħa',\n hh : '%d siegħat',\n d : 'ġurnata',\n dd : '%d ġranet',\n M : 'xahar',\n MM : '%d xhur',\n y : 'sena',\n yy : '%d sni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months : months,\n monthsShort : months,\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arLy;\n\n})));\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n 'dd': 'дзень_дні_дзён',\n 'MM': 'месяц_месяцы_месяцаў',\n 'yy': 'год_гады_гадоў'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months : {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')\n },\n monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays : {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/\n },\n weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., HH:mm',\n LLLL : 'dddd, D MMMM YYYY г., HH:mm'\n },\n calendar : {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'праз %s',\n past : '%s таму',\n s : 'некалькі секунд',\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithPlural,\n hh : relativeTimeWithPlural,\n d : 'дзень',\n dd : relativeTimeWithPlural,\n M : 'месяц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM : function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ka = moment.defineLocale('ka', {\n months : {\n standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')\n },\n monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays : {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[დღეს] LT[-ზე]',\n nextDay : '[ხვალ] LT[-ზე]',\n lastDay : '[გუშინ] LT[-ზე]',\n nextWeek : '[შემდეგ] dddd LT[-ზე]',\n lastWeek : '[წინა] dddd LT-ზე',\n sameElse : 'L'\n },\n relativeTime : {\n future : function (s) {\n return (/(წამი|წუთი|საათი|წელი)/).test(s) ?\n s.replace(/ი$/, 'ში') :\n s + 'ში';\n },\n past : function (s) {\n if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if ((/წელი/).test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n },\n s : 'რამდენიმე წამი',\n ss : '%d წამი',\n m : 'წუთი',\n mm : '%d წუთი',\n h : 'საათი',\n hh : '%d საათი',\n d : 'დღე',\n dd : '%d დღე',\n M : 'თვე',\n MM : '%d თვე',\n y : 'წელი',\n yy : '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal : function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week : {\n dow : 1,\n doy : 7\n }\n });\n\n return ka;\n\n})));\n","import mod from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./imagePopUp.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./imagePopUp.vue?vue&type=style&index=0&lang=css&\"","import Api from './Api.js';\r\nconst organization_id = () => {\r\n return window.localStorage.getItem(\"OrganizationID\");\r\n};\r\n\r\nexport default {\r\n getAllTempInventory(filters, id) {\r\n // return Api().get(`/v2/inventory/project/${id}?archive=4`);\r\n if (filters && filters.hasOwnProperty('page')) {\r\n return Api().get(`/v2/inventory/project/${id}/page/${filters.page}?archive=4&organization_id=${organization_id()}`);\r\n } else {\r\n return Api().get(`/v2/inventory/project/${id}?archive=4&organization_id=${organization_id()}`);\r\n }\r\n },\r\n getAllInventory(filters, id) {\r\n // return Api().get(`/v2/inventory/project/${id}`);\r\n if (filters && filters.hasOwnProperty('page')) {\r\n return Api().get(`/v2/inventory/project/${id}/page/${filters.page}?archive=1&organization_id=${organization_id()}`);\r\n } else {\r\n return Api().get(`/v2/inventory/project/${id}?archive=1&organization_id=${organization_id()}`);\r\n }\r\n\r\n },\r\n\r\n editInventory(payload, id) {\r\n return Api().put(`/v2/inventory/${id}?organization_id=${organization_id()}`, payload);\r\n },\r\n\r\n};\r\n","/*! cpexcel.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W100 */\nvar cptable = {version:\"1.15.0\"};\ncptable[437] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[620] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàąçêëèïîćÄĄĘęłôöĆûùŚÖÜ¢Ł¥śƒŹŻóÓńŃźż¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[737] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[850] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø׃áíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[852] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[857] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[861] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[865] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[866] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[874] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[895] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ČüéďäĎŤčěĚĹÍľǪÄÁÉžŽôöÓůÚýÖÜŠĽÝŘťáíóúňŇŮÔšřŕŔ¼§«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ \", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[932] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"���������������������������������������������������������������� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×�÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨¬⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������ʼn♯♭♪†‡¶����◯���\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"�������������������������������������������������������������������������������0123456789�������ABCDEFGHIJKLMNOPQRSTUVWXYZ�������abcdefghijklmnopqrstuvwxyz����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[135] = \"����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[224] = \"����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[237] = \"����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"���\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[250] = \"����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[936] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[133] = \"����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�\".split(\"\");\nfor(j = 0; j != D[133].length; ++j) if(D[133][j].charCodeAt(0) !== 0xFFFD) { e[D[133][j]] = 34048 + j; d[34048 + j] = D[133][j];}\nD[134] = \"����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�\".split(\"\");\nfor(j = 0; j != D[134].length; ++j) if(D[134][j].charCodeAt(0) !== 0xFFFD) { e[D[134][j]] = 34304 + j; d[34304 + j] = D[134][j];}\nD[135] = \"����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[160] = \"����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�\".split(\"\");\nfor(j = 0; j != D[160].length; ++j) if(D[160][j].charCodeAt(0) !== 0xFFFD) { e[D[160][j]] = 40960 + j; d[40960 + j] = D[160][j];}\nD[161] = \"����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[201] = \"����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nD[250] = \"����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nD[253] = \"����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[253].length; ++j) if(D[253][j].charCodeAt(0) !== 0xFFFD) { e[D[253][j]] = 64768 + j; d[64768 + j] = D[253][j];}\nD[254] = \"����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[254].length; ++j) if(D[254][j].charCodeAt(0) !== 0xFFFD) { e[D[254][j]] = 65024 + j; d[65024 + j] = D[254][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[949] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[133] = \"�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�\".split(\"\");\nfor(j = 0; j != D[133].length; ++j) if(D[133][j].charCodeAt(0) !== 0xFFFD) { e[D[133][j]] = 34048 + j; d[34048 + j] = D[133][j];}\nD[134] = \"�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�\".split(\"\");\nfor(j = 0; j != D[134].length; ++j) if(D[134][j].charCodeAt(0) !== 0xFFFD) { e[D[134][j]] = 34304 + j; d[34304 + j] = D[134][j];}\nD[135] = \"�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[160] = \"�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�\".split(\"\");\nfor(j = 0; j != D[160].length; ++j) if(D[160][j].charCodeAt(0) !== 0xFFFD) { e[D[160][j]] = 40960 + j; d[40960 + j] = D[160][j];}\nD[161] = \"�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆЪĦ�IJ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[202] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nD[250] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nD[253] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�\".split(\"\");\nfor(j = 0; j != D[253].length; ++j) if(D[253][j].charCodeAt(0) !== 0xFFFD) { e[D[253][j]] = 64768 + j; d[64768 + j] = D[253][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[950] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[161] = \"���������������������������������������������������������������� ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"����������������������������������������������������������������\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv�\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"����������������������������������������������������������������wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[201] = \"����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[1250] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1251] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1252] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1253] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1254] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1255] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1256] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1257] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1258] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10000] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10006] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10007] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10008] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€���������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[161] = \"����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。・ˉˇ¨〃々―~�…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω���������������������������������������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüê����������ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"��������������������������������������������������������������������������������������������������������������������������������������������������������������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[176] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[201] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[10029] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10079] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10081] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[28591] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d.charAt(i)] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\n// eslint-disable-next-line no-undef\nif (typeof module !== 'undefined' && module.exports && typeof DO_NOT_EXPORT_CODEPAGE === 'undefined') module.exports = cptable;\n/*! cputils.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ft=javascript: */\n/*jshint newcap: false */\n(function(root, factory) {\n /*jshint ignore:start */\n /*eslint-disable */\n \"use strict\";\n if(typeof cptable === \"undefined\") {\n if(typeof require !== \"undefined\"){\n var cpt = cptable;\n if (typeof module !== 'undefined' && module.exports && typeof DO_NOT_EXPORT_CODEPAGE === 'undefined') module.exports = factory(cpt);\n else root.cptable = factory(cpt);\n } else throw new Error(\"cptable not found\");\n } else cptable = factory(cptable);\n /*eslint-enable */\n /*jshint ignore:end */\n}(this, function(cpt){\n \"use strict\";\n /*global module, Buffer */\n var magic = {\n \"1200\":\"utf16le\",\n \"1201\":\"utf16be\",\n \"12000\":\"utf32le\",\n \"12001\":\"utf32be\",\n \"16969\":\"utf64le\",\n \"20127\":\"ascii\",\n \"65000\":\"utf7\",\n \"65001\":\"utf8\"\n };\n\n var sbcs_cache = [874,1250,1251,1252,1253,1254,1255,1256,10000];\n var dbcs_cache = [932,936,949,950];\n var magic_cache = [65001];\n var magic_decode = {};\n var magic_encode = {};\n var cpdcache = {};\n var cpecache = {};\n\n var sfcc = function sfcc(x) { return String.fromCharCode(x); };\n var cca = function cca(x) { return x.charCodeAt(0); };\n\n var has_buf = (typeof Buffer !== 'undefined');\n var Buffer_from = function(){};\n if(has_buf) {\n var nbfs = !Buffer.from;\n if(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n Buffer_from = nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n // $FlowIgnore\n if(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n) { return new Buffer(n); };\n\n var mdl = 1024, mdb = Buffer.allocUnsafe(mdl);\n var make_EE = function make_EE(E){\n var EE = Buffer.allocUnsafe(65536);\n for(var i = 0; i < 65536;++i) EE[i] = 0;\n var keys = Object.keys(E), len = keys.length;\n for(var ee = 0, e = keys[ee]; ee < len; ++ee) {\n if(!(e = keys[ee])) continue;\n EE[e.charCodeAt(0)] = E[e];\n }\n return EE;\n };\n var sbcs_encode = function make_sbcs_encode(cp) {\n var EE = make_EE(cpt[cp].enc);\n return function sbcs_e(data, ofmt) {\n var len = data.length;\n var out, i=0, j=0, D=0, w=0;\n if(typeof data === 'string') {\n out = Buffer.allocUnsafe(len);\n for(i = 0; i < len; ++i) out[i] = EE[data.charCodeAt(i)];\n } else if(Buffer.isBuffer(data)) {\n out = Buffer.allocUnsafe(2*len);\n j = 0;\n for(i = 0; i < len; ++i) {\n D = data[i];\n if(D < 128) out[j++] = EE[D];\n else if(D < 224) { out[j++] = EE[((D&31)<<6)+(data[i+1]&63)]; ++i; }\n else if(D < 240) { out[j++] = EE[((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63)]; i+=2; }\n else {\n w = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3;\n if(w < 65536) out[j++] = EE[w];\n else { w -= 65536; out[j++] = EE[0xD800 + ((w>>10)&1023)]; out[j++] = EE[0xDC00 + (w&1023)]; }\n }\n }\n out = out.slice(0,j);\n } else {\n out = Buffer.allocUnsafe(len);\n for(i = 0; i < len; ++i) out[i] = EE[data[i].charCodeAt(0)];\n }\n if(!ofmt || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n };\n var sbcs_decode = function make_sbcs_decode(cp) {\n var D = cpt[cp].dec;\n var DD = Buffer.allocUnsafe(131072), d=0, c=\"\";\n for(d=0;d>8;\n }\n return function sbcs_d(data) {\n var len = data.length, i=0, j=0;\n if(2 * len > mdl) { mdl = 2 * len; mdb = Buffer.allocUnsafe(mdl); }\n if(Buffer.isBuffer(data)) {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n } else if(typeof data === \"string\") {\n for(i = 0; i < len; i++) {\n j = 2*data.charCodeAt(i);\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n } else {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n }\n return mdb.slice(0, 2 * len).toString('ucs2');\n };\n };\n var dbcs_encode = function make_dbcs_encode(cp) {\n var E = cpt[cp].enc;\n var EE = Buffer.allocUnsafe(131072);\n for(var i = 0; i < 131072; ++i) EE[i] = 0;\n var keys = Object.keys(E);\n for(var ee = 0, e = keys[ee]; ee < keys.length; ++ee) {\n if(!(e = keys[ee])) continue;\n var f = e.charCodeAt(0);\n EE[2*f] = E[e] & 255; EE[2*f+1] = E[e]>>8;\n }\n return function dbcs_e(data, ofmt) {\n var len = data.length, out = Buffer.allocUnsafe(2*len), i=0, j=0, jj=0, k=0, D=0;\n if(typeof data === 'string') {\n for(i = k = 0; i < len; ++i) {\n j = data.charCodeAt(i)*2;\n out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n out = out.slice(0,k);\n } else if(Buffer.isBuffer(data)) {\n for(i = k = 0; i < len; ++i) {\n D = data[i];\n if(D < 128) j = D;\n else if(D < 224) { j = ((D&31)<<6)+(data[i+1]&63); ++i; }\n else if(D < 240) { j = ((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63); i+=2; }\n else { j = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3; }\n if(j<65536) { j*=2; out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j]; }\n else { jj = j-65536;\n j=2*(0xD800 + ((jj>>10)&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n j=2*(0xDC00 + (jj&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n }\n out = out.slice(0,k);\n } else {\n for(i = k = 0; i < len; i++) {\n j = data[i].charCodeAt(0)*2;\n out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n }\n if(!ofmt || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n };\n var dbcs_decode = function make_dbcs_decode(cp) {\n var D = cpt[cp].dec;\n var DD = Buffer.allocUnsafe(131072), d=0, c, w=0, j=0, i=0;\n for(i = 0; i < 65536; ++i) { DD[2*i] = 0xFF; DD[2*i+1] = 0xFD;}\n for(d = 0; d < D.length; ++d) {\n if(!(c=D[d])) continue;\n w = c.charCodeAt(0);\n j = 2*d;\n DD[j] = w&255; DD[j+1] = w>>8;\n }\n return function dbcs_d(data) {\n var len = data.length, out = Buffer.allocUnsafe(2*len), i=0, j=0, k=0;\n if(Buffer.isBuffer(data)) {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n } else if(typeof data === \"string\") {\n for(i = 0; i < len; i++) {\n j = 2*data.charCodeAt(i);\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data.charCodeAt(i)<<8)+data.charCodeAt(i+1)); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n } else {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n }\n return out.slice(0,k).toString('ucs2');\n };\n };\n magic_decode[65001] = function utf8_d(data) {\n if(typeof data === \"string\") return utf8_d(data.split(\"\").map(cca));\n var len = data.length, w = 0, ww = 0;\n if(4 * len > mdl) { mdl = 4 * len; mdb = Buffer.allocUnsafe(mdl); }\n var i = 0;\n if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;\n for(var j = 1, k = 0, D = 0; i < len; i+=j) {\n j = 1; D = data[i];\n if(D < 128) w = D;\n else if(D < 224) { w=(D&31)*64+(data[i+1]&63); j=2; }\n else if(D < 240) { w=((D&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }\n else { w=(D&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }\n if(w < 65536) { mdb[k++] = w&255; mdb[k++] = w>>8; }\n else {\n w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);\n mdb[k++] = ww&255; mdb[k++] = ww>>>8; mdb[k++] = w&255; mdb[k++] = (w>>>8)&255;\n }\n }\n return mdb.slice(0,k).toString('ucs2');\n };\n magic_encode[65001] = function utf8_e(data, ofmt) {\n if(has_buf && Buffer.isBuffer(data)) {\n if(!ofmt || ofmt === 'buf') return data;\n if(ofmt !== 'arr') return data.toString('binary');\n return [].slice.call(data);\n }\n var len = data.length, w = 0, ww = 0, j = 0;\n var direct = typeof data === \"string\";\n if(4 * len > mdl) { mdl = 4 * len; mdb = Buffer.allocUnsafe(mdl); }\n for(var i = 0; i < len; ++i) {\n w = direct ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w <= 0x007F) mdb[j++] = w;\n else if(w <= 0x07FF) {\n mdb[j++] = 192 + (w >> 6);\n mdb[j++] = 128 + (w&63);\n } else if(w >= 0xD800 && w <= 0xDFFF) {\n w -= 0xD800; ++i;\n ww = (direct ? data.charCodeAt(i) : data[i].charCodeAt(0)) - 0xDC00 + (w << 10);\n mdb[j++] = 240 + ((ww>>>18) & 0x07);\n mdb[j++] = 144 + ((ww>>>12) & 0x3F);\n mdb[j++] = 128 + ((ww>>>6) & 0x3F);\n mdb[j++] = 128 + (ww & 0x3F);\n } else {\n mdb[j++] = 224 + (w >> 12);\n mdb[j++] = 128 + ((w >> 6)&63);\n mdb[j++] = 128 + (w&63);\n }\n }\n if(!ofmt || ofmt === 'buf') return mdb.slice(0,j);\n if(ofmt !== 'arr') return mdb.slice(0,j).toString('binary');\n return [].slice.call(mdb, 0, j);\n };\n }\n\n var encache = function encache() {\n if(has_buf) {\n if(cpdcache[sbcs_cache[0]]) return;\n var i=0, s=0;\n for(i = 0; i < sbcs_cache.length; ++i) {\n s = sbcs_cache[i];\n if(cpt[s]) {\n cpdcache[s] = sbcs_decode(s);\n cpecache[s] = sbcs_encode(s);\n }\n }\n for(i = 0; i < dbcs_cache.length; ++i) {\n s = dbcs_cache[i];\n if(cpt[s]) {\n cpdcache[s] = dbcs_decode(s);\n cpecache[s] = dbcs_encode(s);\n }\n }\n for(i = 0; i < magic_cache.length; ++i) {\n s = magic_cache[i];\n if(magic_decode[s]) cpdcache[s] = magic_decode[s];\n if(magic_encode[s]) cpecache[s] = magic_encode[s];\n }\n }\n };\n var null_enc = function(data, ofmt) { void ofmt; return \"\"; };\n var cp_decache = function cp_decache(cp) { delete cpdcache[cp]; delete cpecache[cp]; };\n var decache = function decache() {\n if(has_buf) {\n if(!cpdcache[sbcs_cache[0]]) return;\n sbcs_cache.forEach(cp_decache);\n dbcs_cache.forEach(cp_decache);\n magic_cache.forEach(cp_decache);\n }\n last_enc = null_enc; last_cp = 0;\n };\n var cache = {\n encache: encache,\n decache: decache,\n sbcs: sbcs_cache,\n dbcs: dbcs_cache\n };\n\n encache();\n\n var BM = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var SetD = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?\";\n var last_enc = null_enc, last_cp = 0;\n var encode = function encode(cp, data, ofmt) {\n if(cp === last_cp && last_enc) { return last_enc(data, ofmt); }\n if(cpecache[cp]) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }\n if(has_buf && Buffer.isBuffer(data)) data = data.toString('utf8');\n var len = data.length;\n var out = has_buf ? Buffer.allocUnsafe(4*len) : [], w=0, i=0, j = 0, ww=0;\n var C = cpt[cp], E, M = \"\";\n var isstr = typeof data === 'string';\n if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) {\n w = E[isstr? data.charAt(i) : data[i]];\n if(w > 255) {\n out[j] = w>>8;\n out[++j] = w&255;\n } else out[j] = w&255;\n }\n else if((M=magic[cp])) switch(M) {\n case \"utf8\":\n if(has_buf && isstr) { out = Buffer_from(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i, ++j) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w <= 0x007F) out[j] = w;\n else if(w <= 0x07FF) {\n out[j] = 192 + (w >> 6);\n out[++j] = 128 + (w&63);\n } else if(w >= 0xD800 && w <= 0xDFFF) {\n w -= 0xD800;\n ww = (isstr ? data.charCodeAt(++i) : data[++i].charCodeAt(0)) - 0xDC00 + (w << 10);\n out[j] = 240 + ((ww>>>18) & 0x07);\n out[++j] = 144 + ((ww>>>12) & 0x3F);\n out[++j] = 128 + ((ww>>>6) & 0x3F);\n out[++j] = 128 + (ww & 0x3F);\n } else {\n out[j] = 224 + (w >> 12);\n out[++j] = 128 + ((w >> 6)&63);\n out[++j] = 128 + (w&63);\n }\n }\n break;\n case \"ascii\":\n if(has_buf && typeof data === \"string\") { out = Buffer_from(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i, ++j) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w <= 0x007F) out[j] = w;\n else throw new Error(\"bad ascii \" + w);\n }\n break;\n case \"utf16le\":\n if(has_buf && typeof data === \"string\") { out = Buffer_from(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n out[j++] = w&255;\n out[j++] = w>>8;\n }\n break;\n case \"utf16be\":\n for(i = 0; i < len; ++i) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n out[j++] = w>>8;\n out[j++] = w&255;\n }\n break;\n case \"utf32le\":\n for(i = 0; i < len; ++i) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255;\n }\n break;\n case \"utf32be\":\n for(i = 0; i < len; ++i) {\n w = isstr ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);\n out[j+3] = w&255; w >>= 8;\n out[j+2] = w&255; w >>= 8;\n out[j+1] = w&255; w >>= 8;\n out[j] = w&255;\n j+=4;\n }\n break;\n case \"utf7\":\n for(i = 0; i < len; i++) {\n var c = isstr ? data.charAt(i) : data[i].charAt(0);\n if(c === \"+\") { out[j++] = 0x2b; out[j++] = 0x2d; continue; }\n if(SetD.indexOf(c) > -1) { out[j++] = c.charCodeAt(0); continue; }\n var tt = encode(1201, c);\n out[j++] = 0x2b;\n out[j++] = BM.charCodeAt(tt[0]>>2);\n out[j++] = BM.charCodeAt(((tt[0]&0x03)<<4) + ((tt[1]||0)>>4));\n out[j++] = BM.charCodeAt(((tt[1]&0x0F)<<2) + ((tt[2]||0)>>6));\n out[j++] = 0x2d;\n }\n break;\n default: throw new Error(\"Unsupported magic: \" + cp + \" \" + magic[cp]);\n }\n else throw new Error(\"Unrecognized CP: \" + cp);\n out = out.slice(0,j);\n if(!has_buf) return (ofmt == 'str') ? (out).map(sfcc).join(\"\") : out;\n if(!ofmt || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n var decode = function decode(cp, data) {\n var F; if((F=cpdcache[cp])) return F(data);\n if(typeof data === \"string\") return decode(cp, data.split(\"\").map(cca));\n var len = data.length, out = new Array(len), s=\"\", w=0, i=0, j=1, k=0, ww=0;\n var C = cpt[cp], D, M=\"\";\n if(C && (D=C.dec)) {\n for(i = 0; i < len; i+=j) {\n j = 2;\n s = D[(data[i]<<8)+ data[i+1]];\n if(!s) {\n j = 1;\n s = D[data[i]];\n }\n if(!s) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);\n out[k++] = s;\n }\n }\n else if((M=magic[cp])) switch(M) {\n case \"utf8\":\n if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;\n for(; i < len; i+=j) {\n j = 1;\n if(data[i] < 128) w = data[i];\n else if(data[i] < 224) { w=(data[i]&31)*64+(data[i+1]&63); j=2; }\n else if(data[i] < 240) { w=((data[i]&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }\n else { w=(data[i]&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }\n if(w < 65536) { out[k++] = String.fromCharCode(w); }\n else {\n w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);\n out[k++] = String.fromCharCode(ww); out[k++] = String.fromCharCode(w);\n }\n }\n break;\n case \"ascii\":\n if(has_buf && Buffer.isBuffer(data)) return data.toString(M);\n for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]);\n k = len; break;\n case \"utf16le\":\n if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2;\n if(has_buf && Buffer.isBuffer(data)) return data.toString(M);\n j = 2;\n for(; i+1 < len; i+=j) {\n out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]);\n }\n break;\n case \"utf16be\":\n if(len >= 2 && data[0] == 0xFE) if(data[1] == 0xFF) i = 2;\n j = 2;\n for(; i+1 < len; i+=j) {\n out[k++] = String.fromCharCode((data[i]<<8) + data[i+1]);\n }\n break;\n case \"utf32le\":\n if(len >= 4 && data[0] == 0xFF) if(data[1] == 0xFE && data[2] === 0 && data[3] === 0) i = 4;\n j = 4;\n for(; i < len; i+=j) {\n w = (data[i+3]<<24) + (data[i+2]<<16) + (data[i+1]<<8) + (data[i]);\n if(w > 0xFFFF) {\n w -= 0x10000;\n out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));\n out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));\n }\n else out[k++] = String.fromCharCode(w);\n }\n break;\n case \"utf32be\":\n if(len >= 4 && data[3] == 0xFF) if(data[2] == 0xFE && data[1] === 0 && data[0] === 0) i = 4;\n j = 4;\n for(; i < len; i+=j) {\n w = (data[i]<<24) + (data[i+1]<<16) + (data[i+2]<<8) + (data[i+3]);\n if(w > 0xFFFF) {\n w -= 0x10000;\n out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));\n out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));\n }\n else out[k++] = String.fromCharCode(w);\n }\n break;\n case \"utf7\":\n if(len >= 4 && data[0] == 0x2B && data[1] == 0x2F && data[2] == 0x76) {\n if(len >= 5 && data[3] == 0x38 && data[4] == 0x2D) i = 5;\n else if(data[3] == 0x38 || data[3] == 0x39 || data[3] == 0x2B || data[3] == 0x2F) i = 4;\n }\n for(; i < len; i+=j) {\n if(data[i] !== 0x2b) { j=1; out[k++] = String.fromCharCode(data[i]); continue; }\n j=1;\n if(data[i+1] === 0x2d) { j = 2; out[k++] = \"+\"; continue; }\n // eslint-disable-next-line no-useless-escape\n while(String.fromCharCode(data[i+j]).match(/[A-Za-z0-9+\\/]/)) j++;\n var dash = 0;\n if(data[i+j] === 0x2d) { ++j; dash=1; }\n var tt = [];\n var o64 = \"\";\n var c1=0, c2=0, c3=0;\n var e1=0, e2=0, e3=0, e4=0;\n for(var l = 1; l < j - dash;) {\n e1 = BM.indexOf(String.fromCharCode(data[i+l++]));\n e2 = BM.indexOf(String.fromCharCode(data[i+l++]));\n c1 = e1 << 2 | e2 >> 4;\n tt.push(c1);\n e3 = BM.indexOf(String.fromCharCode(data[i+l++]));\n if(e3 === -1) break;\n c2 = (e2 & 15) << 4 | e3 >> 2;\n tt.push(c2);\n e4 = BM.indexOf(String.fromCharCode(data[i+l++]));\n if(e4 === -1) break;\n c3 = (e3 & 3) << 6 | e4;\n if(e4 < 64) tt.push(c3);\n }\n o64 = decode(1201, tt);\n for(l = 0; l < o64.length; ++l) out[k++] = o64.charAt(l);\n }\n break;\n default: throw new Error(\"Unsupported magic: \" + cp + \" \" + magic[cp]);\n }\n else throw new Error(\"Unrecognized CP: \" + cp);\n return out.slice(0,k).join(\"\");\n };\n var hascp = function hascp(cp) { return !!(cpt[cp] || magic[cp]); };\n cpt.utils = { decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache };\n return cpt;\n}));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ko = moment.defineLocale('ko', {\n months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort : '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin : '일_월_화_수_목_금_토'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY년 MMMM D일',\n LLL : 'YYYY년 MMMM D일 A h:mm',\n LLLL : 'YYYY년 MMMM D일 dddd A h:mm',\n l : 'YYYY.MM.DD.',\n ll : 'YYYY년 MMMM D일',\n lll : 'YYYY년 MMMM D일 A h:mm',\n llll : 'YYYY년 MMMM D일 dddd A h:mm'\n },\n calendar : {\n sameDay : '오늘 LT',\n nextDay : '내일 LT',\n nextWeek : 'dddd LT',\n lastDay : '어제 LT',\n lastWeek : '지난주 dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s 후',\n past : '%s 전',\n s : '몇 초',\n ss : '%d초',\n m : '1분',\n mm : '%d분',\n h : '한 시간',\n hh : '%d시간',\n d : '하루',\n dd : '%d일',\n M : '한 달',\n MM : '%d달',\n y : '일 년',\n yy : '%d년'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(일|월|주)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse : /오전|오후/,\n isPM : function (token) {\n return token === '오후';\n },\n meridiem : function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n });\n\n return ko;\n\n})));\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('span',{staticClass:\"text-center table-edit-icon\",class:_vm.params.data.purchase_status != 1 ? 'view-icon-disabled' : '',on:{\"click\":function($event){_vm.params.data.purchase_status != 1\n ? (this.popupActive = false)\n : _vm.showModal()}}},[_c('i',{staticClass:\"text-center material-icons\"},[_vm._v(\"remove_red_eye\")])]),_c('div',{},[_c('vs-popup',{attrs:{\"id\":'popmodal' + _vm.params.data.purchase_id,\"title\":\"Challan Detail\",\"active\":_vm.popupActive},on:{\"update:active\":function($event){_vm.popupActive=$event}}},[(_vm.challanDetails.length != 0)?_c('swiper',{key:_vm.$vs.rtl,attrs:{\"options\":_vm.swiperOption,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr'}},[_vm._l((_vm.challanDetails),function(challan,challanKey){return _c('swiper-slide',{key:challanKey},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"row\"},[_c('swiper',{key:_vm.$vs.rtl,attrs:{\"options\":_vm.swiperOption1,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr'}},_vm._l((challan.images),function(image,imageKey){return _c('swiper-slide',{key:imageKey},[_c('div',{staticClass:\"\\n vx-col\\n w-full\\n align-self-center\\n text-center\\n image-box\\n rounded\\n \"},[_c('img',{staticClass:\"responsive text-center\",attrs:{\"src\":image + '?token=' + _vm.tempToken,\"alt\":\"banner\"}})])])}),1),_c('a',{attrs:{\"href\":_vm.excelurl +\n '/v2/challan/download/' +\n _vm.challan_no +\n '?organization_id=' +\n _vm.organization_id +\n '&token=' +\n _vm.tempToken,\"target\":\"_blank\"}},[_c('vs-button',{staticClass:\"px-4\"},[_c('span',{staticClass:\"d-inline-flex pr-5 text-white\"},[_vm._v(\"Download\")])])],1),_c('div',{staticClass:\"vx-col w-full py-5\"},[_c('div',{staticClass:\"mx-0 row mb-6\"},[_c('div',{staticClass:\"col-6\"},[_c('div',[_c('p',{staticClass:\"text-muted small mb-1\"},[_vm._v(\"Challan Name:\")]),_c('div',{},[_c('h5',[_vm._v(_vm._s(challan.challan_no))])])])]),_c('div',{staticClass:\"col-6\"},[_c('div',[_c('p',{staticClass:\"text-muted small mb-1\"},[_vm._v(\"\\n Challan Description:\\n \")]),_c('div',{},[_c('h5',[_vm._v(_vm._s(challan.challan_description))])])])])]),_c('div',{staticClass:\"mx-0 row mb-6\"},[_c('div',{staticClass:\"col-6\"},[_c('div',[_c('p',{staticClass:\"text-muted small mb-1\"},[_vm._v(\"Challan Amount\")]),_c('div',{},[_c('h5',[_vm._v(\"\\n \"+_vm._s(challan.currency)+\" \"+_vm._s(challan.challan_amount)+\"\\n \")])])])]),_c('div',{staticClass:\"col-6\"},[_c('div',[_c('p',{staticClass:\"text-muted small mb-1\"},[_vm._v(\"Created By:\")]),_c('div',{},[_c('h5',[_vm._v(_vm._s(challan.user_name))])])])])]),_c('div',{staticClass:\"mx-0 row mb-6\"},[_c('div',{staticClass:\"col-6\"},[_c('div',[_c('p',{staticClass:\"text-muted small mb-1\"},[_vm._v(\"PO Name:\")]),_c('div',{},[_c('h5',[_vm._v(_vm._s(challan.po_name))])])])])])])],1)])])}),_c('div',{staticClass:\"swiper-pagination\",attrs:{\"slot\":\"pagination\"},slot:\"pagination\"}),_c('div',{staticClass:\"swiper-button-prev swiper-button-white\",attrs:{\"slot\":\"button-prev\"},slot:\"button-prev\"}),_c('div',{staticClass:\"swiper-button-next swiper-button-white\",attrs:{\"slot\":\"button-next\"},slot:\"button-next\"})],2):_c('div',[_c('h3',[_vm._v(\"NO DATA FOUND\")])])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","