{"version":3,"sources":["webpack://nmrMetadata/webpack/universalModuleDefinition","webpack://nmrMetadata/webpack/bootstrap","webpack://nmrMetadata/./node_modules/jszip/lib/utils.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/index.js","webpack://nmrMetadata/./node_modules/ml-sparse-matrix/src/SparseMatrix.js","webpack://nmrMetadata/./node_modules/jszip/lib/stream/GenericWorker.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/matrix.js","webpack://nmrMetadata/./node_modules/is-any-array/src/index.js","webpack://nmrMetadata/./node_modules/jszip/lib/support.js","webpack://nmrMetadata/(webpack)/buildin/global.js","webpack://nmrMetadata/./node_modules/pako/lib/utils/common.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/views/base.js","webpack://nmrMetadata/./node_modules/inherits/inherits_browser.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","webpack://nmrMetadata/./node_modules/ml-stat/index.js","webpack://nmrMetadata/./node_modules/spectra-nmr-utilities/src/index.js","webpack://nmrMetadata/./node_modules/lodash.round/index.js","webpack://nmrMetadata/./node_modules/jszip/lib/utf8.js","webpack://nmrMetadata/./node_modules/buffer/index.js","webpack://nmrMetadata/./node_modules/brukerconverter/src/brukerconverter.js","webpack://nmrMetadata/./node_modules/process/browser.js","webpack://nmrMetadata/./node_modules/core-util-is/lib/util.js","webpack://nmrMetadata/./node_modules/jszip/lib/external.js","webpack://nmrMetadata/./node_modules/ml-fft/src/index.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/util.js","webpack://nmrMetadata/./node_modules/process-nextick-args/index.js","webpack://nmrMetadata/./node_modules/jszip/lib/nodejsUtils.js","webpack://nmrMetadata/./node_modules/ml-simple-clustering/src/index.js","webpack://nmrMetadata/./node_modules/num-sort/index.js","webpack://nmrMetadata/./node_modules/ml-gsd/src/index.js","webpack://nmrMetadata/./node_modules/ml-matrix-peaks-finder/src/index.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/dc/util.js","webpack://nmrMetadata/./node_modules/events/events.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/readable-browser.js","webpack://nmrMetadata/./node_modules/safe-buffer/index.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","webpack://nmrMetadata/./node_modules/jszip/lib/compressedObject.js","webpack://nmrMetadata/./node_modules/jszip/lib/crc32.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/messages.js","webpack://nmrMetadata/./node_modules/ml-hclust/src/Cluster.js","webpack://nmrMetadata/./node_modules/jcampconverter/src/index.js","webpack://nmrMetadata/./node_modules/new-array/index.js","webpack://nmrMetadata/./node_modules/binary-search/index.js","webpack://nmrMetadata/./node_modules/ml-array-utils/src/index.js","webpack://nmrMetadata/./node_modules/spectra-data/src/jcampEncoder/VectorEncoder.js","webpack://nmrMetadata/./node_modules/utf8/utf8.js","webpack://nmrMetadata/./node_modules/ml-stat/array.js","webpack://nmrMetadata/./node_modules/ml-savitzky-golay-generalized/node_modules/ml-stat/array.js","webpack://nmrMetadata/./node_modules/ml-optimize-lorentzian/src/index.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/abstractMatrix.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/dc/lu.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/dc/svd.js","webpack://nmrMetadata/./node_modules/ml-curve-fitting/src/algebra.js","webpack://nmrMetadata/./node_modules/isarray/index.js","webpack://nmrMetadata/./node_modules/jszip/lib/readable-stream-browser.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack://nmrMetadata/./node_modules/timers-browserify/main.js","webpack://nmrMetadata/./node_modules/string_decoder/lib/string_decoder.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","webpack://nmrMetadata/./node_modules/jszip/lib/base64.js","webpack://nmrMetadata/./node_modules/jszip/lib/stream/StreamHelper.js","webpack://nmrMetadata/./node_modules/jszip/lib/defaults.js","webpack://nmrMetadata/./node_modules/jszip/lib/stream/DataWorker.js","webpack://nmrMetadata/./node_modules/jszip/lib/stream/DataLengthProbe.js","webpack://nmrMetadata/./node_modules/jszip/lib/stream/Crc32Probe.js","webpack://nmrMetadata/./node_modules/jszip/lib/compressions.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/adler32.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/crc32.js","webpack://nmrMetadata/./node_modules/pako/lib/utils/strings.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/zstream.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/constants.js","webpack://nmrMetadata/./node_modules/jszip/lib/signature.js","webpack://nmrMetadata/./node_modules/jszip/lib/reader/readerFor.js","webpack://nmrMetadata/./node_modules/jszip/lib/reader/ArrayReader.js","webpack://nmrMetadata/./node_modules/jszip/lib/reader/DataReader.js","webpack://nmrMetadata/./node_modules/jszip/lib/reader/Uint8ArrayReader.js","webpack://nmrMetadata/./node_modules/ml-distance-euclidean/euclidean.js","webpack://nmrMetadata/./node_modules/ml-hclust/src/ClusterLeaf.js","webpack://nmrMetadata/./node_modules/ml-fft/src/fftlib.js","webpack://nmrMetadata/./node_modules/ml-matrix-convolution/node_modules/ml-fft/src/fftlib.js","webpack://nmrMetadata/./src/getMetadata.js","webpack://nmrMetadata/./src/getSpectrumType.js","webpack://nmrMetadata/./src/getNucleusFrom2DExperiment.js","webpack://nmrMetadata/./node_modules/median-quickselect/lib/median-quickselect.min.js","webpack://nmrMetadata/./node_modules/ml-hclust/src/index.js","webpack://nmrMetadata/./src/index.js","webpack://nmrMetadata/./node_modules/ml-array-utils/src/ArrayUtils.js","webpack://nmrMetadata/./node_modules/ml-stat/matrix.js","webpack://nmrMetadata/./node_modules/ml-array-utils/src/getEquallySpaced.js","webpack://nmrMetadata/./node_modules/ml-array-utils/src/snv.js","webpack://nmrMetadata/./node_modules/ml-gsd/src/gsd.js","webpack://nmrMetadata/./node_modules/ml-savitzky-golay-generalized/src/index.js","webpack://nmrMetadata/./node_modules/extend/index.js","webpack://nmrMetadata/./node_modules/ml-savitzky-golay-generalized/node_modules/ml-stat/index.js","webpack://nmrMetadata/./node_modules/ml-savitzky-golay-generalized/node_modules/ml-stat/matrix.js","webpack://nmrMetadata/./node_modules/ml-gsd/src/post/optimizePeaks.js","webpack://nmrMetadata/./node_modules/ml-curve-fitting/src/index.js","webpack://nmrMetadata/./node_modules/ml-curve-fitting/src/LM.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/symbol-species.js","webpack://nmrMetadata/./node_modules/ml-matrix/node_modules/ml-array-utils/src/index.js","webpack://nmrMetadata/./node_modules/ml-matrix/node_modules/ml-array-utils/src/ArrayUtils.js","webpack://nmrMetadata/./node_modules/ml-matrix/node_modules/ml-array-utils/src/getEquallySpaced.js","webpack://nmrMetadata/./node_modules/ml-matrix/node_modules/ml-array-utils/src/snv.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/views/transpose.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/views/row.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/views/sub.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/views/selection.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/views/column.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/views/flipRow.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/views/flipColumn.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/decompositions.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/dc/evd.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/dc/qr.js","webpack://nmrMetadata/./node_modules/ml-matrix/src/dc/cholesky.js","webpack://nmrMetadata/./node_modules/ml-gsd/src/post/joinBroadPeaks.js","webpack://nmrMetadata/./node_modules/ml-gsd/src/post/broadenPeaks.js","webpack://nmrMetadata/./node_modules/brukerconverter/node_modules/jcampconverter/src/index.js","webpack://nmrMetadata/./node_modules/iobuffer/lib-esm/IOBuffer.js","webpack://nmrMetadata/./node_modules/jszip/lib/index.js","webpack://nmrMetadata/./node_modules/jszip/lib/object.js","webpack://nmrMetadata/./node_modules/base64-js/index.js","webpack://nmrMetadata/./node_modules/ieee754/index.js","webpack://nmrMetadata/./node_modules/stream-browserify/index.js","webpack://nmrMetadata/util (ignored)","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack://nmrMetadata/util (ignored)?f4b1","webpack://nmrMetadata/./node_modules/setimmediate/setImmediate.js","webpack://nmrMetadata/./node_modules/util-deprecate/browser.js","webpack://nmrMetadata/./node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/writable-browser.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/duplex-browser.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/transform.js","webpack://nmrMetadata/./node_modules/stream-browserify/node_modules/readable-stream/passthrough.js","webpack://nmrMetadata/./node_modules/set-immediate-shim/index.js","webpack://nmrMetadata/./node_modules/lie/lib/browser.js","webpack://nmrMetadata/./node_modules/immediate/lib/browser.js","webpack://nmrMetadata/./node_modules/jszip/lib/stream/ConvertWorker.js","webpack://nmrMetadata/./node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js","webpack://nmrMetadata/./node_modules/jszip/lib/zipObject.js","webpack://nmrMetadata/./node_modules/jszip/lib/generate/index.js","webpack://nmrMetadata/./node_modules/jszip/lib/flate.js","webpack://nmrMetadata/./node_modules/pako/index.js","webpack://nmrMetadata/./node_modules/pako/lib/deflate.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/deflate.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/trees.js","webpack://nmrMetadata/./node_modules/pako/lib/inflate.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/inflate.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/inffast.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/inftrees.js","webpack://nmrMetadata/./node_modules/pako/lib/zlib/gzheader.js","webpack://nmrMetadata/./node_modules/jszip/lib/generate/ZipFileWorker.js","webpack://nmrMetadata/./node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js","webpack://nmrMetadata/./node_modules/jszip/lib/load.js","webpack://nmrMetadata/./node_modules/jszip/lib/zipEntries.js","webpack://nmrMetadata/./node_modules/jszip/lib/reader/StringReader.js","webpack://nmrMetadata/./node_modules/jszip/lib/reader/NodeBufferReader.js","webpack://nmrMetadata/./node_modules/jszip/lib/zipEntry.js","webpack://nmrMetadata/./node_modules/ml-hclust/src/agnes.js","webpack://nmrMetadata/./node_modules/heap/index.js","webpack://nmrMetadata/./node_modules/heap/lib/heap.js","webpack://nmrMetadata/./node_modules/util/util.js","webpack://nmrMetadata/./node_modules/util/support/isBufferBrowser.js","webpack://nmrMetadata/./node_modules/ml-distance-matrix/src/index.js","webpack://nmrMetadata/./node_modules/ml-hclust/src/diana.js","webpack://nmrMetadata/./node_modules/ml-hash-table/src/HashTable.js","webpack://nmrMetadata/./node_modules/ml-hash-table/src/primeFinder.js","webpack://nmrMetadata/./node_modules/number-is-nan/index.js","webpack://nmrMetadata/./node_modules/ml-fft/src/FFTUtils.js","webpack://nmrMetadata/./node_modules/ml-matrix-convolution/src/index.js","webpack://nmrMetadata/./node_modules/ml-matrix-convolution/node_modules/ml-fft/src/index.js","webpack://nmrMetadata/./node_modules/ml-matrix-convolution/node_modules/ml-fft/src/FFTUtils.js","webpack://nmrMetadata/./node_modules/ml-matrix-peaks-finder/src/ccLabeling.js","webpack://nmrMetadata/./node_modules/ml-disjoint-set/src/DisjointSet.js","webpack://nmrMetadata/./node_modules/ml-array-min/lib-es6/index.js","webpack://nmrMetadata/./node_modules/ml-array-max/lib-es6/index.js","webpack://nmrMetadata/./node_modules/ml-array-median/lib-es6/index.js","webpack://nmrMetadata/./node_modules/ml-array-rescale/lib-es6/index.js","webpack://nmrMetadata/./node_modules/spectra-data/src/jcampEncoder/JcampCreator.js","webpack://nmrMetadata/./node_modules/spectra-data/src/peakPicking/peakPicking.js","webpack://nmrMetadata/./node_modules/spectra-data/src/SD.js","webpack://nmrMetadata/./node_modules/nmr-simulation/src/SpinSystem.js","webpack://nmrMetadata/./node_modules/nmr-simulation/src/pauli.js","webpack://nmrMetadata/./node_modules/nmr-simulation/src/simulate1D.js","webpack://nmrMetadata/./node_modules/nmr-simulation/src/simulate2D.js","webpack://nmrMetadata/./node_modules/nmr-simulation/src/index.js","webpack://nmrMetadata/./node_modules/spectra-data/src/filters/fourierTransform.js","webpack://nmrMetadata/./node_modules/spectra-data/src/filters/zeroFilling.js","webpack://nmrMetadata/./node_modules/spectra-data/src/filters/phaseCorrection.js","webpack://nmrMetadata/./node_modules/spectra-data/src/filters/rotate.js","webpack://nmrMetadata/./node_modules/spectra-data/src/filters/digitalFilter.js","webpack://nmrMetadata/./node_modules/spectra-data/src/filters/absoluteValue.js","webpack://nmrMetadata/./node_modules/spectra-data/src/filters/Filters.js","webpack://nmrMetadata/./node_modules/spectra-data-ranges/src/acs/acs.js","webpack://nmrMetadata/./node_modules/spectra-data-ranges/src/range/peak2Vector.js","webpack://nmrMetadata/./node_modules/spectra-data-ranges/src/range/Ranges.js","webpack://nmrMetadata/./node_modules/spectra-data-ranges/src/index.js","webpack://nmrMetadata/./node_modules/spectra-data/src/peakPicking/jAnalyzer.js","webpack://nmrMetadata/./node_modules/spectra-data/src/peakPicking/impurities.js","webpack://nmrMetadata/./node_modules/spectra-data/src/peakPicking/ImpurityRemover.js","webpack://nmrMetadata/./node_modules/spectra-data/src/peakPicking/peaks2Ranges.js","webpack://nmrMetadata/./node_modules/spectra-data/src/NMR.js","webpack://nmrMetadata/./node_modules/spectra-data/src/peakPicking/peakOptimizer.js","webpack://nmrMetadata/./node_modules/spectra-data/src/peakPicking/peakPicking2D.js","webpack://nmrMetadata/./node_modules/spectra-data/src/NMR2D.js","webpack://nmrMetadata/./node_modules/spectra-data/src/index.js"],"names":["support","require","base64","nodejsUtils","setImmediate","external","string2binary","str","result","uint8array","Uint8Array","length","Array","stringToArrayLike","exports","newBlob","part","type","checkSupport","Blob","e","Builder","self","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","append","getBlob","Error","identity","input","array","i","charCodeAt","arrayToStringHelper","stringifyByChunk","chunk","k","len","String","fromCharCode","apply","push","slice","Math","min","subarray","join","stringifyByChar","resultStr","applyCanBeUsed","nodebuffer","allocBuffer","arrayLikeToString","getTypeOf","canUseApply","floor","applyFromCharCode","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","buffer","newBufferFrom","byteLength","transformTo","outputType","inputType","Object","prototype","toString","call","isBuffer","arraybuffer","ArrayBuffer","supported","toLowerCase","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","res","code","toUpperCase","delay","callback","args","inherits","ctor","superCtor","Obj","extend","attr","arguments","hasOwnProperty","prepareContent","name","inputData","isBinary","isOptimizedBinaryString","isBase64","promise","Promise","resolve","then","data","isBlob","blob","indexOf","FileReader","reject","reader","onload","target","onerror","error","readAsArrayBuffer","dataType","decode","module","Matrix","Decompositions","DC","HashTable","SparseMatrix","constructor","rows","columns","options","other","_init","elements","clone","threshold","isArray","matrix","j","value","abs","set","eye","initialCapacity","to2DArray","copy","get","isSquare","isSymmetric","symmetric","forEachNonZero","v","cardinality","size","row","column","remove","mmul","console","warn","m","p","v1","l","v2","kroneckerProduct","n","q","forEachPair","key","r","maybeShrinkCapacity","getNonZeros","values","idx","setThreshold","newThreshold","klass","tensorProduct","inplaceOperator","inplaceOperatorScalar","inplaceOperatorMatrix","staticOperator","inplaceMethod","staticMethod","operators","operator","eval","fillTemplateFunction","op","methods","forEach","mathMethod","method","template","replace","RegExp","GenericWorker","streamInfo","generatedError","extraStreamInfo","isPaused","isFinished","isLocked","_listeners","previous","emit","end","flush","cleanUp","on","listener","arg","pipe","next","registerPrevious","mergeStreamInfo","processChunk","pause","resume","withError","withStreamInfo","lock","me","abstractMatrix","util","nRows","nColumns","isMatrix","Number","isInteger","TypeError","RangeError","concat","rowIndex","columnIndex","newMatrix","Symbol","species","removeRow","index","checkRowIndex","splice","addRow","undefined","checkRowVector","removeColumn","checkColumnIndex","addColumn","checkColumnVector","isAnyArray","object","endsWith","string","Buffer","nodestream","Readable","g","Function","window","TYPED_OK","Uint16Array","Int32Array","_has","obj","assign","sources","source","shift","shrinkBuf","buf","fnTyped","arraySet","dest","src","src_offs","dest_offs","flattenChunks","chunks","pos","fnUntyped","setTyped","Buf8","Buf16","Buf32","BaseView","create","super_","enumerable","writable","configurable","TempCtor","pna","objectKeys","keys","Duplex","Writable","readable","allowHalfOpen","once","onend","defineProperty","_writableState","highWaterMark","ended","nextTick","onEndNT","_readableState","destroyed","_destroy","err","cb","patterns","nmrJ","Js","jString","separator","nbDecimal","multiplicity","coupling","toFixed","joinCoupling","signal","tolerance","jc","cont","assignment","pattern","newNmrJs","diaIDs","atoms","sort","a","b","diaID","jTemp","delta","group","signals","distance","nbAtoms","atomIDs","compilePattern","INFINITY","MAX_INTEGER","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","root","objectProto","objectToString","nativeMin","symbolProto","symbolToString","baseToString","isSymbol","createRound","methodName","func","number","precision","toNumber","toInteger","pair","split","isObject","isObjectLike","toFinite","sign","remainder","valueOf","test","round","utils","_utf8len","string2buf","c","c2","m_pos","str_len","buf_len","utf8border","max","buf2string","out","c_len","utf16buf","utf8encode","utf8decode","Utf8DecodeWorker","leftOver","previousData","nextBoundary","usableData","meta","Utf8EncodeWorker","ieee754","SlowBuffer","INSPECT_MAX_BYTES","TYPED_ARRAY_SUPPORT","typedArraySupport","kMaxLength","arr","__proto__","foo","createBuffer","that","encodingOrOffset","allocUnsafe","from","poolSize","_augment","fromArrayBuffer","fromString","fromObject","assertSize","alloc","fill","encoding","checked","allocUnsafeSlow","isEncoding","actual","write","fromArrayLike","byteOffset","isnan","_isBuffer","compare","x","y","list","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","swap16","swap32","swap64","equals","inspect","match","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","dir","isNaN","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","includes","hexWrite","offset","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","isFinite","toJSON","_arr","fromByteArray","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","ret","toHex","bytes","newBuf","sliceLen","checkOffset","ext","readUIntLE","noAssert","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","checkInt","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","objectWriteUInt16","littleEndian","writeUInt16LE","writeUInt16BE","objectWriteUInt32","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","checkIEEE754","writeFloat","writeFloatLE","writeFloatBE","writeDouble","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","trim","units","Infinity","leadSurrogate","byteArray","hi","lo","toByteArray","dst","Converter","IOBuffer","JSZip","BINARY","TEXT","readZIP","zipFile","jsZip","loadAsync","zip","files","ser","fid","acqus","acqu2s","procs","proc2s","folders","filter","relativePath","spectra","promises","currFolder","folder","currFiles","file","async","all","brukerFiles","filename","convert","Date","convert2D","convert1D","twoD","noContours","add2D","profiling","action","time","keepSpectra","xy","spectrum","newData","parseData","temp","info","currKey","setXYSpectrumData","setFIDSpectrumData","sf","swP","nbSubSpectra","$SI","$SF","parseFloat","$SWP","$OFFSET","$TD","$SW","$SWH","$SFO1","$AXNUC","$NUC1","firstY","lastY","$BF2","pageValue","deltaY","store","real","ensureIOBuffer","td","bf","shiftOffsetVal","observeFrequency","$BF1","brukerReference","endian","$BYTORDP","setLittleEndian","setBigEndian","toSave","dataTable","nbPoints","firstX","lastX","xUnit","yUnit","isXYdata","title","TITLE","deltaX","readInt32","keepRecordsRegExp","SW","SF","BF","AQ","DW","nucleus","available","convertTo3DZ","noise","minZ","maxZ","ySize","xSize","z","minX","maxX","minY","maxY","zData","contourLines","generateContourLines","minMax","contourLevels","nbLevels","povarHeight","Float32Array","isOver","nbPovars","pAx","pAy","pBx","pBy","x0","xN","dx","y0","yN","dy","lineZValue","level","contourLevel","side","exp","lines","zValue","iSubSpectra","povar","segments","convertZip","convertFolder","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","setTimeout","clearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","run","Item","browser","env","argv","version","versions","noop","addListener","off","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isUndefined","isRegExp","re","isDate","d","isError","isFunction","isPrimitive","o","ES6Promise","FFTUtils","FFT","outer","vector","to1DArray","checkIndices","rowIndices","columnIndices","rowOut","some","columnOut","checkRange","startRow","endRow","startColumn","endColumn","notAllNumbers","getRange","to","sumByRow","sum","zeros","sumByColumn","sumAll","fn","arg1","arg2","arg3","afterTickOne","afterTickTwo","afterTickThree","afterTick","isNode","isStream","defOptions","fullClusterGenerator","conMat","opt","clList","fullClusterGeneratorVector","conn","resultAsMatrix","sqrt","clusterList","cluster","nextAv","toInclude","numberIsNan","assertNum","asc","desc","gsd","post","optimizePeaks","joinBroadPeaks","broadenPeaks","StatArray","convolution","labeling","smallFilter","DEBUG","findPeaks2DRegion","nStdev","kernel","tmp","matrix2Array","cols","nCols","customFilter","cs","filteredData","fft","nStdDev","bitmask","nbDetectedPoints","pixels","neighbours","peakList","extractPeaks","log","findPeaks2DMax","rowI","colI","peakListMax","tmpIndex","nRow","labels","col","hypotenuse","getEmpty2DArray","getFilled2DArray","R","Reflect","ReflectApply","receiver","ReflectOwnKeys","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","ProcessEmitWarning","warning","NumberIsNaN","EventEmitter","init","_events","_eventsCount","_maxListeners","defaultMaxListeners","getPrototypeOf","setMaxListeners","$getMaxListeners","getMaxListeners","doError","events","er","message","context","handler","arrayClone","_addListener","prepend","existing","newListener","unshift","warned","w","emitter","count","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","position","originalListener","spliceOne","unwrap","evlistener","unwrapListeners","rawListeners","listenerCount","eventNames","pop","Stream","Transform","PassThrough","copyProps","SafeBuffer","WriteReq","CorkedRequest","_this","entry","finish","onCorkedFinish","asyncWrite","WritableState","internalUtil","deprecate","OurUint8Array","_uint8ArrayToBuffer","_isUint8Array","destroyImpl","nop","stream","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","bufferedRequestCount","corkedRequestsFree","getBuffer","current","_","realHasInstance","hasInstance","_write","writev","_writev","destroy","final","_final","writeAfterEnd","validChunk","valid","isBuf","writeOrBuffer","cork","uncork","clearBuffer","setDefaultEncoding","decodeChunk","newChunk","last","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","afterWrite","onwriteDrain","holder","allBuffers","endWritable","callFinal","prefinish","need","corkReq","_undestroy","undestroy","DataWorker","DataLengthProbe","Crc32Probe","CompressedObject","compressedSize","uncompressedSize","crc32","compression","compressedContent","getContentWorker","worker","uncompressWorker","getCompressedWorker","createWorkerFrom","uncompressedWorker","compressionOptions","compressWorker","makeTable","table","crcTable","crc","t","crc32str","crc32wrapper","Heap","Cluster","children","cut","ans","aux","minGroups","heap","first","child","toArray","traverse","visit","getConverter","ntuplesSeparator","GC_MS_FIELDS","convertToFloatArray","stringArray","floatArray","Spectrum","defaultOptions","withoutXY","chromatogram","noContour","nbContourLevels","noiseMultiplier","jcamp","wantXY","now","ntuples","ldr","dataLabel","dataValue","ldrs","endLine","infos","logs","substring","xIndex","yIndex","firstVariable","secondVariable","symbol","vardim","factor","xFactor","yFactor","datatable","prepareSpectrum","fastParseXYData","parsePeakTable","parseXYA","xType","indirectFrequency","shiftOffsetNum","varname","vartype","varform","yType","page","pageSymbol","pageSymbolIndex","unit","isMSField","convertMSFieldToLabel","sampleDescription","newNtuples","complexChromatogram","simpleChromatogram","times","series","ms","dimension","existingGCMSFields","label","intensity","getMedian","compareNumbers","xVector","map","povarHeight0","povarHeight1","povarHeight2","povarHeight3","isOver0","isOver1","isOver2","isOver3","iter","subSpectra","subSpectraAfter","currentData","currentX","currentY","ascii","newLine","isDifference","isLastDifference","lastDifference","isDuplicate","inComment","currentValue","isNegative","inValue","skipFirstValue","decimalPosition","duplicate","ascii2","removeSymbolRegExp","isXYAdata","removeCommentRegExp","peakTableSplitRegExp","isPeaktable","JcampConverter","useWorker","postToWorker","stamps","createWorker","stamp","random","postMessage","JSON","stringify","workerURL","URL","createObjectURL","Worker","revokeObjectURL","addEventListener","event","parse","output","createTree","flatten","flat","stack","ntupleLevel","line","startsWith","newArray","haystack","needle","comparator","low","high","mid","cmp","getEquallySpacedData","SNV","pseudoDigits","SQZ_P","SQZ_N","DIF_P","DIF_N","DUP","MaxLinelength","encode","intervalX","fixEncoding","squeezedEncoding","differenceEncoding","differenceDuplicateEncoding","commaSeparatedValuesEncoding","packedEncoding","outputData","TD","ceil","squeezedDigit","mult","charCount","encodData","encodNumber","diffData","numDiff","differenceDigit","duplicateDigit","num","SQZdigit","charAt","DIFFdigit","DUPdigit","stringFromCharCode","ucs2decode","counter","extra","ucs2encode","checkScalarValue","createByte","encodeCodePoint","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","decodeSymbol","byte1","byte2","byte3","byte4","arithmeticMean","mean","geometricMean","logMean","lnsum","grandMean","means","samples","truncatedMean","percent","alreadySorted","harmonicMean","contraHarmonicMean","r1","r2","median","half","variance","unbiased","theMean","theVariance","standardDeviation","standardError","robustMeanAndStdev","stdev","averageDeviations","quartiles","quart","q1","q2","q3","pooledStandardDeviation","pooledVariance","vari","mode","itemCount","itemArray","maxValue","maxIndex","covariance","vector1","vector2","mean1","mean2","cov","skewness","s2","s3","dev","m2","m3","kurtosis","s4","m4","entropy","eps","weightedMean","weights","weightedStandardDeviation","weightedVariance","center","inPlace","standardize","standardDev","cumulativeSum","LM","math","algebra","sumOfLorentzians","nL","p2","sumOfGaussians","singleLorentzian","singleGaussian","factor2","optimizeSingleLorentzian","peak","opts","xy2","percentage","y_data","weight","dot","LMOptions","consts","dt","p_init","width","p_min","p_max","p_fit","optimize","optimizeSingleGaussian","optimizeLorentzianTrain","currentIndex","nextX","tI","yI","optimizeGaussianTrain","optimizeLorentzianSum","optimizeGaussianSum","nbSeries","transpose","sizeException","LuDecomposition","SvDecomposition","arrayUtils","MatrixTransposeView","MatrixRowView","MatrixSubView","MatrixSelectionView","MatrixColumnView","MatrixFlipRowView","MatrixFlipColumnView","from1DArray","newRows","newColumns","rowVector","columnVector","empty","ones","rand","rng","randInt","diag","matrix1","matrix2","checkMatrix","ii","jj","isRowVector","isColumnVector","isVector","repeat","rowRep","colRep","setSubMatrix","neg","mulS","getRow","getRowVector","setRow","swapRows","row1","row2","getColumn","getColumnVector","setColumn","swapColumns","column1","column2","addRowVector","subRowVector","mulRowVector","divRowVector","addColumnVector","subColumnVector","mulColumnVector","divColumnVector","mulRow","mulColumn","minIndex","maxRow","maxRowIndex","minRow","minRowIndex","maxColumn","maxColumnIndex","minColumn","minColumnIndex","by","prod","Bcolj","s","strassen2x2","a11","b11","a12","b12","a21","b21","a22","b22","m1","m5","m6","m7","c00","c01","c10","c11","strassen3x3","a00","a01","a02","a10","a20","b00","b01","b02","b10","b20","m8","m9","m10","m11","m12","m13","m14","m15","m16","m17","m18","m19","m20","m21","m22","m23","c02","c12","c20","c21","c22","mmulStrassen","c1","embed","mat","resultat","blockMult","halfRows","halfCols","subMatrix","add","scaleRows","scaled","scale","scaleColumns","sortRows","compareFunction","sortColumns","subMatrixRow","indices","subMatrixColumn","selection","trace","transposeView","rowView","columnView","flipRowView","flipColumnView","subMatrixView","selectionView","det","subMatrix0","subMatrix1","subMatrix2","determinant","pseudoInverse","EPSILON","svdSolution","autoTranspose","U","leftSingularVectors","V","rightSingularVectors","diagonal","checkDimensions","otherMatrix","negate","inplaceMethodWithArgs","staticMethodWithArgs","inplaceMethodWithOneArgScalar","inplaceMethodWithOneArgMatrix","inplaceMethodWithOneArg","staticMethodWithOneArg","inplaceOp","inplaceOpS","inplaceOpM","staticOp","inplaceMeth","staticMeth","methodsWithArgs","methodWithArg","inplaceMethWithArgs","staticMethWithArgs","tmplVar","inplaceMethod2","inplaceMethodS","inplaceMethodM","staticMethod2","lu","pivotVector","pivotSign","LUrowi","LUcolj","kmax","LU","isSingular","lowerTriangularMatrix","X","upperTriangularMatrix","pivotPermutationVector","solve","SingularValueDecomposition","nu","wantu","wantv","computeLeftSingularVectors","computeRightSingularVectors","swapped","work","nct","nrt","ks","f","sn","kase","sp","spm1","epm1","sk","ek","pp","condition","norm2","rank","tol","diagonalMatrix","Y","scols","Ls","VL","vrows","urows","VLU","solveForDiagonal","inverse","vcols","ucols","A","B","subtract","multiply","dotMultiply","dotDivide","div","dotPow","inv","ReadableState","EE","EElistenerCount","debugUtil","debug","debuglog","BufferList","StringDecoder","kProxyEvents","readableObjectMode","readableHwm","readableHighWaterMark","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","decoder","_read","skipChunkCheck","readableAddChunk","addToFront","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","emitReadable","setEncoding","enc","MAX_HWM","computeNewHighWaterMark","howMuchToRead","head","nOrig","endReadable","doRead","fromList","emitReadable_","flow","maybeReadMore_","pipeOpts","doEnd","stdout","stderr","endFn","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","pipeOnDrain","cleanedUp","onclose","onfinish","ondata","increasedAwaitDrain","dests","ev","nReadingNextTick","resume_","wrap","paused","_fromList","clear","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","nb","tail","endReadableNT","xs","readableDestroyed","writableDestroyed","emitErrorNT","scope","Timeout","setInterval","clearInterval","close","id","clearFn","_id","_clearFn","unref","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","onTimeout","_onTimeout","clearImmediate","_normalizeEncoding","retried","normalizeEncoding","nenc","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8End","utf8Text","utf8CheckByte","byte","utf8CheckIncomplete","utf8CheckExtraBytes","total","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","_transform","_flush","done","_this2","err2","_keyStr","chr1","chr2","chr3","enc1","enc2","enc3","enc4","remainingBytes","resultIndex","dataUrlPrefix","totalLength","ConvertWorker","NodejsStreamOutputAdapter","transformZipOutput","content","mimeType","dataArray","accumulate","helper","updateCallback","chunkType","_internalType","resultType","_outputType","_mimeType","StreamHelper","internalType","_worker","updateCb","evt","toNodejsStream","binary","createFolders","date","comment","unixPermissions","dosPermissions","DEFAULT_BLOCK_SIZE","dataP","dataIsReady","_tickScheduled","_tickAndRepeat","_tick","nextIndex","propName","STORE","magic","DEFLATE","adler32","adler","s1","STR_APPLY_OK","STR_APPLY_UIA_OK","__","buf2binstring","binstring2buf","ZStream","next_in","avail_in","total_in","next_out","avail_out","total_out","msg","data_type","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","LOCAL_FILE_HEADER","CENTRAL_FILE_HEADER","CENTRAL_DIRECTORY_END","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR","ArrayReader","StringReader","NodeBufferReader","Uint8ArrayReader","DataReader","byteAt","zero","lastIndexOfSignature","sig","sig0","sig1","sig2","sig3","readAndCheckSignature","readData","checkIndex","newIndex","setIndex","skip","readInt","readString","readDate","dostime","UTC","squaredEuclidean","euclidean","squared","ClusterLeaf","release","_n","_bitrev","_cstb","core","_initArray","_makeBitReversalTable","_makeCosSinTable","fft1d","im","ifft1d","bt1d","fft2d","tre","tim","x1","x2","y1","y2","ifft2d","h","ik","wr","wi","xr","xi","n4","Uint32Array","Float64Array","_paddingZero","n2","n8","n2p4","sin","PI","dc","ds","apis","bt","ifft","getSpectrumType","getNucleusFrom2DExperiment","getMetadata","parsedJcamp","metadata","isFid","isFt","maybeAdd","nuc","experiment","toISOString","pulse","spectyp","_ref","agnes","diana","jcampconverter","SD","computeRanges","defaultRangesOptions","nH","thresholdFactor","clean","compile","integralType","parseJcamp","jcampData","jcampString","rangesOptions","ranges","removeImpurities","solvent","removeImpurity","NMR","fromJcamp","getRanges","range","_highlight","signalID","Stat","coordArrayToPoints","dimensions","pointsArr","point","coordArrayToCoordMatrix","coordinatesArray","points","currentPoint","coordMatrixToCoordArray","coordMatrix","coodinatesArray","resultMatrix","pointsToCoordArray","applyDotProduct","firstVector","secondVector","largestVector","smallestVector","difference","dotProductApplied","coordMatrixToPoints","pointsToCoordMatrix","arrayStat","l1","l2","N","theSum","product","theProduct","sum1","sum2","medians","modes","skew","kurt","standardDeviations","standardErrors","sqrtN","scatter","divisor","correlation","scores","zScores","cor","resultRow","sourceRow","weightSum","weightedCovariance","weightedScatter","xLength","reverse","variant","numberOfPoints","getEquallySpacedSlot","getEquallySpacedSmooth","step","halfStep","initialOriginalStep","lastOriginalStep","previousX","MIN_VALUE","previousY","nextY","slope","intercept","sumAtMin","sumAtMax","getSlope","main","integral","lastStep","MAX_VALUE","frontOutsideSpectra","backOutsideSpectra","currentPoints","std","SG","sgOptions","windowSize","polynomial","minMaxRatio","broadRatio","maxCriteria","smoothY","realTopDetection","heightFactor","boundaries","derivativeThreshold","yIn","maxDx","minDx","noiseLevel","getNoiseLevel","yCorrection","dY","ddY","derivative","maxDdy","lastMax","lastMin","minddY","intervalL","intervalR","broadMask","minddYLen","intervalLLen","intervalRLen","broadMaskLen","signalsLen","lastK","possible","frequency","distanceJ","minDistance","gettingCloser","soft","left","right","yLeft","yRight","height","base","stddev","alpha","beta","gamma","log10","stat","SavitzkyGolay","np","fullWeights","hs","constantH","wg1","wg2","d1","d2","getHs","wg","GramPoly","Grampoly","GenFact","gf","Weight","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","isPlainObject","hasOwnConstructor","hasIsPrototypeOf","setProperty","newValue","getProperty","copyIsArray","deep","sampleFunction","lastIndex","sampleX","sampleY","direction","stop","fnType","groups","groupPeaks","sampling","peaks","limits","optPeaks","optPeak","upperLimit","lowerLimit","y_dat","dp","tensor_parameter","iteration","Npar","Npnt","p_old","y_old","X2","X2_old","J","length_t","length_y_dat","corr","sigma_p","sigma_y","R_sq","cvg_hist","prnt","MaxIter","epsilon_1","epsilon_2","epsilon_3","epsilon_4","lambda_0","lambda_UP_fac","lambda_DN_fac","Update_Type","dp_array","Nfit","weight_sq","lm_matx","JtWJ","JtWdy","Chi_sq","y_hat","lambda","hidx","p_try","delta_y","X2_try","JtWdy_th","rho","dX2","lm_FD_J","ps","del","lm_Broyden_J","h_t","Jt","for","currentMin","algorithm","EigenvalueDecomposition","QrDecomposition","CholeskyDecomposition","leftHandSide","rightHandSide","SVD","EVD","QR","CHO","assumeSymmetric","tred2","tql2","H","ort","orthes","hqr2","realEigenvalues","imaginaryEigenvalues","eigenvectorMatrix","hh","dl1","c3","el1","tst1","nn","exshift","norm","ra","sa","vr","vi","notlast","cdivres","cdiv","yr","yi","qr","rdiag","nrm","Rdiag","isFullRank","orthogonalMatrix","positiveDefinite","Lrowj","Lrowk","L","Opt","broadLines","maxI","candidates","indexes","fitted","overlap","nextPeak","lastValue","spaces","labelLine","defaultByteLength","dataIsGiven","lastWrittenByte","dvOffset","_data","DataView","_mark","_marks","isLittleEndian","isBigEndian","seek","mark","reset","pushMark","popMark","rewind","ensureAvailable","lengthNeeded","newLength","readBoolean","readUint8","getInt8","getUint8","readByte","readBytes","readInt16","getInt16","readUint16","getUint16","getInt32","readUint32","getUint32","readFloat32","getFloat32","readFloat64","getFloat64","readChar","readChars","readUtf8","bString","writeBoolean","writeUint8","setInt8","_updateLastWrittenByte","setUint8","writeByte","writeBytes","writeInt16","setInt16","writeUint16","setUint16","writeInt32","setInt32","writeUint32","setUint32","writeFloat32","setFloat32","writeFloat64","setFloat64","writeChar","writeChars","writeUtf8","newObj","defaults","utf8","ZipObject","generate","NodejsStreamInputAdapter","fileAdd","originalOptions","parent","forceTrailingSlash","parentFolder","folderAdd","isUnicodeString","isCompressedEmpty","zipObjectContent","optimizedBinaryString","path","lastSlash","load","search","regexp","newFolder","kids","generateInternalStream","streamFiles","platform","encodeFileName","generateWorker","generateAsync","onUpdate","generateNodeStream","lookup","revLookup","Arr","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","parts","maxChunkLength","len2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","_isStdio","didOnEnd","_classCallCheck","instance","Constructor","copyBuffer","custom","nextHandle","tasksByHandle","currentlyRunningATask","doc","document","registerImmediate","task","handle","runIfPresent","installNextTickImplementation","canUsePostMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","installPostMessageImplementation","messagePrefix","onGlobalMessage","attachEvent","installMessageChannelImplementation","channel","MessageChannel","port1","port2","installReadyStateChangeImplementation","html","documentElement","script","createElement","onreadystatechange","removeChild","appendChild","installSetTimeoutImplementation","attachTo","config","deprecated","localStorage","immediate","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","resolver","outcome","safelyResolveThenable","yes","reason","no","onRejected","onFulfilled","QueueItem","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","returnValue","tryCatch","getThen","status","thenable","appyThen","called","onError","onSuccess","tryToUnwrap","iterable","resolved","allResolver","resolveFromAll","outValue","race","response","Mutation","MutationObserver","WebKitMutationObserver","scheduleDrain","observer","element","createTextNode","observe","characterData","scriptEl","parentNode","oldQueue","destType","_helper","_dataBinary","internalStream","askUnicodeString","_decompressWorker","nodeStream","_compressWorker","removedMethods","removedFn","compressions","ZipFileWorker","getCompression","fileCompression","zipCompression","compressionName","zipFileWorker","entriesCount","USE_TYPEDARRAY","pako","ARRAY_TYPE","FlateWorker","_pako","_pakoAction","_pakoOptions","_createPako","raw","onData","deflate","inflate","constants","zlib_deflate","strings","Deflate","chunkSize","windowBits","memLevel","strategy","gzip","strm","deflateInit2","header","deflateSetHeader","dictionary","dict","deflateSetDictionary","_dict_set","_mode","onEnd","deflateEnd","deflator","deflateRaw","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","flush_pending","pending","pending_buf","pending_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","more","window_size","hash_size","insert","ins_h","hash_shift","hash_mask","deflate_stored","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","_tr_init","deflateReset","deflateInit","old_flush","beg","hcrc","os","level_flags","bstate","_tr_align","_tr_stored_block","dictLength","avail","tmpDict","deflateInfo","STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","stree","bits","xbits","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","build_tree","node","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb","zlib_inflate","GZheader","Inflate","inflateInit2","inflateGetHeader","inflateSetDictionary","next_out_utf8","utf8str","allowBufError","inflateEnd","inflator","inflateRaw","ungzip","inflate_fast","inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPE","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","BAD","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","zswap32","InflateState","havedict","flags","dmax","check","wbits","wsize","whave","wnext","hold","lencode","distcode","lenbits","distbits","ncode","nlen","ndist","have","lendyn","distdyn","sane","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","virgin","lenfix","distfix","fixedtables","sym","updatewindow","put","_in","_out","from_source","here","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","order","inf_leave","xflags","extra_len","dictid","inflateInfo","s_window","lcode","dcode","lmask","dmask","top","dolen","dodist","MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","curr","drop","used","huff","incr","mask","base_index","offs","extra_index","signature","decToHex","dec","hex","generateUnixExternalFileAttr","isDir","generateDosExternalFileAttr","generateZipParts","streamedContent","streamingEnded","useCustomEncoding","encodedFileName","utfEncodedFileName","encodedComment","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","dosTime","dosDate","extraFields","unicodePathExtraField","unicodeCommentExtraField","dataInfo","bitflag","extFileAttr","versionMadeBy","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","fileRecord","dirRecord","generateCentralDirectoryEnd","centralDirLength","localDirLength","dirEnd","generateDataDescriptors","descriptor","bytesWritten","zipComment","zipPlatform","contentBuffer","dirRecords","currentSourceOffset","currentFile","_sources","currentFilePercent","remainingFiles","openedSource","record","closedSource","prepareNextSource","_upstreamEnded","_bindStream","_stream","ZipEntries","checkEntryCRC32","zipEntry","decompressed","checkCRC32","decodeFileName","zipEntries","addFiles","results","fileNameStr","fileCommentStr","readerFor","ZipEntry","loadOptions","checkSignature","expectedSignature","isSignature","askedIndex","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","decodeParamType","decodeContent","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","extraDataSize","extraFieldId","extraFieldLength","extraFieldValue","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","isGarbage","endOfCentralDirOffset","expectedEndOfCentralDirOffset","prepareReader","crc32fn","MADE_BY_DOS","MADE_BY_UNIX","findCompression","compressionMethod","isEncrypted","bitFlag","useUTF8","localExtraFieldsLength","fileNameLength","fileName","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","madeBy","extraReader","upath","findExtraFieldUnicodePath","fileNameByteArray","ucomment","findExtraFieldUnicodeComment","commentByteArray","upathField","ucommentField","distanceMatrix","simpleLink","cluster1","cluster2","disFun","completeLink","averageLink","centroidLink","wardLink","disFunc","kind","isDistanceMatrix","dis","fdistance","sdistance","dmin","clustered","int","diff","indCount","defaultCmp","heapify","heappop","heappush","heappushpop","heapreplace","insort","nlargest","nsmallest","updateItem","_siftdown","_siftup","lastelt","returnitem","_i","_j","_len","_ref1","_results","_results1","elem","los","startpos","newitem","parentpos","childpos","endpos","rightpos","pushpop","nodes","peek","contains","front","has","factory","define","getOwnPropertyDescriptors","descriptors","formatRegExp","format","objects","noDeprecation","throwDeprecation","traceDeprecation","debugs","debugEnviron","NODE_DEBUG","pid","ctx","seen","stylize","stylizeNoColor","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styles","styleType","style","arrayToHash","hash","recurseTimes","primitive","formatPrimitive","visibleKeys","formatError","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","simple","numLinesEst","reduce","cur","ar","pad","months","timestamp","getHours","getMinutes","getSeconds","getDate","getMonth","origin","prop","kCustomPromisifiedSymbol","promisify","original","promiseResolve","promiseReject","setPrototypeOf","defineProperties","callbackifyOnRejected","newReason","callbackify","callbackified","maybeCb","rej","distanceFn","splitting","Ci","Cj","intrDist","ind","M","clId","rebel","C","sG","spl","fData","sData","primeFinder","nextPrime","largestPrime","FREE","FULL","REMOVED","defaultInitialCapacity","defaultMinLoadFactor","defaultMaxLoadFactor","minLoadFactor","maxLoadFactor","distinct","freeEntries","lowWaterMark","capacity","chooseHighWaterMark","indexOfKey","indexOfInsertion","newCapacity","chooseGrowCapacity","rehash","noRehash","delete","chooseShrinkCapacity","containsKey","decrement","containsValue","indexOfValue","ensureCapacity","minCapacity","oldCapacity","oldTable","oldValues","oldState","newTable","newValues","newState","chooseLowWaterMark","forEachKey","forEachValue","minLoad","maxLoad","binarySearch","sortAsc","primeNumbers","ifft2DArray","ft","ftRows","ftCols","tempTransform","tmpCols","iCol","iRow","finalTransform","tmpRows","indexB","fft2DArray","inplace","iRow0","iRow1","iRow2","iRow3","reconstructTwoRealFFT","fourierTransform","realTransform1","realTransform2","rm","rp","ip","convolute2DI","ftSignal","ftFilter","convolute","ftSpectrum","dimR","dimC","ftFilterData","shiftR","shiftC","ir","ic","toRadix2","irow","icol","prows","pcols","crop","destinyRow","convolutionFFT","normalize","kHeight","kWidth","radix2Sized","conv","convolutionDirect","kVal","hHeight","hWidth","LoG","sigma","nPoints","tmp2","sigma2","direct","kernelFactory","DisjointSet","direction4X","direction4Y","neighbours4","direction8X","direction8Y","neighbours8","ccLabeling","directionX","directionY","neighboursList","Int16Array","linked","currentLabel","smallestNeighbor","neighbor","union","find","Map","DisjointSetNode","rootX","rootY","toUpdateX","toUpdateParent","connected","minValue","quickSelectMedian","rescale","currentMax","_options$min","autoMinMax","_options$max","CRLF","defaultParameters","keep","JcampCreator","spectraData","encodeFormat","factorY","limitIntensity","userDefinedParams","outString","setActiveElement","getParamDouble","is2D","getMinMaxY","getMinZ","getMaxZ","scaleX","getDeltaX","getTitle","getParamString","getDataType","ntuplesHead","simpleHead","variableX","getSpectraVariable","variableY","variableZ","nTuplesName","abscVar","getNbSubSpectra","getXUnits","mostCommon","defaultSub","isComplex","isNMR","getNucleus","containsParam","getParamInt","getSolventName","freq1","freq2","getNbPoints","getYUnits","observeFrequencyX","getFirstX","getY","getLastX","getLastY","getZUnits","getParam","yUnits","isDataClassPeak","getX","isDataClassXY","tempString","Encoder","getFirstY","getMaxY","getMinY","widthFactor","realTop","functionName","broadWidth","getVector","outputX","getSpectrumData","GSD","DATACLASS_XY","DATACLASS_PEAK","sd","activeElement","fromXY","nactiveSpectrum","getActiveElement","getSpectrum","setXUnits","getPage","setFirstX","setLastX","setFirstY","setLastY","setDataClass","dataClass","setDataType","getXData","getYData","getXYData","setTitle","newTitle","getNMRPeakThreshold","arrayPointToUnits","doublePoint","unitsToArrayPoint","currentArrayPoint","midPoint","setMinMax","updateFirstLastY","setMin","setMax","yShift","globalShift","updateFirstLastX","currentActiveElement","suppressRange","suppressRanges","zones","zone","getMaxPeak","getSpectraDataY","defvalue","getSpectraDataX","resetMinMax","putParam","getArea","i0","ie","area","updateIntegrals","ArrayUtils","getPointsInWindow","reduceData","xyData","indexOfFrom","indexOfTo","setTotalIntegral","totalIntegralValue","totalIntegral","molecule","mf","setMolfile","molfile","setMF","createPeaks","peakPicking","getPeaks","toJcamp","creator","SpinSystem","chemicalShifts","couplingConstants","nSpins","_initConnectivity","_initClusters","fromSpinusPrediction","nspins","integrals","ids","tokens","nCoup","withID","fromPrediction","predictions","ungroupAtoms","prediction","pred","tempPred","tempJ","clusters","simpleClustering","connectivity","couplings","_calculateBetas","betas","ensureClusterSize","hlClust","_splitCluster","maxClusterSize","_mergeClusters","nClusters","force","_getMembers","members","nElements","clusterA","clusterB","common","createPauli","spin","prjs","pauli2","getPauli","smallValue","simulate1d","spinSystem","lineWidth","frequencyMHz","noiseFactor","lineWidthPointsG","lineWidthPointsL","lnPoints","gaussianLength","gaussian","g2pi","withNoise","clusterFake","sumI","frequencies","intensities","currentSize","hamiltonian","getHamiltonian","hamSize","evd","diagB","assignmentMatrix","multLen","tempMat","rhoip","rhoip2","tV","triuTimesAbs","valFreq","insertIn","numFreq","inte","addPeak","_getX","freq","indexLorentz","conMatrix","clusterHam","A1","B1","kronProd","pos2","S","A2","B2","kron1","simule2DNmrSpectrum","fromLabel","fromAtomLabel","toLabel","frequencyX","frequencyY","lineWidthX","lineWidthY","symmetrize","sigmaX","sigmaY","fromChemicalShift","toChemicalShift","nbPointsX","nbPointsY","spectraMatrix","unitsToArrayPoints","fromAtoms","toAtoms","widthX","widthY","nSigma","fromX","toX","fromY","toY","squareSigmaX","squareSigmaY","exponent","nSubSpectra","spectraType","fcor","updateSpectra","baseFrequency","spectralFrequency","spectralWidth","xMiddle","zeroFilling","zeroFillingX","nbXPoints","phaseCorrection","phi0","phi1","reData","imData","cosTheta","cos","sinTheta","cosThetaNew","sinThetaNew","reTmp","imTmp","rotate","toMove","lastFirstIndex","putInRange","digitalFilter","brukerFilter","rotateX","absoluteValue","imValSquare","globalOptions","nbDecimalDelta","nbDecimalJ","observedFrequency","toAcs","ascending","fromA","fromB","acsString","formatAcs","acs","spectroInformation","acsRanges","pushDelta","parenthesis","formatNucleus","formatMF","frequencyObserved","fromTo","getIntegral","appendSeparator","switchFormat","pubIntegral","pushIntegral","pushMultiplicityFromSignal","char","pushAssignment","pushCoupling","formatAssignment","pubAssignment","peak2Vector","nWidth","functionToUse","lorentzian","Ranges","fromSignals","nSignals","fromSpectrum","shouldIntegrate","sumOfIntegrals","sumObserved","getPeakList","getACS","toIndex","joinCouplings","updateMultiplicity","newRanges","symRatio","maxErrorIter1","maxErrorIter2","symRank","symmetrizeChoiseBest","asymmetric","peaksComp","P1","maxFlagged","Jc","validPattern","heights","getNextCombination","numbering","nFlagged","u","jSum","idealPattern","updateSignal","nbPeaks","startX","stopX","integralData","maskPattern","mask2","abstractPattern","nmrJs","hsum","lng","ok","maxError","symRank1","tmpPeaks","tmpMask","delta1","symRank2","avg","ratio","avgWidth","middle","heightSum","diffL","diffR","chemicalShift","symFactor","newSumHeights","dxi","cdcl3","tms","proton","solvent_residual_peak","h2o","acetic_acid","acetone","acetonitrile","benzene","bhtb","chloroform","cyclohexane","dichloromethane","diethyl_ether","diglyme","dimethylacetamide","dimethylformamide","dimethyl_sulfoxide","dioxane","ethanol","ethyl_acetate","ethyl_methyl_ketone","ethylene_glycol","hmpag","methanol","nitromethane","pyridine","silicone_greasei","tetrahydrofuran","toluene","triethylamine","dmso","c6d6","cd3cn","cd3od","d2o","toCheck","checkImpurity","impurity","diference","solventImpurities","impurities","impurityShifts","frequencyCluster","keepPeaks","createRanges","impurityRemover","detectSignals","nHi","JAnalyzer","peaksO","computeArea","peakR","peaks1","sumIntegral","remark","signal1D","prevPeak","spectrumIntegral","integralPeaks","integralFactor","simulate1D","fromBruker","brukerFile","brukerSpectra","Brukerconverter","converFolder","getMagnitude","Filters","dim","$SOLVENT","postFourierTransform","ph1corr","nPointsX","nPointsY","echoAntiechoFilter","SNVFilter","powerFilter","power","YShift","peaks2Ranges","getResidual","getImpurity","getImpurities","toLocaleLowerCase","fillImpurity","diagonalError","NEGATIVE_INFINITY","enhanceSymmetry","properties","initializeProperties","hits","exist","checkCrossPeaks","completeMissingIfNeeded","toReturn","alignDimensions","signals2D","references","alignSingleDimension","thisSignal","thisProp","addedPeaks","newSignal","tmpProp","nucleusX","nucleusY","resolutionX","resolutionY","shiftX","shiftY","diagX","diagY","updateProperties","crossPeaksX","crossPeaksY","cross","symmetricSearch","distanceTo","signalsProperties","toImage","signal2D","getZones","isHomonuclear","isHomoNuclear","getLoGnStdDevNMR","convolutedSpectrum","peaksMC1","matrixPeakFinders","peaksMax1","PeakOptimizer","createSignals2D","bf1","bf2","observeFrequencyY","getDeltaY","iCluster","peaks2D","minMax1","minMax2","sumZ","jPeak","NMR2D","fromMatrix","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","zUnit","observefrequency","$SW_h","idPrefix","peakPicking2D"],"mappings":"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","file":"nmr-metadata.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"nmrMetadata\"] = factory();\n\telse\n\t\troot[\"nmrMetadata\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 85);\n","'use strict';\n\nvar support = require('./support');\nvar base64 = require('./base64');\nvar nodejsUtils = require('./nodejsUtils');\nvar setImmediate = require('set-immediate-shim');\nvar external = require(\"./external\");\n\n\n/**\n * Convert a string that pass as a \"binary string\": it should represent a byte\n * array but may have > 255 char codes. Be sure to take only the first byte\n * and returns the byte array.\n * @param {String} str the string to transform.\n * @return {Array|Uint8Array} the string in a binary format.\n */\nfunction string2binary(str) {\n var result = null;\n if (support.uint8array) {\n result = new Uint8Array(str.length);\n } else {\n result = new Array(str.length);\n }\n return stringToArrayLike(str, result);\n}\n\n/**\n * Create a new blob with the given content and the given type.\n * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use\n * an Uint8Array because the stock browser of android 4 won't accept it (it\n * will be silently converted to a string, \"[object Uint8Array]\").\n *\n * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge:\n * when a large amount of Array is used to create the Blob, the amount of\n * memory consumed is nearly 100 times the original data amount.\n *\n * @param {String} type the mime type of the blob.\n * @return {Blob} the created blob.\n */\nexports.newBlob = function(part, type) {\n exports.checkSupport(\"blob\");\n\n try {\n // Blob constructor\n return new Blob([part], {\n type: type\n });\n }\n catch (e) {\n\n try {\n // deprecated, browser only, old way\n var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder;\n var builder = new Builder();\n builder.append(part);\n return builder.getBlob(type);\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 * An helper for the function arrayLikeToString.\n * This contains static informations and functions that\n * can be optimized by the browser JIT compiler.\n */\nvar arrayToStringHelper = {\n /**\n * Transform an array of int into a string, chunk by chunk.\n * See the performances notes on arrayLikeToString.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @param {String} type the type of the array.\n * @param {Integer} chunk the chunk size.\n * @return {String} the resulting string.\n * @throws Error if the chunk is too big for the stack.\n */\n stringifyByChunk: function(array, type, chunk) {\n var result = [], k = 0, len = array.length;\n // shortcut\n if (len <= chunk) {\n return String.fromCharCode.apply(null, array);\n }\n while (k < len) {\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 return result.join(\"\");\n },\n /**\n * Call String.fromCharCode on every item in the array.\n * This is the naive implementation, which generate A LOT of intermediate string.\n * This should be used when everything else fail.\n * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform.\n * @return {String} the result.\n */\n stringifyByChar: function(array){\n var resultStr = \"\";\n for(var i = 0; i < array.length; i++) {\n resultStr += String.fromCharCode(array[i]);\n }\n return resultStr;\n },\n applyCanBeUsed : {\n /**\n * true if the browser accepts to use String.fromCharCode on Uint8Array\n */\n uint8array : (function () {\n try {\n return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1;\n } catch (e) {\n return false;\n }\n })(),\n /**\n * true if the browser accepts to use String.fromCharCode on nodejs Buffer.\n */\n nodebuffer : (function () {\n try {\n return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.allocBuffer(1)).length === 1;\n } catch (e) {\n return false;\n }\n })()\n }\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 // TODO : we now have workers that split the work. Do we still need that ?\n var chunk = 65536,\n type = exports.getTypeOf(array),\n canUseApply = true;\n if (type === \"uint8array\") {\n canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array;\n } else if (type === \"nodebuffer\") {\n canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer;\n }\n\n if (canUseApply) {\n while (chunk > 1) {\n try {\n return arrayToStringHelper.stringifyByChunk(array, type, chunk);\n } catch (e) {\n chunk = Math.floor(chunk / 2);\n }\n }\n }\n\n // no apply or chunk error : slow and painful algorithm\n // default browser on android 4.*\n return arrayToStringHelper.stringifyByChar(array);\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, nodejsUtils.allocBuffer(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 nodejsUtils.newBufferFrom(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 nodejsUtils.newBufferFrom(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 nodejsUtils.newBufferFrom(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 && nodejsUtils.isBuffer(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 platform\");\n }\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 * Defer the call of a function.\n * @param {Function} callback the function to call asynchronously.\n * @param {Array} args the arguments to give to the callback.\n */\nexports.delay = function(callback, args, self) {\n setImmediate(function () {\n callback.apply(self || null, args || []);\n });\n};\n\n/**\n * Extends a prototype with an other, without calling a constructor with\n * side effects. Inspired by nodejs' `utils.inherits`\n * @param {Function} ctor the constructor to augment\n * @param {Function} superCtor the parent constructor to use\n */\nexports.inherits = function (ctor, superCtor) {\n var Obj = function() {};\n Obj.prototype = superCtor.prototype;\n ctor.prototype = new Obj();\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 */\nexports.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 * Transform arbitrary content into a Promise.\n * @param {String} name a name for the content being processed.\n * @param {Object} inputData the content to process.\n * @param {Boolean} isBinary true if the content is not an unicode string\n * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character.\n * @param {Boolean} isBase64 true if the string content is encoded with base64.\n * @return {Promise} a promise in a format usable by JSZip.\n */\nexports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) {\n\n // if inputData is already a promise, this flatten it.\n var promise = external.Promise.resolve(inputData).then(function(data) {\n \n \n var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1);\n\n if (isBlob && typeof FileReader !== \"undefined\") {\n return new external.Promise(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onload = function(e) {\n resolve(e.target.result);\n };\n reader.onerror = function(e) {\n reject(e.target.error);\n };\n reader.readAsArrayBuffer(data);\n });\n } else {\n return data;\n }\n });\n\n return promise.then(function(data) {\n var dataType = exports.getTypeOf(data);\n\n if (!dataType) {\n return external.Promise.reject(\n new Error(\"Can't read the data of '\" + name + \"'. Is it \" +\n \"in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\")\n );\n }\n // special case : it's way easier to work with Uint8Array than with ArrayBuffer\n if (dataType === \"arraybuffer\") {\n data = exports.transformTo(\"uint8array\", data);\n } else if (dataType === \"string\") {\n if (isBase64) {\n data = base64.decode(data);\n }\n else if (isBinary) {\n // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask\n if (isOptimizedBinaryString !== true) {\n // this is a string, not in a base64 format.\n // Be sure that this is a correct \"binary string\"\n data = string2binary(data);\n }\n }\n }\n return data;\n });\n};\n","'use strict';\n\nmodule.exports = require('./matrix').Matrix;\nmodule.exports.Decompositions = module.exports.DC = require('./decompositions');\n","const HashTable = require('ml-hash-table');\n\nclass SparseMatrix {\n constructor(rows, columns, options = {}) {\n if (rows instanceof SparseMatrix) { // clone\n const other = rows;\n this._init(other.rows, other.columns, other.elements.clone(), other.threshold);\n return;\n }\n\n if (Array.isArray(rows)) {\n const matrix = rows;\n rows = matrix.length;\n options = columns || {};\n columns = matrix[0].length;\n this._init(rows, columns, new HashTable(options), options.threshold);\n for (var i = 0; i < rows; i++) {\n for (var j = 0; j < columns; j++) {\n var value = matrix[i][j];\n if (this.threshold && Math.abs(value) < this.threshold) value = 0;\n if (value !== 0) {\n this.elements.set(i * columns + j, matrix[i][j]);\n }\n }\n }\n } else {\n this._init(rows, columns, new HashTable(options), options.threshold);\n }\n }\n\n _init(rows, columns, elements, threshold) {\n this.rows = rows;\n this.columns = columns;\n this.elements = elements;\n this.threshold = threshold || 0;\n }\n \n static eye(rows = 1, columns = rows) {\n const min = Math.min(rows, columns);\n const matrix = new SparseMatrix(rows, columns, {initialCapacity: min});\n for (var i = 0; i < min; i++) {\n matrix.set(i, i, 1);\n }\n return matrix;\n }\n\n clone() {\n return new SparseMatrix(this);\n }\n \n to2DArray() {\n const copy = new Array(this.rows);\n for (var i = 0; i < this.rows; i++) {\n copy[i] = new Array(this.columns);\n for (var j = 0; j < this.columns; j++) {\n copy[i][j] = this.get(i, j);\n }\n }\n return copy;\n }\n\n isSquare() {\n return this.rows === this.columns;\n }\n\n isSymmetric() {\n if (!this.isSquare()) return false;\n\n var symmetric = true;\n this.forEachNonZero((i, j, v) => {\n if (this.get(j, i) !== v) {\n symmetric = false;\n return false;\n }\n return v;\n });\n return symmetric;\n }\n\n get cardinality() {\n return this.elements.size;\n }\n\n get size() {\n return this.rows * this.columns;\n }\n\n get(row, column) {\n return this.elements.get(row * this.columns + column);\n }\n\n set(row, column, value) {\n if (this.threshold && Math.abs(value) < this.threshold) value = 0;\n if (value === 0) {\n this.elements.remove(row * this.columns + column);\n } else {\n this.elements.set(row * this.columns + column, value);\n }\n return this;\n }\n \n mmul(other) {\n if (this.columns !== other.rows)\n console.warn('Number of columns of left matrix are not equal to number of rows of right matrix.');\n \n const m = this.rows;\n const p = other.columns;\n \n const result = new SparseMatrix(m, p);\n this.forEachNonZero((i, j, v1) => {\n other.forEachNonZero((k, l, v2) => {\n if (j === k) {\n result.set(i, l, result.get(i, l) + v1 * v2);\n }\n return v2;\n });\n return v1;\n });\n return result;\n }\n\n kroneckerProduct(other) {\n const m = this.rows;\n const n = this.columns;\n const p = other.rows;\n const q = other.columns;\n\n const result = new SparseMatrix(m * p, n * q, {\n initialCapacity: this.cardinality * other.cardinality\n });\n this.forEachNonZero((i, j, v1) => {\n other.forEachNonZero((k, l, v2) => {\n result.set(p * i + k, q * j + l, v1 * v2);\n return v2;\n });\n return v1;\n });\n return result;\n }\n\n forEachNonZero(callback) {\n this.elements.forEachPair((key, value) => {\n const i = (key / this.columns) | 0;\n const j = key % this.columns;\n let r = callback(i, j, value);\n if (r === false) return false; // stop iteration\n if (this.threshold && Math.abs(r) < this.threshold) r = 0;\n if (r !== value) {\n if (r === 0) {\n this.elements.remove(key, true);\n } else {\n this.elements.set(key, r);\n }\n }\n return true;\n });\n this.elements.maybeShrinkCapacity();\n return this;\n }\n\n getNonZeros() {\n const cardinality = this.cardinality;\n const rows = new Array(cardinality);\n const columns = new Array(cardinality);\n const values = new Array(cardinality);\n var idx = 0;\n this.forEachNonZero((i, j, value) => {\n rows[idx] = i;\n columns[idx] = j;\n values[idx] = value;\n idx++;\n return value;\n });\n return {rows, columns, values};\n }\n\n setThreshold(newThreshold) {\n if (newThreshold !== 0 && newThreshold !== this.threshold) {\n this.threshold = newThreshold;\n this.forEachNonZero((i, j, v) => v);\n }\n return this;\n }\n}\n\nSparseMatrix.prototype.klass = 'Matrix';\n\nSparseMatrix.identity = SparseMatrix.eye;\nSparseMatrix.prototype.tensorProduct = SparseMatrix.prototype.kroneckerProduct;\n\nmodule.exports = SparseMatrix;\n\n/*\n Add dynamically instance and static methods for mathematical operations\n */\n\nvar inplaceOperator = `\n(function %name%(value) {\n if (typeof value === 'number') return this.%name%S(value);\n return this.%name%M(value);\n})\n`;\n\nvar inplaceOperatorScalar = `\n(function %name%S(value) {\n this.forEachNonZero((i, j, v) => v %op% value);\n return this;\n})\n`;\n\nvar inplaceOperatorMatrix = `\n(function %name%M(matrix) {\n matrix.forEachNonZero((i, j, v) => {\n this.set(i, j, this.get(i, j) %op% v);\n return v;\n });\n return this;\n})\n`;\n\nvar staticOperator = `\n(function %name%(matrix, value) {\n var newMatrix = new SparseMatrix(matrix);\n return newMatrix.%name%(value);\n})\n`;\n\nvar inplaceMethod = `\n(function %name%() {\n this.forEachNonZero((i, j, v) => %method%(v));\n return this;\n})\n`;\n\nvar staticMethod = `\n(function %name%(matrix) {\n var newMatrix = new SparseMatrix(matrix);\n return newMatrix.%name%();\n})\n`;\n\nvar operators = [\n // Arithmetic operators\n ['+', 'add'],\n ['-', 'sub', 'subtract'],\n ['*', 'mul', 'multiply'],\n ['/', 'div', 'divide'],\n ['%', 'mod', 'modulus'],\n // Bitwise operators\n ['&', 'and'],\n ['|', 'or'],\n ['^', 'xor'],\n ['<<', 'leftShift'],\n ['>>', 'signPropagatingRightShift'],\n ['>>>', 'rightShift', 'zeroFillRightShift']\n];\n\nfor (var operator of operators) {\n for (var i = 1; i < operator.length; i++) {\n SparseMatrix.prototype[operator[i]] = eval(fillTemplateFunction(inplaceOperator, {name: operator[i], op: operator[0]}));\n SparseMatrix.prototype[operator[i] + 'S'] = eval(fillTemplateFunction(inplaceOperatorScalar, {name: operator[i] + 'S', op: operator[0]}));\n SparseMatrix.prototype[operator[i] + 'M'] = eval(fillTemplateFunction(inplaceOperatorMatrix, {name: operator[i] + 'M', op: operator[0]}));\n\n SparseMatrix[operator[i]] = eval(fillTemplateFunction(staticOperator, {name: operator[i]}));\n }\n}\n\nvar methods = [\n ['~', 'not']\n];\n\n[\n 'abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cbrt', 'ceil',\n 'clz32', 'cos', 'cosh', 'exp', 'expm1', 'floor', 'fround', 'log', 'log1p',\n 'log10', 'log2', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc'\n].forEach(function (mathMethod) {\n methods.push(['Math.' + mathMethod, mathMethod]);\n});\n\nfor (var method of methods) {\n for (var i = 1; i < method.length; i++) {\n SparseMatrix.prototype[method[i]] = eval(fillTemplateFunction(inplaceMethod, {name: method[i], method: method[0]}));\n SparseMatrix[method[i]] = eval(fillTemplateFunction(staticMethod, {name: method[i]}));\n }\n}\n\nfunction fillTemplateFunction(template, values) {\n for (var i in values) {\n template = template.replace(new RegExp('%' + i + '%', 'g'), values[i]);\n }\n return template;\n}\n","'use strict';\n\n/**\n * A worker that does nothing but passing chunks to the next one. This is like\n * a nodejs stream but with some differences. On the good side :\n * - it works on IE 6-9 without any issue / polyfill\n * - it weights less than the full dependencies bundled with browserify\n * - it forwards errors (no need to declare an error handler EVERYWHERE)\n *\n * A chunk is an object with 2 attributes : `meta` and `data`. The former is an\n * object containing anything (`percent` for example), see each worker for more\n * details. The latter is the real data (String, Uint8Array, etc).\n *\n * @constructor\n * @param {String} name the name of the stream (mainly used for debugging purposes)\n */\nfunction GenericWorker(name) {\n // the name of the worker\n this.name = name || \"default\";\n // an object containing metadata about the workers chain\n this.streamInfo = {};\n // an error which happened when the worker was paused\n this.generatedError = null;\n // an object containing metadata to be merged by this worker into the general metadata\n this.extraStreamInfo = {};\n // true if the stream is paused (and should not do anything), false otherwise\n this.isPaused = true;\n // true if the stream is finished (and should not do anything), false otherwise\n this.isFinished = false;\n // true if the stream is locked to prevent further structure updates (pipe), false otherwise\n this.isLocked = false;\n // the event listeners\n this._listeners = {\n 'data':[],\n 'end':[],\n 'error':[]\n };\n // the previous worker, if any\n this.previous = null;\n}\n\nGenericWorker.prototype = {\n /**\n * Push a chunk to the next workers.\n * @param {Object} chunk the chunk to push\n */\n push : function (chunk) {\n this.emit(\"data\", chunk);\n },\n /**\n * End the stream.\n * @return {Boolean} true if this call ended the worker, false otherwise.\n */\n end : function () {\n if (this.isFinished) {\n return false;\n }\n\n this.flush();\n try {\n this.emit(\"end\");\n this.cleanUp();\n this.isFinished = true;\n } catch (e) {\n this.emit(\"error\", e);\n }\n return true;\n },\n /**\n * End the stream with an error.\n * @param {Error} e the error which caused the premature end.\n * @return {Boolean} true if this call ended the worker with an error, false otherwise.\n */\n error : function (e) {\n if (this.isFinished) {\n return false;\n }\n\n if(this.isPaused) {\n this.generatedError = e;\n } else {\n this.isFinished = true;\n\n this.emit(\"error\", e);\n\n // in the workers chain exploded in the middle of the chain,\n // the error event will go downward but we also need to notify\n // workers upward that there has been an error.\n if(this.previous) {\n this.previous.error(e);\n }\n\n this.cleanUp();\n }\n return true;\n },\n /**\n * Add a callback on an event.\n * @param {String} name the name of the event (data, end, error)\n * @param {Function} listener the function to call when the event is triggered\n * @return {GenericWorker} the current object for chainability\n */\n on : function (name, listener) {\n this._listeners[name].push(listener);\n return this;\n },\n /**\n * Clean any references when a worker is ending.\n */\n cleanUp : function () {\n this.streamInfo = this.generatedError = this.extraStreamInfo = null;\n this._listeners = [];\n },\n /**\n * Trigger an event. This will call registered callback with the provided arg.\n * @param {String} name the name of the event (data, end, error)\n * @param {Object} arg the argument to call the callback with.\n */\n emit : function (name, arg) {\n if (this._listeners[name]) {\n for(var i = 0; i < this._listeners[name].length; i++) {\n this._listeners[name][i].call(this, arg);\n }\n }\n },\n /**\n * Chain a worker with an other.\n * @param {Worker} next the worker receiving events from the current one.\n * @return {worker} the next worker for chainability\n */\n pipe : function (next) {\n return next.registerPrevious(this);\n },\n /**\n * Same as `pipe` in the other direction.\n * Using an API with `pipe(next)` is very easy.\n * Implementing the API with the point of view of the next one registering\n * a source is easier, see the ZipFileWorker.\n * @param {Worker} previous the previous worker, sending events to this one\n * @return {Worker} the current worker for chainability\n */\n registerPrevious : function (previous) {\n if (this.isLocked) {\n throw new Error(\"The stream '\" + this + \"' has already been used.\");\n }\n\n // sharing the streamInfo...\n this.streamInfo = previous.streamInfo;\n // ... and adding our own bits\n this.mergeStreamInfo();\n this.previous = previous;\n var self = this;\n previous.on('data', function (chunk) {\n self.processChunk(chunk);\n });\n previous.on('end', function () {\n self.end();\n });\n previous.on('error', function (e) {\n self.error(e);\n });\n return this;\n },\n /**\n * Pause the stream so it doesn't send events anymore.\n * @return {Boolean} true if this call paused the worker, false otherwise.\n */\n pause : function () {\n if(this.isPaused || this.isFinished) {\n return false;\n }\n this.isPaused = true;\n\n if(this.previous) {\n this.previous.pause();\n }\n return true;\n },\n /**\n * Resume a paused stream.\n * @return {Boolean} true if this call resumed the worker, false otherwise.\n */\n resume : function () {\n if(!this.isPaused || this.isFinished) {\n return false;\n }\n this.isPaused = false;\n\n // if true, the worker tried to resume but failed\n var withError = false;\n if(this.generatedError) {\n this.error(this.generatedError);\n withError = true;\n }\n if(this.previous) {\n this.previous.resume();\n }\n\n return !withError;\n },\n /**\n * Flush any remaining bytes as the stream is ending.\n */\n flush : function () {},\n /**\n * Process a chunk. This is usually the method overridden.\n * @param {Object} chunk the chunk to process.\n */\n processChunk : function(chunk) {\n this.push(chunk);\n },\n /**\n * Add a key/value to be added in the workers chain streamInfo once activated.\n * @param {String} key the key to use\n * @param {Object} value the associated value\n * @return {Worker} the current worker for chainability\n */\n withStreamInfo : function (key, value) {\n this.extraStreamInfo[key] = value;\n this.mergeStreamInfo();\n return this;\n },\n /**\n * Merge this worker's streamInfo into the chain's streamInfo.\n */\n mergeStreamInfo : function () {\n for(var key in this.extraStreamInfo) {\n if (!this.extraStreamInfo.hasOwnProperty(key)) {\n continue;\n }\n this.streamInfo[key] = this.extraStreamInfo[key];\n }\n },\n\n /**\n * Lock the stream to prevent further updates on the workers chain.\n * After calling this method, all calls to pipe will fail.\n */\n lock: function () {\n if (this.isLocked) {\n throw new Error(\"The stream '\" + this + \"' has already been used.\");\n }\n this.isLocked = true;\n if (this.previous) {\n this.previous.lock();\n }\n },\n\n /**\n *\n * Pretty print the workers chain.\n */\n toString : function () {\n var me = \"Worker \" + this.name;\n if (this.previous) {\n return this.previous + \" -> \" + me;\n } else {\n return me;\n }\n }\n};\n\nmodule.exports = GenericWorker;\n","'use strict';\n\nrequire('./symbol-species');\nvar abstractMatrix = require('./abstractMatrix');\nvar util = require('./util');\n\nclass Matrix extends abstractMatrix(Array) {\n constructor(nRows, nColumns) {\n var i;\n if (arguments.length === 1 && typeof nRows === 'number') {\n return new Array(nRows);\n }\n if (Matrix.isMatrix(nRows)) {\n return nRows.clone();\n } else if (Number.isInteger(nRows) && nRows > 0) { // Create an empty matrix\n super(nRows);\n if (Number.isInteger(nColumns) && nColumns > 0) {\n for (i = 0; i < nRows; i++) {\n this[i] = new Array(nColumns);\n }\n } else {\n throw new TypeError('nColumns must be a positive integer');\n }\n } else if (Array.isArray(nRows)) { // Copy the values from the 2D array\n const matrix = nRows;\n nRows = matrix.length;\n nColumns = matrix[0].length;\n if (typeof nColumns !== 'number' || nColumns === 0) {\n throw new TypeError('Data must be a 2D array with at least one element');\n }\n super(nRows);\n for (i = 0; i < nRows; i++) {\n if (matrix[i].length !== nColumns) {\n throw new RangeError('Inconsistent array dimensions');\n }\n this[i] = [].concat(matrix[i]);\n }\n } else {\n throw new TypeError('First argument must be a positive number or an array');\n }\n this.rows = nRows;\n this.columns = nColumns;\n return this;\n }\n\n set(rowIndex, columnIndex, value) {\n this[rowIndex][columnIndex] = value;\n return this;\n }\n\n get(rowIndex, columnIndex) {\n return this[rowIndex][columnIndex];\n }\n\n /**\n * Creates an exact and independent copy of the matrix\n * @return {Matrix}\n */\n clone() {\n var newMatrix = new this.constructor[Symbol.species](this.rows, this.columns);\n for (var row = 0; row < this.rows; row++) {\n for (var column = 0; column < this.columns; column++) {\n newMatrix.set(row, column, this.get(row, column));\n }\n }\n return newMatrix;\n }\n\n /**\n * Removes a row from the given index\n * @param {number} index - Row index\n * @return {Matrix} this\n */\n removeRow(index) {\n util.checkRowIndex(this, index);\n if (this.rows === 1) {\n throw new RangeError('A matrix cannot have less than one row');\n }\n this.splice(index, 1);\n this.rows -= 1;\n return this;\n }\n\n /**\n * Adds a row at the given index\n * @param {number} [index = this.rows] - Row index\n * @param {Array|Matrix} array - Array or vector\n * @return {Matrix} this\n */\n addRow(index, array) {\n if (array === undefined) {\n array = index;\n index = this.rows;\n }\n util.checkRowIndex(this, index, true);\n array = util.checkRowVector(this, array, true);\n this.splice(index, 0, array);\n this.rows += 1;\n return this;\n }\n\n /**\n * Removes a column from the given index\n * @param {number} index - Column index\n * @return {Matrix} this\n */\n removeColumn(index) {\n util.checkColumnIndex(this, index);\n if (this.columns === 1) {\n throw new RangeError('A matrix cannot have less than one column');\n }\n for (var i = 0; i < this.rows; i++) {\n this[i].splice(index, 1);\n }\n this.columns -= 1;\n return this;\n }\n\n /**\n * Adds a column at the given index\n * @param {number} [index = this.columns] - Column index\n * @param {Array|Matrix} array - Array or vector\n * @return {Matrix} this\n */\n addColumn(index, array) {\n if (typeof array === 'undefined') {\n array = index;\n index = this.columns;\n }\n util.checkColumnIndex(this, index, true);\n array = util.checkColumnVector(this, array);\n for (var i = 0; i < this.rows; i++) {\n this[i].splice(index, 0, array[i]);\n }\n this.columns += 1;\n return this;\n }\n}\n\nexports.Matrix = Matrix;\nMatrix.abstractMatrix = abstractMatrix;\n","'use strict';\n\nconst toString = Object.prototype.toString;\n\nfunction isAnyArray(object) {\n return toString.call(object).endsWith('Array]');\n}\n\nmodule.exports = isAnyArray;\n","'use strict';\n\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\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 = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.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\ntry {\n exports.nodestream = !!require('readable-stream').Readable;\n} catch(e) {\n exports.nodestream = false;\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\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 (_has(source, 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 < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n }\n};\n\nvar fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n};\n\nexports.setTyped(TYPED_OK);\n","'use strict';\n\nvar abstractMatrix = require('../abstractMatrix');\nvar Matrix = require('../matrix');\n\nclass BaseView extends abstractMatrix() {\n constructor(matrix, rows, columns) {\n super();\n this.matrix = matrix;\n this.rows = rows;\n this.columns = columns;\n }\n\n static get [Symbol.species]() {\n return Matrix.Matrix;\n }\n}\n\nmodule.exports = BaseView;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","'use strict';\n\nexports.array = require('./array');\nexports.matrix = require('./matrix');\n","\nconst patterns = ['s', 'd', 't', 'q', 'quint', 'h', 'sept', 'o', 'n'];\n\nfunction nmrJ(Js, options = {}) {\n var jString = '';\n options = Object.assign({}, { separator: ', ', nbDecimal: 2 }, options);\n let j, i;\n for (i = 0; i < Js.length; i++) {\n j = Js[i];\n if (j.length > 11) {\n j += options.separator;\n }\n jString += `${j.multiplicity} ${j.coupling.toFixed(options.nbDecimal)}`;\n }\n return jString;\n}\n\nfunction joinCoupling(signal, tolerance = 0.05) {\n var jc = signal.j;\n if (jc && jc.length > 0) {\n var cont = jc[0].assignment ? jc[0].assignment.length : 1;\n var pattern = '';\n var newNmrJs = [];\n var diaIDs = [];\n var atoms = [];\n jc.sort(function (a, b) {\n return b.coupling - a.coupling;\n });\n if (jc[0].diaID) {\n diaIDs = [jc[0].diaID];\n }\n if (jc[0].assignment) {\n atoms = jc[0].assignment;\n }\n for (var i = 0; i < jc.length - 1; i++) {\n if (Math.abs(jc[i].coupling - jc[i + 1].coupling) < tolerance) {\n cont += jc[i + 1].assignment ? jc[i + 1].assignment.length : 1;\n diaIDs.push(jc[i].diaID);\n atoms = atoms.concat(jc[i + 1].assignment);\n } else {\n let jTemp = {\n coupling: Math.abs(jc[i].coupling),\n multiplicity: patterns[cont]\n };\n if (diaIDs.length > 0) {\n jTemp.diaID = diaIDs;\n }\n if (atoms.length > 0) {\n jTemp.assignment = atoms;\n }\n newNmrJs.push(jTemp);\n if (jc[0].diaID) {\n diaIDs = [jc[i].diaID];\n }\n if (jc[0].assignment) {\n atoms = jc[i].assignment;\n }\n pattern += patterns[cont];\n cont = jc[i + 1].assignment ? jc[i + 1].assignment.length : 1;\n }\n }\n let jTemp = {\n coupling: Math.abs(jc[i].coupling),\n multiplicity: patterns[cont]\n };\n if (diaIDs.length > 0) {\n jTemp.diaID = diaIDs;\n }\n if (atoms.length > 0) {\n jTemp.assignment = atoms;\n }\n newNmrJs.push(jTemp);\n\n pattern += patterns[cont];\n signal.j = newNmrJs;\n } else if (signal.delta) {\n pattern = 's';\n } else {\n pattern = 'm';\n }\n return pattern;\n}\n\nfunction group(signals, options = {}) {\n var i, k;\n for (i = 0; i < signals.length; i++) {\n var j = signals[i].j;\n if (j && j.length > 0) {\n for (k = j.length - 2; k >= 0; k--) {\n for (var m = j.length - 1; m > k; m--) {\n if (j[k].diaID === j[m].diaID &&\n j[k].coupling === j[m].coupling &&\n j[k].distance === j[m].distance) {\n j[k].assignment = j[k].assignment.concat(j[m].assignment);\n j.splice(m, 1);\n }\n }\n }\n }\n }\n signals.sort((a, b) => {\n if (a.diaIDs[0] < b.diaIDs[0]) return -1;\n if (a.diaIDs[0] > b.diaIDs[0]) return 1;\n return 0;\n });\n\n for (i = signals.length - 2; i >= 0; i--) {\n if (signals[i].diaIDs[0] === signals[i + 1].diaIDs[0]) {\n signals[i].nbAtoms += signals[i + 1].nbAtoms;\n signals[i].atomIDs = signals[i].atomIDs.concat(signals[i + 1].atomIDs);\n signals.splice(i + 1, 1);\n }\n }\n\n for (i = 0; i < signals.length; i++) {\n j = signals[i].j;\n if (j) {\n for (k = 0; k < j.length; k++) {\n j[k].multiplicity = patterns[j[k].assignment.length];\n }\n // signals[i].multiplicity = module.exports.compilePattern(signals[i], options.tolerance);\n }\n // console.log(signals[i]);\n signals[i].multiplicity = compilePattern(signals[i], options.tolerance);\n }\n return signals;\n}\n\nfunction compilePattern(signal, tolerance = 0.05) {\n var jc = signal.j;\n var pattern = '';\n if (jc && jc.length > 0) {\n var cont = jc[0].assignment ? jc[0].assignment.length : 0;\n jc.sort(function (a, b) {\n return b.coupling - a.coupling;\n });\n for (var i = 0; i < jc.length - 1; i++) {\n if (Math.abs(jc[i].coupling - jc[i + 1].coupling) < tolerance) {\n cont += jc[i + 1].assignment ? jc[i + 1].assignment.length : 1;\n } else {\n pattern += patterns[cont];\n cont = jc[i + 1].assignment ? jc[i + 1].assignment.length : 1;\n }\n }\n pattern += patterns[cont];\n } else if (signal.delta) {\n pattern = 's';\n } else {\n pattern = 'm';\n }\n return pattern;\n}\n\nmodule.exports = {compilePattern, group, joinCoupling, nmrJ};","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\nfunction createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = nativeMin(toInteger(precision), 292);\n if (precision) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\nvar round = createRound('round');\n\nmodule.exports = round;\n","'use strict';\n\nvar utils = require('./utils');\nvar support = require('./support');\nvar nodejsUtils = require('./nodejsUtils');\nvar GenericWorker = require('./stream/GenericWorker');\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 nodejsUtils.newBufferFrom(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};\n\n/**\n * A worker to decode utf8 encoded binary chunks into string chunks.\n * @constructor\n */\nfunction Utf8DecodeWorker() {\n GenericWorker.call(this, \"utf-8 decode\");\n // the last bytes if a chunk didn't end with a complete codepoint.\n this.leftOver = null;\n}\nutils.inherits(Utf8DecodeWorker, GenericWorker);\n\n/**\n * @see GenericWorker.processChunk\n */\nUtf8DecodeWorker.prototype.processChunk = function (chunk) {\n\n var data = utils.transformTo(support.uint8array ? \"uint8array\" : \"array\", chunk.data);\n\n // 1st step, re-use what's left of the previous chunk\n if (this.leftOver && this.leftOver.length) {\n if(support.uint8array) {\n var previousData = data;\n data = new Uint8Array(previousData.length + this.leftOver.length);\n data.set(this.leftOver, 0);\n data.set(previousData, this.leftOver.length);\n } else {\n data = this.leftOver.concat(data);\n }\n this.leftOver = null;\n }\n\n var nextBoundary = utf8border(data);\n var usableData = data;\n if (nextBoundary !== data.length) {\n if (support.uint8array) {\n usableData = data.subarray(0, nextBoundary);\n this.leftOver = data.subarray(nextBoundary, data.length);\n } else {\n usableData = data.slice(0, nextBoundary);\n this.leftOver = data.slice(nextBoundary, data.length);\n }\n }\n\n this.push({\n data : exports.utf8decode(usableData),\n meta : chunk.meta\n });\n};\n\n/**\n * @see GenericWorker.flush\n */\nUtf8DecodeWorker.prototype.flush = function () {\n if(this.leftOver && this.leftOver.length) {\n this.push({\n data : exports.utf8decode(this.leftOver),\n meta : {}\n });\n this.leftOver = null;\n }\n};\nexports.Utf8DecodeWorker = Utf8DecodeWorker;\n\n/**\n * A worker to endcode string chunks into utf8 encoded binary chunks.\n * @constructor\n */\nfunction Utf8EncodeWorker() {\n GenericWorker.call(this, \"utf-8 encode\");\n}\nutils.inherits(Utf8EncodeWorker, GenericWorker);\n\n/**\n * @see GenericWorker.processChunk\n */\nUtf8EncodeWorker.prototype.processChunk = function (chunk) {\n this.push({\n data : exports.utf8encode(chunk.data),\n meta : chunk.meta\n });\n};\nexports.Utf8EncodeWorker = Utf8EncodeWorker;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","const Converter = require('jcampconverter');\nconst { IOBuffer } = require('iobuffer');\nconst JSZip = require('jszip');\n\nconst BINARY = 1;\nconst TEXT = 2;\n\nfunction readZIP(zipFile, options) {\n options = options || {};\n const jsZip = new JSZip();\n\n return jsZip.loadAsync(zipFile, options).then((zip) => {\n let files = {\n ser: BINARY,\n fid: BINARY,\n acqus: TEXT,\n acqu2s: TEXT,\n procs: TEXT,\n proc2s: TEXT,\n '1r': BINARY,\n '1i': BINARY,\n '2rr': BINARY\n };\n let folders = zip.filter(function (relativePath) {\n if (\n relativePath.endsWith('ser') ||\n relativePath.endsWith('fid') ||\n relativePath.endsWith('1r') ||\n relativePath.endsWith('2rr')\n ) {\n return true;\n }\n return false;\n });\n var spectra = new Array(folders.length);\n\n for (let i = 0; i < folders.length; ++i) {\n var promises = [];\n var name = folders[i].name;\n name = name.substr(0, name.lastIndexOf('/') + 1);\n promises.push(name);\n var currFolder = zip.folder(name);\n var currFiles = currFolder.filter(function (relativePath) {\n return files[relativePath] ? true : false;\n });\n if (name.indexOf('pdata') >= 0) {\n promises.push('acqus');\n promises.push(\n zip.file(name.replace(/pdata\\/[0-9]+\\//, 'acqus')).async('string')\n );\n }\n for (var j = 0; j < currFiles.length; ++j) {\n var idx = currFiles[j].name.lastIndexOf('/');\n var name = currFiles[j].name.substr(idx + 1);\n promises.push(name);\n if (files[name] === BINARY) {\n promises.push(currFiles[j].async('arraybuffer'));\n } else {\n promises.push(currFiles[j].async('string'));\n }\n }\n spectra[i] = Promise.all(promises).then((result) => {\n let brukerFiles = {};\n for (let i = 1; i < result.length; i += 2) {\n let name = result[i];\n brukerFiles[name] = result[i + 1];\n }\n return { filename: result[0], value: convert(brukerFiles, options) };\n });\n }\n return Promise.all(spectra);\n });\n}\n\nfunction convert(brukerFiles, options) {\n options = options || {};\n var start = new Date();\n var result;\n if (brukerFiles.ser || brukerFiles['2rr']) {\n result = convert2D(brukerFiles, options);\n } else if (brukerFiles['1r'] || brukerFiles['1i'] || brukerFiles.fid) {\n result = convert1D(brukerFiles, options);\n } else {\n throw new RangeError('The current files are invalid');\n }\n\n if (result.twoD && !options.noContours) {\n add2D(result);\n if (result.profiling) {\n result.profiling.push({\n action: 'Finished countour plot calculation',\n time: new Date() - start\n });\n }\n if (!options.keepSpectra) {\n delete result.spectra;\n }\n }\n\n var spectra = result.spectra;\n if (options.xy) {\n // the spectraData should not be a oneD array but an object with x and y\n if (spectra.length > 0) {\n for (var i = 0; i < spectra.length; i++) {\n var spectrum = spectra[i];\n if (spectrum.data.length > 0) {\n for (var j = 0; j < spectrum.data.length; j++) {\n var data = spectrum.data[j];\n var newData = {\n x: new Array(data.length / 2),\n y: new Array(data.length / 2)\n };\n for (var k = 0; k < data.length; k = k + 2) {\n newData.x[k / 2] = data[k];\n newData.y[k / 2] = data[k + 1];\n }\n spectrum.data[j] = newData;\n }\n }\n }\n }\n }\n\n return result;\n}\n\nfunction convert1D(files, options) {\n var result = parseData(files.procs || '', options);\n var temp = parseData(files.acqus || '', options);\n\n var keys = Object.keys(temp.info);\n for (var i = 0; i < keys.length; i++) {\n var currKey = keys[i];\n if (result.info[currKey] === undefined) {\n result.info[currKey] = temp.info[currKey];\n }\n }\n\n if (files['1r'] || files['1i']) {\n if (files['1r']) {\n setXYSpectrumData(files['1r'], result, '1r', true);\n }\n if (files['1i']) {\n setXYSpectrumData(files['1i'], result, '1i', false);\n }\n } else if (files.fid) {\n setFIDSpectrumData(files.fid, result);\n }\n\n return result;\n}\n\nfunction convert2D(files, options) {\n var sf, swP, offset;\n if (files['2rr']) {\n var result = parseData(files.procs, options);\n var temp = parseData(files.acqus, options);\n\n var keys = Object.keys(temp.info);\n for (var i = 0; i < keys.length; i++) {\n var currKey = keys[i];\n if (result.info[currKey] === undefined) {\n result.info[currKey] = temp.info[currKey];\n }\n }\n\n temp = parseData(files.proc2s, options);\n result.info.nbSubSpectra = temp.info.$SI = parseInt(temp.info.$SI);\n sf = temp.info.$SF = parseFloat(temp.info.$SF);\n swP = temp.info.$SWP = parseFloat(temp.info.$SWP);\n offset = temp.info.$OFFSET = parseFloat(temp.info.$OFFSET);\n } else if (files.ser) {\n result = parseData(files.acqus, options);\n temp = parseData(files.acqu2s, options);\n result.info.nbSubSpectra = temp.info.$SI = parseInt(temp.info.$TD);\n result.info.$SI = parseInt(result.info.$TD);\n // SW_p = temp.info['$SWH'] = parseFloat(temp.info['$SWH']);\n\n swP = temp.info.$SW;\n\n result.info.$SWP = result.info.$SWH;\n result.info.$SF = parseFloat(temp.info.$SFO1);\n result.info.$OFFSET = 0;\n sf = temp.info.$SFO1 = parseFloat(temp.info.$SFO1);\n sf = 1;\n offset = 0;\n result.info.$AXNUC = result.info.$NUC1;\n temp.info.$AXNUC = temp.info.$NUC1;\n }\n\n result.info.firstY = offset;\n result.info.lastY = offset - swP / sf;\n result.info.$BF2 = sf;\n result.info.$SFO1 = sf;\n\n var nbSubSpectra = result.info.nbSubSpectra;\n var pageValue = result.info.firstY;\n var deltaY = (result.info.lastY - result.info.firstY) / (nbSubSpectra - 1);\n\n if (files['2rr']) {\n setXYSpectrumData(files['2rr'], result, '2rr', true);\n } else if (files.ser) {\n setFIDSpectrumData(files.ser, result, 'ser', true);\n }\n\n for (let i = 0; i < nbSubSpectra; i++) {\n pageValue += deltaY;\n result.spectra[i].pageValue = pageValue;\n }\n\n // var dataType = files.ser ? 'TYPE_2DNMR_FID' : 'TYPE_2DNMR_SPECTRUM';\n\n result.info['2D_Y_NUCLEUS'] = temp.info.$AXNUC;\n result.info['2D_X_NUCLEUS'] = result.info.$AXNUC;\n result.info['2D_Y_FRECUENCY'] = sf;\n result.info['2D_Y_OFFSET'] = offset;\n result.info['2D_X_FRECUENCY'] = result.info.$SF;\n result.info['2D_X_OFFSET'] = result.info.$OFFSET;\n\n result.twoD = true;\n\n return result;\n}\n\nfunction setXYSpectrumData(file, spectra, store, real) {\n file = ensureIOBuffer(file);\n var td = (spectra.info.$SI = parseInt(spectra.info.$SI));\n\n var swP = parseFloat(spectra.info.$SWP);\n var sf = parseFloat(spectra.info.$SF);\n var bf = sf;\n\n // var BF = parseFloat(spectra.info[\"$BF1\"]);\n var offset = spectra.shiftOffsetVal || parseFloat(spectra.info.$OFFSET);\n\n spectra.info.observeFrequency = sf;\n spectra.info.$BF1 = bf;\n spectra.info.$SFO1 = sf;\n spectra.info.brukerReference = bf;\n\n var endian = parseInt(spectra.info.$BYTORDP);\n endian = endian ? 0 : 1;\n\n // number of spectras\n var nbSubSpectra = spectra.info.nbSubSpectra ? spectra.info.nbSubSpectra : 1;\n\n if (endian) {\n file.setLittleEndian();\n } else {\n file.setBigEndian();\n }\n\n for (var i = 0; i < nbSubSpectra; i++) {\n var toSave = {\n dataType: 'NMR Spectrum',\n dataTable: '(X++(R..R))',\n nbPoints: td,\n firstX: offset,\n lastX: offset - swP / sf,\n xUnit: 'PPM',\n yUnit: 'Arbitrary',\n data: [new Array(td * 2)], // [{x:new Array(td),y:new Array(td)}],\n isXYdata: true,\n observeFrequency: sf,\n title: spectra.info.TITLE,\n deltaX: -(swP / sf) / (td - 1)\n };\n\n var x = offset;\n var deltaX = toSave.deltaX;\n\n if (real) {\n for (var k = 0; k < td; ++k) {\n toSave.data[0][2 * k] = x;\n toSave.data[0][2 * k + 1] = file.readInt32();\n if (\n toSave.data[0][2 * k + 1] === null ||\n isNaN(toSave.data[0][2 * k + 1])\n ) {\n toSave.data[0][2 * k + 1] = 0;\n }\n x += deltaX;\n }\n } else {\n for (k = td - 1; k >= 0; --k) {\n toSave.data[0][2 * k] = x;\n toSave.data[0][2 * k + 1] = file.readInt32();\n if (\n toSave.data[0][2 * k + 1] === null ||\n isNaN(toSave.data[0][2 * k + 1])\n ) {\n toSave.data[0][2 * k + 1] = 0;\n }\n x += deltaX;\n }\n }\n\n spectra.spectra.push(toSave);\n }\n}\n\nfunction parseData(file, options) {\n var keepRecordsRegExp = /.*/;\n if (options.keepRecordsRegExp) keepRecordsRegExp = options.keepRecordsRegExp;\n return Converter.convert(file, {\n keepRecordsRegExp: keepRecordsRegExp\n });\n}\n\nfunction setFIDSpectrumData(file, spectra) {\n file = ensureIOBuffer(file);\n var td = (spectra.info.$TD = parseInt(spectra.info.$TD));\n\n var SW = (spectra.info.$SW = parseFloat(spectra.info.$SW));\n\n var SF = (spectra.info.$SFO1 = parseFloat(spectra.info.$SFO1));\n var BF = parseFloat(spectra.info.$BF1);\n spectra.info.$BF1 = BF;\n\n // var DW = 1 / (2 * SW_h);\n // var AQ = td * DW;\n var AQ = SW;\n var DW = AQ / (td - 1);\n\n var endian = parseInt(spectra.info.$BYTORDP);\n endian = endian ? 0 : 1;\n\n if (endian) {\n file.setLittleEndian();\n } else {\n file.setBigEndian();\n }\n\n var nbSubSpectra = spectra.info.nbSubSpectra ? spectra.info.nbSubSpectra : 1;\n spectra.spectra = new Array(nbSubSpectra);\n\n for (var j = 0; j < nbSubSpectra / 2; j++) {\n var toSave = {\n dataType: 'NMR FID',\n dataTable: '(X++(R..R))',\n nbPoints: td,\n firstX: 0,\n lastX: AQ,\n nucleus: spectra.info.$NUC1 ? spectra.info.$NUC1 : undefined,\n xUnit: 'Sec',\n yUnit: 'Arbitrary',\n data: [new Array(2 * td)], // [{x:new Array(td),y:new Array(td)}],\n isXYdata: true,\n observeFrequency: SF,\n title: spectra.info.TITLE,\n deltaX: DW\n };\n spectra.spectra[j * 2] = toSave;\n\n toSave = {\n dataType: 'NMR FID',\n dataTable: '(X++(I..I))',\n nbPoints: td,\n firstX: 0,\n lastX: AQ,\n nucleus: spectra.info.$NUC1 ? spectra.info.$NUC1 : undefined,\n xUnit: 'Sec',\n yUnit: 'Arbitrary',\n data: [new Array(2 * td)], // [{x:new Array(td),y:new Array(td)}],\n isXYdata: true,\n observeFrequency: SF,\n title: spectra.info.TITLE,\n deltaX: DW\n };\n spectra.spectra[j * 2 + 1] = toSave;\n\n var x = 0;\n var y;\n for (var i = 0; file.available(8) && i < td; i++, x = i * DW) {\n y = file.readInt32();\n if (y === null || isNaN(y)) {\n y = 0;\n }\n spectra.spectra[j * 2].data[0][2 * i + 1] = y;\n spectra.spectra[j * 2].data[0][2 * i] = x;\n y = file.readInt32();\n if (y === null || isNaN(y)) {\n y = 0;\n }\n spectra.spectra[j * 2 + 1].data[0][2 * i + 1] = y;\n spectra.spectra[j * 2 + 1].data[0][2 * i] = x;\n }\n\n for (; i < td; i++, x = i * DW) {\n spectra.spectra[j * 2].data[0][2 * i + 1] = 0;\n spectra.spectra[j * 2].data[0][2 * i] = x;\n spectra.spectra[j * 2 + 1].data[0][2 * i + 1] = 0;\n spectra.spectra[j * 2 + 1].data[0][2 * i] = x;\n }\n }\n}\n\n/**\n * Those functions should disappear if add2D becomes accessible in jcampconvert\n * @param spectra\n * @returns {{z: Array, minX: *, maxX: *, minY: *, maxY: *, minZ: *, maxZ: *, noise: number}}\n */\n\nfunction convertTo3DZ(spectra) {\n var noise = 0;\n var minZ = spectra[0].data[0][0];\n var maxZ = minZ;\n var ySize = spectra.length;\n var xSize = spectra[0].data[0].length / 2;\n var z = new Array(ySize);\n for (var i = 0; i < ySize; i++) {\n z[i] = new Array(xSize);\n for (var j = 0; j < xSize; j++) {\n z[i][j] = spectra[i].data[0][j * 2 + 1];\n if (z[i][j] < minZ) minZ = spectra[i].data[0][j * 2 + 1];\n if (z[i][j] > maxZ) maxZ = spectra[i].data[0][j * 2 + 1];\n if (i !== 0 && j !== 0) {\n noise +=\n Math.abs(z[i][j] - z[i][j - 1]) + Math.abs(z[i][j] - z[i - 1][j]);\n }\n }\n }\n return {\n z: z,\n minX: spectra[0].data[0][0],\n maxX: spectra[0].data[0][spectra[0].data[0].length - 2],\n minY: spectra[0].pageValue,\n maxY: spectra[ySize - 1].pageValue,\n minZ: minZ,\n maxZ: maxZ,\n noise: noise / ((ySize - 1) * (xSize - 1) * 2)\n };\n}\n\nfunction add2D(result) {\n var zData = convertTo3DZ(result.spectra);\n result.contourLines = generateContourLines(zData);\n delete zData.z;\n result.minMax = zData;\n}\n\nfunction generateContourLines(zData) {\n var noise = zData.noise;\n var z = zData.z;\n var contourLevels = [];\n var nbLevels = 7;\n var povarHeight = new Float32Array(4);\n var isOver = [];\n var nbSubSpectra = z.length;\n var nbPovars = z[0].length;\n var pAx, pAy, pBx, pBy;\n\n var x0 = zData.minX;\n var xN = zData.maxX;\n var dx = (xN - x0) / (nbPovars - 1);\n var y0 = zData.minY;\n var yN = zData.maxY;\n var dy = (yN - y0) / (nbSubSpectra - 1);\n var minZ = zData.minZ;\n var maxZ = zData.maxZ;\n\n // System.out.prvarln('y0 '+y0+' yN '+yN);\n // -------------------------\n // Povars attribution\n //\n // 0----1\n // | / |\n // | / |\n // 2----3\n //\n // ---------------------d------\n\n var lineZValue;\n for (var level = 0; level < nbLevels * 2; level++) {\n // multiply by 2 for positif and negatif\n var contourLevel = {};\n contourLevels.push(contourLevel);\n var side = level % 2;\n if (side === 0) {\n lineZValue =\n (maxZ - 5 * noise) * Math.exp(level / 2 - nbLevels) + 5 * noise;\n } else {\n lineZValue =\n -(maxZ - 5 * noise) * Math.exp(level / 2 - nbLevels) - 5 * noise;\n }\n var lines = [];\n contourLevel.zValue = lineZValue;\n contourLevel.lines = lines;\n\n if (lineZValue <= minZ || lineZValue >= maxZ) continue;\n\n for (var iSubSpectra = 0; iSubSpectra < nbSubSpectra - 1; iSubSpectra++) {\n for (var povar = 0; povar < nbPovars - 1; povar++) {\n povarHeight[0] = z[iSubSpectra][povar];\n povarHeight[1] = z[iSubSpectra][povar + 1];\n povarHeight[2] = z[iSubSpectra + 1][povar];\n povarHeight[3] = z[iSubSpectra + 1][povar + 1];\n\n for (var i = 0; i < 4; i++) {\n isOver[i] = povarHeight[i] > lineZValue;\n }\n\n // Example povar0 is over the plane and povar1 and\n // povar2 are below, we find the varersections and add\n // the segment\n if (isOver[0] !== isOver[1] && isOver[0] !== isOver[2]) {\n pAx =\n povar +\n (lineZValue - povarHeight[0]) / (povarHeight[1] - povarHeight[0]);\n pAy = iSubSpectra;\n pBx = povar;\n pBy =\n iSubSpectra +\n (lineZValue - povarHeight[0]) / (povarHeight[2] - povarHeight[0]);\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0\n );\n }\n if (isOver[3] !== isOver[1] && isOver[3] !== isOver[2]) {\n pAx = povar + 1;\n pAy =\n iSubSpectra +\n 1 -\n (lineZValue - povarHeight[3]) / (povarHeight[1] - povarHeight[3]);\n pBx =\n povar +\n 1 -\n (lineZValue - povarHeight[3]) / (povarHeight[2] - povarHeight[3]);\n pBy = iSubSpectra + 1;\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0\n );\n }\n // test around the diagonal\n if (isOver[1] !== isOver[2]) {\n pAx =\n povar +\n 1 -\n (lineZValue - povarHeight[1]) / (povarHeight[2] - povarHeight[1]);\n pAy =\n iSubSpectra +\n (lineZValue - povarHeight[1]) / (povarHeight[2] - povarHeight[1]);\n if (isOver[1] !== isOver[0]) {\n pBx =\n povar +\n 1 -\n (lineZValue - povarHeight[1]) / (povarHeight[0] - povarHeight[1]);\n pBy = iSubSpectra;\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0\n );\n }\n if (isOver[2] !== isOver[0]) {\n pBx = povar;\n pBy =\n iSubSpectra +\n 1 -\n (lineZValue - povarHeight[2]) / (povarHeight[0] - povarHeight[2]);\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0\n );\n }\n if (isOver[1] !== isOver[3]) {\n pBx = povar + 1;\n pBy =\n iSubSpectra +\n (lineZValue - povarHeight[1]) / (povarHeight[3] - povarHeight[1]);\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0\n );\n }\n if (isOver[2] !== isOver[3]) {\n pBx =\n povar +\n (lineZValue - povarHeight[2]) / (povarHeight[3] - povarHeight[2]);\n pBy = iSubSpectra + 1;\n lines.push(\n pAx * dx + x0,\n pAy * dy + y0,\n pBx * dx + x0,\n pBy * dy + y0\n );\n }\n }\n }\n }\n }\n\n return {\n minX: zData.minX,\n maxX: zData.maxX,\n minY: zData.minY,\n maxY: zData.maxY,\n segments: contourLevels\n };\n}\n\nfunction ensureIOBuffer(data) {\n if (data instanceof Array || data instanceof Uint8Array) {\n data = new ArrayBuffer(data);\n }\n if (data instanceof ArrayBuffer) {\n return new IOBuffer(data);\n }\n return data;\n}\n\nmodule.exports = {\n convertZip: readZIP,\n convertFolder: convert\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","/* global Promise */\n'use strict';\n\n// load the global object first:\n// - it should be better integrated in the system (unhandledRejection in node)\n// - the environment may have a custom Promise implementation (see zone.js)\nvar ES6Promise = null;\nif (typeof Promise !== \"undefined\") {\n ES6Promise = Promise;\n} else {\n ES6Promise = require(\"lie\");\n}\n\n/**\n * Let the user use/change some implementations.\n */\nmodule.exports = {\n Promise: ES6Promise\n};\n","'use strict';\n\nexports.FFTUtils = require(\"./FFTUtils\");\nexports.FFT = require('./fftlib');\n","'use strict';\n\nvar Matrix = require('./matrix');\n\n/**\n * @private\n * Check that a row index is not out of bounds\n * @param {Matrix} matrix\n * @param {number} index\n * @param {boolean} [outer]\n */\nexports.checkRowIndex = function checkRowIndex(matrix, index, outer) {\n var max = outer ? matrix.rows : matrix.rows - 1;\n if (index < 0 || index > max) {\n throw new RangeError('Row index out of range');\n }\n};\n\n/**\n * @private\n * Check that a column index is not out of bounds\n * @param {Matrix} matrix\n * @param {number} index\n * @param {boolean} [outer]\n */\nexports.checkColumnIndex = function checkColumnIndex(matrix, index, outer) {\n var max = outer ? matrix.columns : matrix.columns - 1;\n if (index < 0 || index > max) {\n throw new RangeError('Column index out of range');\n }\n};\n\n/**\n * @private\n * Check that the provided vector is an array with the right length\n * @param {Matrix} matrix\n * @param {Array|Matrix} vector\n * @return {Array}\n * @throws {RangeError}\n */\nexports.checkRowVector = function checkRowVector(matrix, vector) {\n if (vector.to1DArray) {\n vector = vector.to1DArray();\n }\n if (vector.length !== matrix.columns) {\n throw new RangeError('vector size must be the same as the number of columns');\n }\n return vector;\n};\n\n/**\n * @private\n * Check that the provided vector is an array with the right length\n * @param {Matrix} matrix\n * @param {Array|Matrix} vector\n * @return {Array}\n * @throws {RangeError}\n */\nexports.checkColumnVector = function checkColumnVector(matrix, vector) {\n if (vector.to1DArray) {\n vector = vector.to1DArray();\n }\n if (vector.length !== matrix.rows) {\n throw new RangeError('vector size must be the same as the number of rows');\n }\n return vector;\n};\n\nexports.checkIndices = function checkIndices(matrix, rowIndices, columnIndices) {\n var rowOut = rowIndices.some(r => {\n return r < 0 || r >= matrix.rows;\n\n });\n\n var columnOut = columnIndices.some(c => {\n return c < 0 || c >= matrix.columns;\n });\n\n if (rowOut || columnOut) {\n throw new RangeError('Indices are out of range');\n }\n\n if (typeof rowIndices !== 'object' || typeof columnIndices !== 'object') {\n throw new TypeError('Unexpected type for row/column indices');\n }\n if (!Array.isArray(rowIndices)) rowIndices = Array.from(rowIndices);\n if (!Array.isArray(columnIndices)) rowIndices = Array.from(columnIndices);\n\n return {\n row: rowIndices,\n column: columnIndices\n };\n};\n\nexports.checkRange = function checkRange(matrix, startRow, endRow, startColumn, endColumn) {\n if (arguments.length !== 5) throw new TypeError('Invalid argument type');\n var notAllNumbers = Array.from(arguments).slice(1).some(function (arg) {\n return typeof arg !== 'number';\n });\n if (notAllNumbers) throw new TypeError('Invalid argument type');\n if (startRow > endRow || startColumn > endColumn || startRow < 0 || startRow >= matrix.rows || endRow < 0 || endRow >= matrix.rows || startColumn < 0 || startColumn >= matrix.columns || endColumn < 0 || endColumn >= matrix.columns) {\n throw new RangeError('Submatrix indices are out of range');\n }\n};\n\nexports.getRange = function getRange(from, to) {\n var arr = new Array(to - from + 1);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = from + i;\n }\n return arr;\n};\n\nexports.sumByRow = function sumByRow(matrix) {\n var sum = Matrix.Matrix.zeros(matrix.rows, 1);\n for (var i = 0; i < matrix.rows; ++i) {\n for (var j = 0; j < matrix.columns; ++j) {\n sum.set(i, 0, sum.get(i, 0) + matrix.get(i, j));\n }\n }\n return sum;\n};\n\nexports.sumByColumn = function sumByColumn(matrix) {\n var sum = Matrix.Matrix.zeros(1, matrix.columns);\n for (var i = 0; i < matrix.rows; ++i) {\n for (var j = 0; j < matrix.columns; ++j) {\n sum.set(0, j, sum.get(0, j) + matrix.get(i, j));\n }\n }\n return sum;\n};\n\nexports.sumAll = function sumAll(matrix) {\n var v = 0;\n for (var i = 0; i < matrix.rows; i++) {\n for (var j = 0; j < matrix.columns; j++) {\n v += matrix.get(i, j);\n }\n }\n return v;\n};\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","'use strict';\n\nmodule.exports = {\n /**\n * True if this is running in Nodejs, will be undefined in a browser.\n * In a browser, browserify won't include this file and the whole module\n * will be resolved an empty object.\n */\n isNode : typeof Buffer !== \"undefined\",\n /**\n * Create a new nodejs Buffer from an existing content.\n * @param {Object} data the data to pass to the constructor.\n * @param {String} encoding the encoding to use.\n * @return {Buffer} a new Buffer.\n */\n newBufferFrom: function(data, encoding) {\n if (Buffer.from && Buffer.from !== Uint8Array.from) {\n return Buffer.from(data, encoding);\n } else {\n if (typeof data === \"number\") {\n // Safeguard for old Node.js versions. On newer versions,\n // Buffer.from(number) / Buffer(number, encoding) already throw.\n throw new Error(\"The \\\"data\\\" argument must not be a number\");\n }\n return new Buffer(data, encoding);\n }\n },\n /**\n * Create a new nodejs Buffer with the specified size.\n * @param {Integer} size the size of the buffer.\n * @return {Buffer} a new Buffer.\n */\n allocBuffer: function (size) {\n if (Buffer.alloc) {\n return Buffer.alloc(size);\n } else {\n var buf = new Buffer(size);\n buf.fill(0);\n return buf;\n }\n },\n /**\n * Find out if an object is a Buffer.\n * @param {Object} b the object to test.\n * @return {Boolean} true if the object is a Buffer, false otherwise.\n */\n isBuffer : function(b){\n return Buffer.isBuffer(b);\n },\n\n isStream : function (obj) {\n return obj &&\n typeof obj.on === \"function\" &&\n typeof obj.pause === \"function\" &&\n typeof obj.resume === \"function\";\n }\n};\n","/**\n * Created by acastillo on 8/8/16.\n */\n'use strict';\n\nconst defOptions = {\n threshold:0,\n out:\"assignment\"\n};\n//TODO Consider a matrix of distances too\nmodule.exports = function fullClusterGenerator(conMat, opt) {\n const options = Object.assign({}, defOptions, opt);\n var clList, i, j, k;\n if(typeof conMat[0] === \"number\"){\n clList = fullClusterGeneratorVector(conMat);\n }\n else{\n if(typeof conMat[0] === \"object\"){\n var nRows = conMat.length;\n var conn = new Array(nRows*(nRows+1)/2);\n var index = 0;\n for(var i=0;ioptions.threshold)\n conn[index++]= 1;\n else\n conn[index++]= 0;\n }\n }\n clList = fullClusterGeneratorVector(conn);\n }\n }\n if (options.out === \"indexes\" || options.out === \"values\") {\n var result = new Array(clList.length);\n for(i=0;i=0;i--){\n available[i]=1;\n }\n var nextAv=-1;\n var toInclude = [];\n while(remaining>0){\n if(toInclude.length===0){\n //If there is no more elements to include. Start a new cluster\n cluster = new Array(nRows);\n for(i = 0;i < nRows ;i++)\n cluster[i]=0;\n clusterList.push(cluster);\n for(nextAv = 0;available[nextAv]==0;nextAv++){};\n }\n else{\n nextAv=toInclude.splice(0,1);\n }\n cluster[nextAv]=1;\n available[nextAv]=0;\n remaining--;\n //Copy the next available row\n var row = new Array(nRows);\n for( i = 0;i < nRows;i++){\n var c=Math.max(nextAv,i);\n var r=Math.min(nextAv,i);\n //The element in the conn matrix\n //console.log(\"index: \"+r*(2*nRows-r-1)/2+c)\n row[i]=conn[r*(2*nRows-r-1)/2+c];\n //There is new elements to include in this row?\n //Then, include it to the current cluster\n if(row[i]==1&&available[i]==1&&cluster[i]==0){\n toInclude.push(i);\n cluster[i]=1;\n }\n }\n }\n return clusterList;\n}","'use strict';\nvar numberIsNan = require('number-is-nan');\n\nfunction assertNum(x) {\n\tif (typeof x !== 'number' || numberIsNan(x)) {\n\t\tthrow new TypeError('Expected a number');\n\t}\n}\n\nexports.asc = function (a, b) {\n\tassertNum(a);\n\tassertNum(b);\n\treturn a - b;\n};\n\nexports.desc = function (a, b) {\n\tassertNum(a);\n\tassertNum(b);\n\treturn b - a;\n};\n","'use strict';\n\nmodule.exports.gsd = require('./gsd');\n\nmodule.exports.post = {\n optimizePeaks: require('./post/optimizePeaks'),\n joinBroadPeaks: require('./post/joinBroadPeaks'),\n broadenPeaks: require('./post/broadenPeaks')\n};\n","'use strict'\n/**\n * Created by acastillo on 7/7/16.\n */\nvar StatArray = require('ml-stat').array;\nvar convolution = require('ml-matrix-convolution');\nvar labeling = require(\"./ccLabeling\");\n\n\nconst smallFilter = [\n [0, 0, 1, 2, 2, 2, 1, 0, 0],\n [0, 1, 4, 7, 7, 7, 4, 1, 0],\n [1, 4, 5, 3, 0, 3, 5, 4, 1],\n [2, 7, 3, -12, -23, -12, 3, 7, 2],\n [2, 7, 0, -23, -40, -23, 0, 7, 2],\n [2, 7, 3, -12, -23, -12, 3, 7, 2],\n [1, 4, 5, 3, 0, 3, 5, 4, 1],\n [0, 1, 3, 7, 7, 7, 3, 1, 0],\n [0, 0, 1, 2, 2, 2, 1, 0, 0]];\n\nconst DEBUG = false;\n\n/**\n Detects all the 2D-peaks in the given spectrum based on center of mass logic.\n */\nfunction findPeaks2DRegion(input, opt) {\n var options = Object.assign({},{nStdev:3, kernel:smallFilter}, opt);\n var tmp = convolution.matrix2Array(input);\n var inputData = tmp.data;\n var i;\n if(tmp.rows&&tmp.cols){\n options.rows = tmp.rows;\n options.cols = tmp.cols;\n }\n var nRows = options.rows;\n var nCols = options.cols;\n if(!nRows||!nCols){\n throw new Error(\"Invalid number of rows or columns \"+nRows+\" \"+nCols);\n }\n\n var customFilter = options.kernel;\n var cs = options.filteredData;\n if(!cs)\n cs = convolution.fft(inputData, customFilter, options);\n\n var nStdDev = options.nStdev;\n\n var threshold = 0;\n for( i=nCols*nRows-2;i>=0;i--)\n threshold+=Math.pow(cs[i]-cs[i+1],2);\n threshold=-Math.sqrt(threshold);\n threshold*=nStdDev/nRows;\n\n var bitmask = new Array(nCols * nRows);\n for( i=nCols * nRows-1;i>=0;i--){\n bitmask[i]=0;\n }\n var nbDetectedPoints = 0;\n for ( i = cs.length-1; i >=0 ; i--) {\n if (cs[i] < threshold) {\n bitmask[i] = 1;\n nbDetectedPoints++;\n }\n }\n\n var pixels = labeling(bitmask, nCols, nRows, {neighbours:8});\n var peakList = extractPeaks(pixels, inputData, nRows, nCols);\n\n if (peakList.length > 0&&DEBUG) {\n console.log(\"No peak found\");\n }\n return peakList;\n}\n/**\n Detects all the 2D-peaks in the given spectrum based on the Max logic.\n amc\n */\nfunction findPeaks2DMax(input, opt) {\n var options = Object.assign({},{nStdev:3, kernel:smallFilter}, opt);\n var tmp = convolution.matrix2Array(input);\n var inputData = tmp.data;\n\n if(tmp.rows&&tmp.cols){\n options.rows = tmp.rows;\n options.cols = tmp.cols;\n }\n var nRows = options.rows;\n var nCols = options.cols;\n if(!nRows||!nCols){\n throw new Error(\"Invalid number of rows or columns \"+nRows+\" \"+nCols);\n }\n\n var customFilter = options.kernel;\n var cs = options.filteredData;\n if(!cs)\n cs = convolution.fft(inputData, customFilter, options);\n\n\n var nStdDev = options.nStdev;\n var threshold = 0;\n for( var i=nCols*nRows-2;i>=0;i--)\n threshold+=Math.pow(cs[i]-cs[i+1],2);\n threshold=-Math.sqrt(threshold);\n threshold*=nStdDev/nRows;\n\n var rowI,colI;\n var peakListMax = [];\n var tmpIndex = 0;\n for ( var i = 0; i < cs.length; i++) {\n if (cs[i] < threshold) {\n //It is a peak?\n rowI=Math.floor(i/nCols);\n colI=i%nCols;\n //Verifies if this point is a peak;\n if(rowI>0&&rowI+10){\n //It is the minimum in the same row\n if(cs[i] tmp.maxX)\n tmp.maxX = col;\n if( row < tmp.minY)\n tmp.minY = row;\n if( row > tmp.maxY)\n tmp.maxY = row;\n }\n else{\n labels[pixels[i]]={\n x:col*data[i],\n y:row*data[i],\n z:data[i],\n minX:col,\n maxX:col,\n minY:row,\n maxY:row\n };\n }\n }\n }\n var keys = Object.keys(labels);\n var peakList = new Array(keys.length);\n for( i = 0; i < keys.length; i++ ){\n peakList[i] = labels[keys[i]];\n peakList[i].x/=peakList[i].z;\n peakList[i].y/=peakList[i].z;\n }\n return peakList;\n}\n\nmodule.exports={\n findPeaks2DRegion:findPeaks2DRegion,\n findPeaks2DMax:findPeaks2DMax\n};\n","'use strict';\n\nexports.hypotenuse = function hypotenuse(a, b) {\n var r;\n if (Math.abs(a) > Math.abs(b)) {\n r = b / a;\n return Math.abs(a) * Math.sqrt(1 + r * r);\n }\n if (b !== 0) {\n r = a / b;\n return Math.abs(b) * Math.sqrt(1 + r * r);\n }\n return 0;\n};\n\n// For use in the decomposition algorithms. With big matrices, access time is\n// too long on elements from array subclass\n// todo check when it is fixed in v8\n// http://jsperf.com/access-and-write-array-subclass\nexports.getEmpty2DArray = function (rows, columns) {\n var array = new Array(rows);\n for (var i = 0; i < rows; i++) {\n array[i] = new Array(columns);\n }\n return array;\n};\n\nexports.getFilled2DArray = function (rows, columns, value) {\n var array = new Array(rows);\n for (var i = 0; i < rows; i++) {\n array[i] = new Array(columns);\n for (var j = 0; j < columns; j++) {\n array[i][j] = value;\n }\n }\n return array;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = $getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","'use strict';\n\nvar external = require(\"./external\");\nvar DataWorker = require('./stream/DataWorker');\nvar DataLengthProbe = require('./stream/DataLengthProbe');\nvar Crc32Probe = require('./stream/Crc32Probe');\nvar DataLengthProbe = require('./stream/DataLengthProbe');\n\n/**\n * Represent a compressed object, with everything needed to decompress it.\n * @constructor\n * @param {number} compressedSize the size of the data compressed.\n * @param {number} uncompressedSize the size of the data after decompression.\n * @param {number} crc32 the crc32 of the decompressed file.\n * @param {object} compression the type of compression, see lib/compressions.js.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data.\n */\nfunction CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) {\n this.compressedSize = compressedSize;\n this.uncompressedSize = uncompressedSize;\n this.crc32 = crc32;\n this.compression = compression;\n this.compressedContent = data;\n}\n\nCompressedObject.prototype = {\n /**\n * Create a worker to get the uncompressed content.\n * @return {GenericWorker} the worker.\n */\n getContentWorker : function () {\n var worker = new DataWorker(external.Promise.resolve(this.compressedContent))\n .pipe(this.compression.uncompressWorker())\n .pipe(new DataLengthProbe(\"data_length\"));\n\n var that = this;\n worker.on(\"end\", function () {\n if(this.streamInfo['data_length'] !== that.uncompressedSize) {\n throw new Error(\"Bug : uncompressed data size mismatch\");\n }\n });\n return worker;\n },\n /**\n * Create a worker to get the compressed content.\n * @return {GenericWorker} the worker.\n */\n getCompressedWorker : function () {\n return new DataWorker(external.Promise.resolve(this.compressedContent))\n .withStreamInfo(\"compressedSize\", this.compressedSize)\n .withStreamInfo(\"uncompressedSize\", this.uncompressedSize)\n .withStreamInfo(\"crc32\", this.crc32)\n .withStreamInfo(\"compression\", this.compression)\n ;\n }\n};\n\n/**\n * Chain the given worker with other workers to compress the content with the\n * given compresion.\n * @param {GenericWorker} uncompressedWorker the worker to pipe.\n * @param {Object} compression the compression object.\n * @param {Object} compressionOptions the options to use when compressing.\n * @return {GenericWorker} the new worker compressing the content.\n */\nCompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) {\n return uncompressedWorker\n .pipe(new Crc32Probe())\n .pipe(new DataLengthProbe(\"uncompressedSize\"))\n .pipe(compression.compressWorker(compressionOptions))\n .pipe(new DataLengthProbe(\"compressedSize\"))\n .withStreamInfo(\"compression\", compression);\n};\n\nmodule.exports = CompressedObject;\n","'use strict';\n\nvar utils = require('./utils');\n\n/**\n * The following functions come from pako, from pako/lib/zlib/crc32.js\n * released under the MIT license, see pako https://github.com/nodeca/pako/\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, 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// That's all for the pako functions.\n\n/**\n * Compute the crc32 of a string.\n * This is almost the same as the function crc32, but for strings. Using the\n * same function for the two use cases leads to horrible performances.\n * @param {Number} crc the starting value of the crc.\n * @param {String} str the string to use.\n * @param {Number} len the length of the string.\n * @param {Number} pos the starting position for the crc32 computation.\n * @return {Number} the computed crc32.\n */\nfunction crc32str(crc, str, len, pos) {\n var t = crcTable, end = pos + len;\n\n crc = crc ^ (-1);\n\n for (var i = pos; i < end; i++ ) {\n crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\nmodule.exports = function crc32wrapper(input, crc) {\n if (typeof input === \"undefined\" || !input.length) {\n return 0;\n }\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n\n if(isArray) {\n return crc32(crc|0, input, input.length, 0);\n } else {\n return crc32str(crc|0, input, input.length, 0);\n }\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\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","'use strict';\n\nconst Heap = require('heap');\n\nfunction Cluster() {\n this.children = [];\n this.distance = -1;\n this.index = [];\n}\n\n/**\n * Creates an array of values where maximum distance smaller than the threshold\n * @param {number} threshold\n * @return {Array }\n */\nCluster.prototype.cut = function (threshold) {\n if (threshold < 0) throw new RangeError('Threshold too small');\n var root = new Cluster();\n root.children = this.children;\n root.distance = this.distance;\n root.index = this.index;\n var list = [root];\n var ans = [];\n while (list.length > 0) {\n var aux = list.shift();\n if (threshold >= aux.distance) {\n ans.push(aux);\n } else {\n list = list.concat(aux.children);\n }\n }\n return ans;\n};\n\n/**\n * Merge the leaves in the minimum way to have 'minGroups' number of clusters\n * @param {number} minGroups - Them minimum number of children the first level of the tree should have\n * @return {Cluster}\n */\nCluster.prototype.group = function (minGroups) {\n if (!Number.isInteger(minGroups) || minGroups < 1) throw new RangeError('Number of groups must be a positive integer');\n\n const heap = new Heap(function (a, b) {\n return b.distance - a.distance;\n });\n\n heap.push(this);\n\n while (heap.size() < minGroups) {\n var first = heap.pop();\n if (first.children.length === 0) {\n break;\n }\n first.children.forEach(child => heap.push(child));\n }\n\n var root = new Cluster();\n root.children = heap.toArray();\n root.distance = this.distance;\n\n return root;\n};\n\n/**\n * Traverses the tree depth-first and provide callback to be called on each individual node\n * @param {function} cb - The callback to be called on each node encounter\n * @type {Cluster}\n */\nCluster.prototype.traverse = function (cb) {\n function visit(root, callback) {\n callback(root);\n if (root.children) {\n for (var i = root.children.length - 1; i >= 0; i--) {\n visit(root.children[i], callback);\n }\n }\n }\n visit(this, cb);\n};\n\nmodule.exports = Cluster;\n","'use strict';\n\nfunction getConverter() {\n // the following RegExp can only be used for XYdata, some peakTables have values with a \"E-5\" ...\n const ntuplesSeparator = /[, \\t]+/;\n const GC_MS_FIELDS = ['TIC', '.RIC', 'SCANNUMBER'];\n\n function convertToFloatArray(stringArray) {\n var floatArray = [];\n for (let i = 0; i < stringArray.length; i++) {\n floatArray.push(parseFloat(stringArray[i]));\n }\n return floatArray;\n }\n\n class Spectrum {}\n\n const defaultOptions = {\n keepRecordsRegExp: /^$/,\n xy: false,\n withoutXY: false,\n chromatogram: false,\n keepSpectra: false,\n noContour: false,\n nbContourLevels: 7,\n noiseMultiplier: 5,\n profiling: false\n };\n\n function convert(jcamp, options) {\n options = Object.assign({}, defaultOptions, options);\n\n var wantXY = !options.withoutXY;\n\n var start = Date.now();\n\n var ntuples = {};\n var ldr, dataLabel, dataValue, ldrs;\n var position, endLine, infos;\n\n var result = {};\n result.profiling = options.profiling ? [] : false;\n result.logs = [];\n var spectra = [];\n result.spectra = spectra;\n result.info = {};\n var spectrum = new Spectrum();\n\n if (!(typeof jcamp === 'string')) {\n throw new TypeError('the JCAMP should be a string');\n }\n\n if (result.profiling) {\n result.profiling.push({\n action: 'Before split to LDRS',\n time: Date.now() - start\n });\n }\n\n ldrs = jcamp.split(/[\\r\\n]+##/);\n\n if (result.profiling) {\n result.profiling.push({\n action: 'Split to LDRS',\n time: Date.now() - start\n });\n }\n\n if (ldrs[0]) ldrs[0] = ldrs[0].replace(/^[\\r\\n ]*##/, '');\n\n for (let i = 0; i < ldrs.length; i++) {\n ldr = ldrs[i];\n // This is a new LDR\n position = ldr.indexOf('=');\n if (position > 0) {\n dataLabel = ldr.substring(0, position);\n dataValue = ldr.substring(position + 1).trim();\n } else {\n dataLabel = ldr;\n dataValue = '';\n }\n dataLabel = dataLabel.replace(/[_ -]/g, '').toUpperCase();\n\n if (dataLabel === 'DATATABLE') {\n endLine = dataValue.indexOf('\\n');\n if (endLine === -1) endLine = dataValue.indexOf('\\r');\n if (endLine > 0) {\n var xIndex = -1;\n var yIndex = -1;\n // ##DATA TABLE= (X++(I..I)), XYDATA\n // We need to find the variables\n\n infos = dataValue.substring(0, endLine).split(/[ ,;\\t]+/);\n if (infos[0].indexOf('++') > 0) {\n var firstVariable = infos[0].replace(\n /.*\\(([a-zA-Z0-9]+)\\+\\+.*/,\n '$1'\n );\n var secondVariable = infos[0].replace(\n /.*\\.\\.([a-zA-Z0-9]+).*/,\n '$1'\n );\n xIndex = ntuples.symbol.indexOf(firstVariable);\n yIndex = ntuples.symbol.indexOf(secondVariable);\n }\n\n if (xIndex === -1) xIndex = 0;\n if (yIndex === -1) yIndex = 0;\n\n if (ntuples.first) {\n if (ntuples.first.length > xIndex) {\n spectrum.firstX = ntuples.first[xIndex];\n }\n if (ntuples.first.length > yIndex) {\n spectrum.firstY = ntuples.first[yIndex];\n }\n }\n if (ntuples.last) {\n if (ntuples.last.length > xIndex) {\n spectrum.lastX = ntuples.last[xIndex];\n }\n if (ntuples.last.length > yIndex) {\n spectrum.lastY = ntuples.last[yIndex];\n }\n }\n if (ntuples.vardim && ntuples.vardim.length > xIndex) {\n spectrum.nbPoints = ntuples.vardim[xIndex];\n }\n if (ntuples.factor) {\n if (ntuples.factor.length > xIndex) {\n spectrum.xFactor = ntuples.factor[xIndex];\n }\n if (ntuples.factor.length > yIndex) {\n spectrum.yFactor = ntuples.factor[yIndex];\n }\n }\n if (ntuples.units) {\n if (ntuples.units.length > xIndex) {\n spectrum.xUnit = ntuples.units[xIndex];\n }\n if (ntuples.units.length > yIndex) {\n spectrum.yUnit = ntuples.units[yIndex];\n }\n }\n spectrum.datatable = infos[0];\n if (infos[1] && infos[1].indexOf('PEAKS') > -1) {\n dataLabel = 'PEAKTABLE';\n } else if (\n infos[1] &&\n (infos[1].indexOf('XYDATA') || infos[0].indexOf('++') > 0)\n ) {\n dataLabel = 'XYDATA';\n spectrum.deltaX =\n (spectrum.lastX - spectrum.firstX) / (spectrum.nbPoints - 1);\n }\n }\n }\n\n if (dataLabel === 'XYDATA') {\n if (wantXY) {\n prepareSpectrum(result, spectrum);\n // well apparently we should still consider it is a PEAK TABLE if there are no '++' after\n if (dataValue.match(/.*\\+\\+.*/)) {\n // ex: (X++(Y..Y))\n if (!spectrum.deltaX) {\n spectrum.deltaX =\n (spectrum.lastX - spectrum.firstX) / (spectrum.nbPoints - 1);\n }\n fastParseXYData(spectrum, dataValue, result);\n } else {\n parsePeakTable(spectrum, dataValue, result);\n }\n spectra.push(spectrum);\n spectrum = new Spectrum();\n }\n continue;\n } else if (dataLabel === 'PEAKTABLE') {\n if (wantXY) {\n prepareSpectrum(result, spectrum);\n parsePeakTable(spectrum, dataValue, result);\n spectra.push(spectrum);\n spectrum = new Spectrum();\n }\n continue;\n }\n if (dataLabel === 'PEAKASSIGNMENTS') {\n if (wantXY) {\n if (dataValue.match(/.*(XYA).*/)) {\n // ex: (XYA)\n parseXYA(spectrum, dataValue);\n }\n spectra.push(spectrum);\n spectrum = new Spectrum();\n }\n continue;\n }\n\n if (dataLabel === 'TITLE') {\n spectrum.title = dataValue;\n } else if (dataLabel === 'DATATYPE') {\n spectrum.dataType = dataValue;\n if (dataValue.indexOf('nD') > -1) {\n result.twoD = true;\n }\n } else if (dataLabel === 'NTUPLES') {\n if (dataValue.indexOf('nD') > -1) {\n result.twoD = true;\n }\n } else if (dataLabel === 'XUNITS') {\n spectrum.xUnit = dataValue;\n } else if (dataLabel === 'YUNITS') {\n spectrum.yUnit = dataValue;\n } else if (dataLabel === 'FIRSTX') {\n spectrum.firstX = parseFloat(dataValue);\n } else if (dataLabel === 'LASTX') {\n spectrum.lastX = parseFloat(dataValue);\n } else if (dataLabel === 'FIRSTY') {\n spectrum.firstY = parseFloat(dataValue);\n } else if (dataLabel === 'LASTY') {\n spectrum.lastY = parseFloat(dataValue);\n } else if (dataLabel === 'NPOINTS') {\n spectrum.nbPoints = parseFloat(dataValue);\n } else if (dataLabel === 'XFACTOR') {\n spectrum.xFactor = parseFloat(dataValue);\n } else if (dataLabel === 'YFACTOR') {\n spectrum.yFactor = parseFloat(dataValue);\n } else if (dataLabel === 'MAXX') {\n spectrum.maxX = parseFloat(dataValue);\n } else if (dataLabel === 'MINX') {\n spectrum.minX = parseFloat(dataValue);\n } else if (dataLabel === 'MAXY') {\n spectrum.maxY = parseFloat(dataValue);\n } else if (dataLabel === 'MINY') {\n spectrum.minY = parseFloat(dataValue);\n } else if (dataLabel === 'DELTAX') {\n spectrum.deltaX = parseFloat(dataValue);\n } else if (dataLabel === '.OBSERVEFREQUENCY' || dataLabel === '$SFO1') {\n if (!spectrum.observeFrequency) {\n spectrum.observeFrequency = parseFloat(dataValue);\n }\n } else if (dataLabel === '.OBSERVENUCLEUS') {\n if (!spectrum.xType) {\n result.xType = dataValue.replace(/[^a-zA-Z0-9]/g, '');\n }\n } else if (dataLabel === '$SFO2') {\n if (!result.indirectFrequency) {\n result.indirectFrequency = parseFloat(dataValue);\n }\n } else if (dataLabel === '$OFFSET') {\n // OFFSET for Bruker spectra\n result.shiftOffsetNum = 0;\n if (!spectrum.shiftOffsetVal) {\n spectrum.shiftOffsetVal = parseFloat(dataValue);\n }\n } else if (dataLabel === '$REFERENCEPOINT') {\n // OFFSET for Varian spectra\n // if we activate this part it does not work for ACD specmanager\n // } else if (dataLabel=='.SHIFTREFERENCE') { // OFFSET FOR Bruker Spectra\n // var parts = dataValue.split(/ *, */);\n // result.shiftOffsetNum = parseInt(parts[2].trim());\n // spectrum.shiftOffsetVal = parseFloat(parts[3].trim());\n } else if (dataLabel === 'VARNAME') {\n ntuples.varname = dataValue.split(ntuplesSeparator);\n } else if (dataLabel === 'SYMBOL') {\n ntuples.symbol = dataValue.split(ntuplesSeparator);\n } else if (dataLabel === 'VARTYPE') {\n ntuples.vartype = dataValue.split(ntuplesSeparator);\n } else if (dataLabel === 'VARFORM') {\n ntuples.varform = dataValue.split(ntuplesSeparator);\n } else if (dataLabel === 'VARDIM') {\n ntuples.vardim = convertToFloatArray(dataValue.split(ntuplesSeparator));\n } else if (dataLabel === 'UNITS') {\n ntuples.units = dataValue.split(ntuplesSeparator);\n } else if (dataLabel === 'FACTOR') {\n ntuples.factor = convertToFloatArray(dataValue.split(ntuplesSeparator));\n } else if (dataLabel === 'FIRST') {\n ntuples.first = convertToFloatArray(dataValue.split(ntuplesSeparator));\n } else if (dataLabel === 'LAST') {\n ntuples.last = convertToFloatArray(dataValue.split(ntuplesSeparator));\n } else if (dataLabel === 'MIN') {\n ntuples.min = convertToFloatArray(dataValue.split(ntuplesSeparator));\n } else if (dataLabel === 'MAX') {\n ntuples.max = convertToFloatArray(dataValue.split(ntuplesSeparator));\n } else if (dataLabel === '.NUCLEUS') {\n if (result.twoD) {\n result.yType = dataValue.split(ntuplesSeparator)[0];\n }\n } else if (dataLabel === 'PAGE') {\n spectrum.page = dataValue.trim();\n spectrum.pageValue = parseFloat(dataValue.replace(/^.*=/, ''));\n spectrum.pageSymbol = spectrum.page.replace(/[=].*/, '');\n var pageSymbolIndex = ntuples.symbol.indexOf(spectrum.pageSymbol);\n var unit = '';\n if (ntuples.units && ntuples.units[pageSymbolIndex]) {\n unit = ntuples.units[pageSymbolIndex];\n }\n if (result.indirectFrequency && unit !== 'PPM') {\n spectrum.pageValue /= result.indirectFrequency;\n }\n } else if (dataLabel === 'RETENTIONTIME') {\n spectrum.pageValue = parseFloat(dataValue);\n } else if (isMSField(dataLabel)) {\n spectrum[convertMSFieldToLabel(dataLabel)] = dataValue;\n } else if (dataLabel === 'SAMPLEDESCRIPTION') {\n spectrum.sampleDescription = dataValue;\n }\n if (dataLabel.match(options.keepRecordsRegExp)) {\n result.info[dataLabel] = dataValue.trim();\n }\n }\n\n if (result.profiling) {\n result.profiling.push({\n action: 'Finished parsing',\n time: Date.now() - start\n });\n }\n\n if (Object.keys(ntuples).length > 0) {\n var newNtuples = [];\n var keys = Object.keys(ntuples);\n for (let i = 0; i < keys.length; i++) {\n var key = keys[i];\n var values = ntuples[key];\n for (let j = 0; j < values.length; j++) {\n if (!newNtuples[j]) newNtuples[j] = {};\n newNtuples[j][key] = values[j];\n }\n }\n result.ntuples = newNtuples;\n }\n\n if (result.twoD && wantXY) {\n add2D(result, options);\n if (result.profiling) {\n result.profiling.push({\n action: 'Finished countour plot calculation',\n time: Date.now() - start\n });\n }\n if (!options.keepSpectra) {\n delete result.spectra;\n }\n }\n\n if (options.chromatogram) {\n options.xy = true;\n }\n\n if (options.xy && wantXY) {\n // the spectraData should not be a oneD array but an object with x and y\n if (spectra.length > 0) {\n for (let i = 0; i < spectra.length; i++) {\n spectrum = spectra[i];\n if (spectrum.data.length > 0) {\n for (let j = 0; j < spectrum.data.length; j++) {\n var data = spectrum.data[j];\n var newData = {\n x: new Array(data.length / 2),\n y: new Array(data.length / 2)\n };\n for (var k = 0; k < data.length; k = k + 2) {\n newData.x[k / 2] = data[k];\n newData.y[k / 2] = data[k + 1];\n }\n spectrum.data[j] = newData;\n }\n }\n }\n }\n }\n\n // maybe it is a GC (HPLC) / MS. In this case we add a new format\n if (options.chromatogram) {\n if (result.spectra.length > 1) {\n complexChromatogram(result);\n } else {\n simpleChromatogram(result);\n }\n if (result.profiling) {\n result.profiling.push({\n action: 'Finished chromatogram calculation',\n time: Date.now() - start\n });\n }\n }\n\n if (result.profiling) {\n result.profiling.push({\n action: 'Total time',\n time: Date.now() - start\n });\n }\n\n return result;\n }\n\n function convertMSFieldToLabel(value) {\n return value.toLowerCase().replace(/[^a-z0-9]/g, '');\n }\n\n function isMSField(dataLabel) {\n return GC_MS_FIELDS.indexOf(dataLabel) !== -1;\n }\n\n function complexChromatogram(result) {\n var spectra = result.spectra;\n var length = spectra.length;\n var chromatogram = {\n times: new Array(length),\n series: {\n ms: {\n dimension: 2,\n data: new Array(length)\n }\n }\n };\n\n var existingGCMSFields = [];\n for (let i = 0; i < GC_MS_FIELDS.length; i++) {\n var label = convertMSFieldToLabel(GC_MS_FIELDS[i]);\n if (spectra[0][label]) {\n existingGCMSFields.push(label);\n chromatogram.series[label] = {\n dimension: 1,\n data: new Array(length)\n };\n }\n }\n\n for (let i = 0; i < length; i++) {\n var spectrum = spectra[i];\n chromatogram.times[i] = spectrum.pageValue;\n for (let j = 0; j < existingGCMSFields.length; j++) {\n chromatogram.series[existingGCMSFields[j]].data[i] = parseFloat(\n spectrum[existingGCMSFields[j]]\n );\n }\n if (spectrum.data) {\n chromatogram.series.ms.data[i] = [\n spectrum.data[0].x,\n spectrum.data[0].y\n ];\n }\n }\n result.chromatogram = chromatogram;\n }\n\n function simpleChromatogram(result) {\n var data = result.spectra[0].data[0];\n result.chromatogram = {\n times: data.x.slice(),\n series: {\n intensity: {\n dimension: 1,\n data: data.y.slice()\n }\n }\n };\n }\n\n function prepareSpectrum(result, spectrum) {\n if (!spectrum.xFactor) spectrum.xFactor = 1;\n if (!spectrum.yFactor) spectrum.yFactor = 1;\n if (spectrum.observeFrequency) {\n if (spectrum.xUnit && spectrum.xUnit.toUpperCase() === 'HZ') {\n spectrum.xUnit = 'PPM';\n spectrum.xFactor = spectrum.xFactor / spectrum.observeFrequency;\n spectrum.firstX = spectrum.firstX / spectrum.observeFrequency;\n spectrum.lastX = spectrum.lastX / spectrum.observeFrequency;\n spectrum.deltaX = spectrum.deltaX / spectrum.observeFrequency;\n }\n }\n if (spectrum.shiftOffsetVal) {\n var shift = spectrum.firstX - spectrum.shiftOffsetVal;\n spectrum.firstX = spectrum.firstX - shift;\n spectrum.lastX = spectrum.lastX - shift;\n }\n }\n\n function getMedian(data) {\n data = data.sort(compareNumbers);\n var l = data.length;\n return data[Math.floor(l / 2)];\n }\n\n function compareNumbers(a, b) {\n return a - b;\n }\n\n function convertTo3DZ(spectra) {\n var minZ = spectra[0].data[0][0];\n var maxZ = minZ;\n var ySize = spectra.length;\n var xSize = spectra[0].data[0].length / 2;\n var z = new Array(ySize);\n for (let i = 0; i < ySize; i++) {\n z[i] = new Array(xSize);\n var xVector = spectra[i].data[0];\n for (let j = 0; j < xSize; j++) {\n var value = xVector[j * 2 + 1];\n z[i][j] = value;\n if (value < minZ) minZ = value;\n if (value > maxZ) maxZ = value;\n }\n }\n return {\n z: z,\n minX: spectra[0].data[0][0],\n maxX: spectra[0].data[0][spectra[0].data[0].length - 2], // has to be -2 because it is a 1D array [x,y,x,y,...]\n minY: spectra[0].pageValue,\n maxY: spectra[ySize - 1].pageValue,\n minZ: minZ,\n maxZ: maxZ,\n noise: getMedian(z[0].map(Math.abs))\n };\n }\n\n function add2D(result, options) {\n var zData = convertTo3DZ(result.spectra);\n if (!options.noContour) {\n result.contourLines = generateContourLines(zData, options);\n delete zData.z;\n }\n result.minMax = zData;\n }\n\n function generateContourLines(zData, options) {\n var noise = zData.noise;\n var z = zData.z;\n var povarHeight0, povarHeight1, povarHeight2, povarHeight3;\n var isOver0, isOver1, isOver2, isOver3;\n var nbSubSpectra = z.length;\n var nbPovars = z[0].length;\n var pAx, pAy, pBx, pBy;\n\n var x0 = zData.minX;\n var xN = zData.maxX;\n var dx = (xN - x0) / (nbPovars - 1);\n var y0 = zData.minY;\n var yN = zData.maxY;\n var dy = (yN - y0) / (nbSubSpectra - 1);\n var minZ = zData.minZ;\n var maxZ = zData.maxZ;\n\n // System.out.prvarln('y0 '+y0+' yN '+yN);\n // -------------------------\n // Povars attribution\n //\n // 0----1\n // | / |\n // | / |\n // 2----3\n //\n // ---------------------d------\n\n var iter = options.nbContourLevels * 2;\n var contourLevels = new Array(iter);\n var lineZValue;\n for (var level = 0; level < iter; level++) {\n // multiply by 2 for positif and negatif\n var contourLevel = {};\n contourLevels[level] = contourLevel;\n var side = level % 2;\n var factor =\n (maxZ - options.noiseMultiplier * noise) *\n Math.exp((level >> 1) - options.nbContourLevels);\n if (side === 0) {\n lineZValue = factor + options.noiseMultiplier * noise;\n } else {\n lineZValue = 0 - factor - options.noiseMultiplier * noise;\n }\n var lines = [];\n contourLevel.zValue = lineZValue;\n contourLevel.lines = lines;\n\n if (lineZValue <= minZ || lineZValue >= maxZ) continue;\n\n for (var iSubSpectra = 0; iSubSpectra < nbSubSpectra - 1; iSubSpectra++) {\n var subSpectra = z[iSubSpectra];\n var subSpectraAfter = z[iSubSpectra + 1];\n for (var povar = 0; povar < nbPovars - 1; povar++) {\n povarHeight0 = subSpectra[povar];\n povarHeight1 = subSpectra[povar + 1];\n povarHeight2 = subSpectraAfter[povar];\n povarHeight3 = subSpectraAfter[povar + 1];\n\n isOver0 = povarHeight0 > lineZValue;\n isOver1 = povarHeight1 > lineZValue;\n isOver2 = povarHeight2 > lineZValue;\n isOver3 = povarHeight3 > lineZValue;\n\n // Example povar0 is over the plane and povar1 and\n // povar2 are below, we find the varersections and add\n // the segment\n if (isOver0 !== isOver1 && isOver0 !== isOver2) {\n pAx =\n povar +\n (lineZValue - povarHeight0) / (povarHeight1 - povarHeight0);\n pAy = iSubSpectra;\n pBx = povar;\n pBy =\n iSubSpectra +\n (lineZValue - povarHeight0) / (povarHeight2 - povarHeight0);\n lines.push(pAx * dx + x0);\n lines.push(pAy * dy + y0);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n // remove push does not help !!!!\n if (isOver3 !== isOver1 && isOver3 !== isOver2) {\n pAx = povar + 1;\n pAy =\n iSubSpectra +\n 1 -\n (lineZValue - povarHeight3) / (povarHeight1 - povarHeight3);\n pBx =\n povar +\n 1 -\n (lineZValue - povarHeight3) / (povarHeight2 - povarHeight3);\n pBy = iSubSpectra + 1;\n lines.push(pAx * dx + x0);\n lines.push(pAy * dy + y0);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n // test around the diagonal\n if (isOver1 !== isOver2) {\n pAx =\n (povar +\n 1 -\n (lineZValue - povarHeight1) / (povarHeight2 - povarHeight1)) *\n dx +\n x0;\n pAy =\n (iSubSpectra +\n (lineZValue - povarHeight1) / (povarHeight2 - povarHeight1)) *\n dy +\n y0;\n if (isOver1 !== isOver0) {\n pBx =\n povar +\n 1 -\n (lineZValue - povarHeight1) / (povarHeight0 - povarHeight1);\n pBy = iSubSpectra;\n lines.push(pAx);\n lines.push(pAy);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n if (isOver2 !== isOver0) {\n pBx = povar;\n pBy =\n iSubSpectra +\n 1 -\n (lineZValue - povarHeight2) / (povarHeight0 - povarHeight2);\n lines.push(pAx);\n lines.push(pAy);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n if (isOver1 !== isOver3) {\n pBx = povar + 1;\n pBy =\n iSubSpectra +\n (lineZValue - povarHeight1) / (povarHeight3 - povarHeight1);\n lines.push(pAx);\n lines.push(pAy);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n if (isOver2 !== isOver3) {\n pBx =\n povar +\n (lineZValue - povarHeight2) / (povarHeight3 - povarHeight2);\n pBy = iSubSpectra + 1;\n lines.push(pAx);\n lines.push(pAy);\n lines.push(pBx * dx + x0);\n lines.push(pBy * dy + y0);\n }\n }\n }\n }\n }\n\n return {\n minX: zData.minX,\n maxX: zData.maxX,\n minY: zData.minY,\n maxY: zData.maxY,\n segments: contourLevels\n };\n }\n\n function fastParseXYData(spectrum, value) {\n // TODO need to deal with result\n // console.log(value);\n // we check if deltaX is defined otherwise we calculate it\n\n var yFactor = spectrum.yFactor;\n var deltaX = spectrum.deltaX;\n\n spectrum.isXYdata = true;\n // TODO to be improved using 2 array {x:[], y:[]}\n var currentData = [];\n spectrum.data = [currentData];\n\n var currentX = spectrum.firstX;\n var currentY = spectrum.firstY;\n\n // we skip the first line\n //\n var endLine = false;\n var ascii;\n let i = 0;\n for (; i < value.length; i++) {\n ascii = value.charCodeAt(i);\n if (ascii === 13 || ascii === 10) {\n endLine = true;\n } else {\n if (endLine) break;\n }\n }\n\n // we proceed taking the i after the first line\n var newLine = true;\n var isDifference = false;\n var isLastDifference = false;\n var lastDifference = 0;\n var isDuplicate = false;\n var inComment = false;\n var currentValue = 0;\n var isNegative = false;\n var inValue = false;\n var skipFirstValue = false;\n var decimalPosition = 0;\n for (; i <= value.length; i++) {\n if (i === value.length) ascii = 13;\n else ascii = value.charCodeAt(i);\n if (inComment) {\n // we should ignore the text if we are after $$\n if (ascii === 13 || ascii === 10) {\n newLine = true;\n inComment = false;\n }\n } else {\n // when is it a new value ?\n // when it is not a digit, . or comma\n // it is a number that is either new or we continue\n if (ascii <= 57 && ascii >= 48) {\n // a number\n inValue = true;\n if (decimalPosition > 0) {\n currentValue += (ascii - 48) / Math.pow(10, decimalPosition++);\n } else {\n currentValue *= 10;\n currentValue += ascii - 48;\n }\n } else if (ascii === 44 || ascii === 46) {\n // a \",\" or \".\"\n inValue = true;\n decimalPosition++;\n } else {\n if (inValue) {\n // need to process the previous value\n if (newLine) {\n newLine = false; // we don't check the X value\n // console.log(\"NEW LINE\",isDifference, lastDifference);\n // if new line and lastDifference, the first value is just a check !\n // that we don't check ...\n if (isLastDifference) skipFirstValue = true;\n } else {\n // need to deal with duplicate and differences\n if (skipFirstValue) {\n skipFirstValue = false;\n } else {\n if (isDifference) {\n lastDifference = isNegative ? 0 - currentValue : currentValue;\n isLastDifference = true;\n isDifference = false;\n }\n var duplicate = isDuplicate ? currentValue - 1 : 1;\n for (var j = 0; j < duplicate; j++) {\n if (isLastDifference) {\n currentY += lastDifference;\n } else {\n currentY = isNegative ? 0 - currentValue : currentValue;\n }\n currentData.push(currentX);\n currentData.push(currentY * yFactor);\n currentX += deltaX;\n }\n }\n }\n isNegative = false;\n currentValue = 0;\n decimalPosition = 0;\n inValue = false;\n isDuplicate = false;\n }\n\n // positive SQZ digits @ A B C D E F G H I (ascii 64-73)\n if (ascii < 74 && ascii > 63) {\n inValue = true;\n isLastDifference = false;\n currentValue = ascii - 64;\n } else if (ascii > 96 && ascii < 106) {\n // negative SQZ digits a b c d e f g h i (ascii 97-105)\n inValue = true;\n isLastDifference = false;\n currentValue = ascii - 96;\n isNegative = true;\n } else if (ascii === 115) {\n // DUP digits S T U V W X Y Z s (ascii 83-90, 115)\n inValue = true;\n isDuplicate = true;\n currentValue = 9;\n } else if (ascii > 82 && ascii < 91) {\n inValue = true;\n isDuplicate = true;\n currentValue = ascii - 82;\n } else if (ascii > 73 && ascii < 83) {\n // positive DIF digits % J K L M N O P Q R (ascii 37, 74-82)\n inValue = true;\n isDifference = true;\n currentValue = ascii - 73;\n } else if (ascii > 105 && ascii < 115) {\n // negative DIF digits j k l m n o p q r (ascii 106-114)\n inValue = true;\n isDifference = true;\n currentValue = ascii - 105;\n isNegative = true;\n } else if (ascii === 36 && value.charCodeAt(i + 1) === 36) {\n // $ sign, we need to check the next one\n inValue = true;\n inComment = true;\n } else if (ascii === 37) {\n // positive DIF digits % J K L M N O P Q R (ascii 37, 74-82)\n inValue = true;\n isDifference = true;\n currentValue = 0;\n isNegative = false;\n } else if (ascii === 45) {\n // a \"-\"\n // check if after there is a number, decimal or comma\n var ascii2 = value.charCodeAt(i + 1);\n if (\n (ascii2 >= 48 && ascii2 <= 57) ||\n ascii2 === 44 ||\n ascii2 === 46\n ) {\n inValue = true;\n if (!newLine) isLastDifference = false;\n isNegative = true;\n }\n } else if (ascii === 13 || ascii === 10) {\n newLine = true;\n inComment = false;\n }\n // and now analyse the details ... space or tabulation\n // if \"+\" we just don't care\n }\n }\n }\n }\n\n function parseXYA(spectrum, value) {\n var removeSymbolRegExp = /(\\(+|\\)+|<+|>+|\\s+)/g;\n\n spectrum.isXYAdata = true;\n var values;\n var currentData = [];\n spectrum.data = [currentData];\n\n var lines = value.split(/,? *,?[;\\r\\n]+ */);\n\n for (let i = 1; i < lines.length; i++) {\n values = lines[i]\n .trim()\n .replace(removeSymbolRegExp, '')\n .split(',');\n currentData.push(parseFloat(values[0]));\n currentData.push(parseFloat(values[1]));\n }\n }\n\n function parsePeakTable(spectrum, value, result) {\n var removeCommentRegExp = /\\$\\$.*/;\n var peakTableSplitRegExp = /[,\\t ]+/;\n\n spectrum.isPeaktable = true;\n var values;\n var currentData = [];\n spectrum.data = [currentData];\n\n // counts for around 20% of the time\n var lines = value.split(/,? *,?[;\\r\\n]+ */);\n\n for (let i = 1; i < lines.length; i++) {\n values = lines[i]\n .trim()\n .replace(removeCommentRegExp, '')\n .split(peakTableSplitRegExp);\n if (values.length % 2 === 0) {\n for (let j = 0; j < values.length; j = j + 2) {\n // takes around 40% of the time to add and parse the 2 values nearly exclusively because of parseFloat\n currentData.push(parseFloat(values[j]) * spectrum.xFactor);\n currentData.push(parseFloat(values[j + 1]) * spectrum.yFactor);\n }\n } else {\n result.logs.push(`Format error: ${values}`);\n }\n }\n }\n\n return convert;\n}\n\nvar convert = getConverter();\n\nfunction JcampConverter(input, options, useWorker) {\n if (typeof options === 'boolean') {\n useWorker = options;\n options = {};\n }\n if (useWorker) {\n return postToWorker(input, options);\n } else {\n return convert(input, options);\n }\n}\n\nvar stamps = {};\nvar worker;\n\nfunction postToWorker(input, options) {\n if (!worker) {\n createWorker();\n }\n return new Promise(function (resolve) {\n var stamp = `${Date.now()}${Math.random()}`;\n stamps[stamp] = resolve;\n worker.postMessage(\n JSON.stringify({\n stamp: stamp,\n input: input,\n options: options\n })\n );\n });\n}\n\nfunction createWorker() {\n var workerURL = URL.createObjectURL(\n new Blob(\n [`var getConverter =${getConverter.toString()};var convert = getConverter(); onmessage = function (event) { var data = JSON.parse(event.data); postMessage(JSON.stringify({stamp: data.stamp, output: convert(data.input, data.options)})); };`],\n { type: 'application/javascript' }\n )\n );\n worker = new Worker(workerURL);\n URL.revokeObjectURL(workerURL);\n worker.addEventListener('message', function (event) {\n var data = JSON.parse(event.data);\n var stamp = data.stamp;\n if (stamps[stamp]) {\n stamps[stamp](data.output);\n }\n });\n}\n\nfunction createTree(jcamp, options = {}) {\n const { flatten = false } = options;\n if (typeof jcamp !== 'string') {\n throw new TypeError('the JCAMP should be a string');\n }\n\n let lines = jcamp.split(/[\\r\\n]+/);\n let flat = [];\n let stack = [];\n let result = [];\n let current;\n let ntupleLevel = 0;\n\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i];\n\n if (line.substring(0, 9) === '##NTUPLES') {\n ntupleLevel++;\n }\n\n if (line.substring(0, 7) === '##TITLE') {\n let title = [line.substring(8).trim()];\n for (let j = i + 1; j < lines.length; j++) {\n if (lines[j].startsWith('##')) {\n break;\n } else {\n title.push(lines[j].trim());\n }\n }\n stack.push({\n title: title.join('\\n'),\n jcamp: `${line}\\n`,\n children: []\n });\n current = stack[stack.length - 1];\n flat.push(current);\n } else if (line.substring(0, 5) === '##END' && ntupleLevel === 0) {\n current.jcamp += `${line}\\n`;\n var finished = stack.pop();\n if (stack.length !== 0) {\n current = stack[stack.length - 1];\n current.children.push(finished);\n } else {\n current = undefined;\n result.push(finished);\n }\n } else if (current && current.jcamp) {\n current.jcamp += `${line}\\n`;\n var match = line.match(/^##(.*?)=(.+)/);\n if (match) {\n var dataLabel = match[1].replace(/[ _-]/g, '').toUpperCase();\n if (dataLabel === 'DATATYPE') {\n current.dataType = match[2].trim();\n }\n }\n }\n\n if (line.substring(0, 5) === '##END' && ntupleLevel > 0) {\n ntupleLevel--;\n }\n }\n if (flatten) {\n flat.forEach((entry) => {\n entry.children = undefined;\n });\n return flat;\n } else {\n return result;\n }\n}\n\nmodule.exports = {\n convert: JcampConverter,\n createTree: createTree\n};\n","module.exports = newArray\n\nfunction newArray (n, value) {\n n = n || 0\n var array = new Array(n)\n for (var i = 0; i < n; i++) {\n array[i] = value\n }\n return array\n}\n","module.exports = function(haystack, needle, comparator, low, high) {\n var mid, cmp;\n\n if(low === undefined)\n low = 0;\n\n else {\n low = low|0;\n if(low < 0 || low >= haystack.length)\n throw new RangeError(\"invalid lower bound\");\n }\n\n if(high === undefined)\n high = haystack.length - 1;\n\n else {\n high = high|0;\n if(high < low || high >= haystack.length)\n throw new RangeError(\"invalid upper bound\");\n }\n\n while(low <= high) {\n // The naive `low + high >>> 1` could fail for array lengths > 2**31\n // because `>>>` converts its operands to int32. `low + (high - low >>> 1)`\n // works for array lengths <= 2**32-1 which is also Javascript's max array\n // length.\n mid = low + ((high - low) >>> 1);\n cmp = +comparator(haystack[mid], needle, mid, haystack);\n\n // Too low.\n if(cmp < 0.0)\n low = mid + 1;\n\n // Too high.\n else if(cmp > 0.0)\n high = mid - 1;\n\n // Key found.\n else\n return mid;\n }\n\n // Key not found.\n return ~low;\n}\n","'use strict';\n\nmodule.exports = exports = require('./ArrayUtils');\n\nexports.getEquallySpacedData = require('./getEquallySpaced').getEquallySpacedData;\nexports.SNV = require('./snv').SNV;\n","\n/**\n * class encodes a integer vector as a String in order to store it in a text file.\n * The algorithms used to encode the data are describe in:\n * http://www.iupac.org/publications/pac/pdf/2001/pdf/7311x1765.pdf\n * Created by acastillo on 3/2/16.\n */\nconst newLine = '\\r\\n';\n\nconst pseudoDigits = [\n ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],\n ['@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'],\n ['@', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'],\n ['%', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R'],\n ['%', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r'],\n [' ', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 's']\n];\n\nconst SQZ_P = 1;\nconst SQZ_N = 2;\nconst DIF_P = 3;\nconst DIF_N = 4;\nconst DUP = 5;\nconst MaxLinelength = 100;\n\n/**\n * This function encodes the given vector. The encoding format is specified by the\n * encoding option\n * @param {Array} data\n * @param {number} firstX\n * @param {number} intervalX\n * @param {string} encoding: ('FIX','SQZ','DIF','DIFDUP','CVS','PAC') Default 'DIFDUP'\n * @return {string}\n */\nfunction encode(data, firstX, intervalX, encoding) {\n switch (encoding) {\n case 'FIX':\n return fixEncoding(data, firstX, intervalX);\n case 'SQZ':\n return squeezedEncoding(data, firstX, intervalX);\n case 'DIF':\n return differenceEncoding(data, firstX, intervalX);\n case 'DIFDUP':\n return differenceDuplicateEncoding(data, firstX, intervalX);\n case 'CSV':\n return commaSeparatedValuesEncoding(data, firstX, intervalX);\n case 'PAC':\n return packedEncoding(data, firstX, intervalX);\n default:\n return differenceEncoding(data, firstX, intervalX);\n }\n}\n\n/**\n * @private\n * No data compression used. The data is separated by a comma(',').\n * @param {Array} data\n * @param {number} firstX\n * @param {number} intervalX\n * @return {string}\n */\nfunction commaSeparatedValuesEncoding(data, firstX, intervalX) {\n return fixEncoding(data, firstX, intervalX, ',');\n}\n\n/**\n * @private\n * No data compression used. The data is separated by the specified separator.\n * @param {Array} data\n * @param {number} firstX\n * @param {number} intervalX\n * @param {string} separator, The separator character\n * @return {string}\n */\nfunction fixEncoding(data, firstX, intervalX, separator) {\n if (!separator) {\n separator = ' ';\n }\n var outputData = '';\n var j = 0;\n var TD = data.length;\n var i;\n while (j < TD - 7) {\n outputData += Math.ceil(firstX + j * intervalX);\n for (i = 0; i < 8; i++) {\n outputData += separator + data[j++];\n }\n outputData += newLine;\n }\n if (j < TD) {\n // We add last numbers\n outputData += Math.ceil(firstX + j * intervalX);\n for (i = j; i < TD; i++) {\n outputData += separator + data[i];\n }\n }\n return outputData;\n}\n\n/**\n * @private\n * No data compression used. The data is separated by the sign of the number.\n * @param {Array} data\n * @param {number} firstX\n * @param {number} intervalX\n * @return {string}\n */\nfunction packedEncoding(data, firstX, intervalX) {\n var outputData = '';\n var j = 0;\n var TD = data.length;\n var i;\n\n while (j < TD - 7) {\n outputData += Math.ceil(firstX + j * intervalX);\n for (i = 0; i < 8; i++) {\n if (data[j] < 0) {\n outputData += `-${data[j++]}`;\n } else {\n outputData += `+${data[j++]}`;\n }\n }\n outputData += newLine;\n }\n if (j < TD) {\n // We add last numbers\n outputData += Math.ceil(firstX + j * intervalX);\n for (i = j; i < TD; i++) {\n if (data[i] < 0) {\n outputData += `-${data[i]}`;\n } else {\n outputData += `+${data[i]}`;\n }\n }\n }\n return outputData;\n}\n\n/**\n * @private\n * Data compression is possible using the squeezed form (SQZ) in which the delimiter, the leading digit,\n * and sign are replaced by a pseudo-digit from Table 1. For example, the Y-values 30, 32 would be\n * represented as C0C2.\n * @param {Array} data\n * @param {number} firstX\n * @param {number} intervalX\n * @return {string}\n */\nfunction squeezedEncoding(data, firstX, intervalX) {\n var outputData = '';\n // String outputData = new String();\n var j = 0;\n var TD = data.length;\n var i;\n\n while (j < TD - 10) {\n outputData += Math.ceil(firstX + j * intervalX);\n for (i = 0; i < 10; i++) {\n outputData += squeezedDigit(data[j++].toString());\n }\n outputData += newLine;\n }\n if (j < TD) {\n // We add last numbers\n outputData += Math.ceil(firstX + j * intervalX);\n for (i = j; i < TD; i++) {\n outputData += squeezedDigit(data[i].toString());\n }\n }\n\n return outputData;\n}\n\n/**\n * @private\n * Duplicate suppression encoding\n * @param {Array} data\n * @param {number} firstX\n * @param {number} intervalX\n * @return {string}\n */\nfunction differenceDuplicateEncoding(data, firstX, intervalX) {\n var mult = 0;\n var index = 0;\n var charCount = 0;\n var i;\n // We built a string where we store the encoded data.\n var encodData = '';\n var encodNumber = '';\n var temp = '';\n\n // We calculate the differences vector\n var diffData = new Array(data.length - 1);\n for (i = 0; i < diffData.length; i++) {\n diffData[i] = data[i + 1] - data[i];\n }\n\n // We simulate a line carry\n var numDiff = diffData.length;\n while (index < numDiff) {\n if (charCount === 0) { // Start line\n encodNumber = Math.ceil(firstX + index * intervalX) + squeezedDigit(data[index].toString()) + differenceDigit(diffData[index].toString());\n encodData += encodNumber;\n charCount += encodNumber.length;\n } else {\n // Try to insert next difference\n if (diffData[index - 1] === diffData[index]) {\n mult++;\n } else {\n if (mult > 0) { // Now we know that it can be in line\n mult++;\n encodNumber = duplicateDigit(mult.toString());\n encodData += encodNumber;\n charCount += encodNumber.length;\n mult = 0;\n index--;\n } else {\n // Mirar si cabe, en caso contrario iniciar una nueva linea\n encodNumber = differenceDigit(diffData[index].toString());\n if (encodNumber.length + charCount < MaxLinelength) {\n encodData += encodNumber;\n charCount += encodNumber.length;\n } else { // Iniciar nueva linea\n encodData += newLine;\n temp = Math.ceil(firstX + index * intervalX) + squeezedDigit(data[index].toString()) + encodNumber;\n encodData += temp;// Each line start with first index number.\n charCount = temp.length;\n }\n }\n }\n }\n index++;\n }\n if (mult > 0) {\n encodData += duplicateDigit((mult + 1).toString());\n }\n // We insert the last data from fid. It is done to control of data\n // The last line start with the number of datas in the fid.\n encodData += newLine + Math.ceil(firstX + index * intervalX) + squeezedDigit(data[index].toString());\n\n return encodData;\n}\n\n/**\n * @private\n * Differential encoding\n * @param {Array} data\n * @param {number} firstX\n * @param {number} intervalX\n * @return {string}\n */\nfunction differenceEncoding(data, firstX, intervalX) {\n var index = 0;\n var charCount = 0;\n var i;\n\n var encodData = '';\n var encodNumber = '';\n var temp = '';\n\n // We calculate the differences vector\n var diffData = new Array(data.length - 1);\n for (i = 0; i < diffData.length; i++) {\n diffData[i] = data[i + 1] - data[i];\n }\n\n var numDiff = diffData.length;\n while (index < numDiff) {\n if (charCount === 0) {\n // We convert the first number.\n encodNumber = Math.ceil(firstX + index * intervalX) + squeezedDigit(data[index].toString()) + differenceDigit(diffData[index].toString());\n encodData += encodNumber;\n charCount += encodNumber.length;\n } else {\n encodNumber = differenceDigit(diffData[index].toString());\n if (encodNumber.length + charCount < MaxLinelength) {\n encodData += encodNumber;\n charCount += encodNumber.length;\n } else {\n encodData += newLine;\n temp = Math.ceil(firstX + index * intervalX) + squeezedDigit(data[index].toString()) + encodNumber;\n encodData += temp;// Each line start with first index number.\n charCount = temp.length;\n }\n }\n index++;\n }\n // We insert the last number from data. It is done to control of data\n encodData += newLine + Math.ceil(firstX + index * intervalX) + squeezedDigit(data[index].toString());\n\n return encodData;\n}\n\n/**\n * @private\n * Convert number to the ZQZ format, using pseudo digits.\n * @param {number} num\n * @return {string}\n */\nfunction squeezedDigit(num) {\n var SQZdigit = '';\n if (num.charAt(0) === '-') {\n SQZdigit += pseudoDigits[SQZ_N][num.charAt(1)];\n if (num.length > 2) {\n SQZdigit += num.substring(2);\n }\n } else {\n SQZdigit += pseudoDigits[SQZ_P][num.charAt(0)];\n if (num.length > 1) {\n SQZdigit += num.substring(1);\n }\n }\n\n return SQZdigit;\n}\n\n/**\n * @private\n * Convert number to the DIF format, using pseudo digits.\n * @param {number} num\n * @return {string}\n */\nfunction differenceDigit(num) {\n var DIFFdigit = '';\n\n if (num.charAt(0) === '-') {\n DIFFdigit += pseudoDigits[DIF_N][num.charAt(1)];\n if (num.length > 2) {\n DIFFdigit += num.substring(2);\n }\n } else {\n DIFFdigit += pseudoDigits[DIF_P][num.charAt(0)];\n if (num.length > 1) {\n DIFFdigit += num.substring(1);\n }\n }\n\n return DIFFdigit;\n}\n\n/**\n * @private\n * Convert number to the DUP format, using pseudo digits.\n * @param {number} num\n * @return {string}\n */\nfunction duplicateDigit(num) {\n var DUPdigit = '';\n DUPdigit += pseudoDigits[DUP][num.charAt(0)];\n if (num.length > 1) {\n DUPdigit += num.substring(1);\n }\n\n return DUPdigit;\n}\n\nmodule.exports = {\n encode,\n fixEncoding,\n commaSeparatedValuesEncoding,\n packedEncoding,\n squeezedEncoding,\n differenceDuplicateEncoding,\n differenceEncoding\n};\n","/*! https://mths.be/utf8js v3.0.0 by @mathias */\n;(function(root) {\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\troot.version = '3.0.0';\n\troot.encode = utf8encode;\n\troot.decode = utf8decode;\n\n}(typeof exports === 'undefined' ? this.utf8 = {} : exports));\n","'use strict';\n\nfunction compareNumbers(a, b) {\n return a - b;\n}\n\n/**\n * Computes the sum of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.sum = function sum(values) {\n var sum = 0;\n for (var i = 0; i < values.length; i++) {\n sum += values[i];\n }\n return sum;\n};\n\n/**\n * Computes the maximum of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.max = function max(values) {\n var max = values[0];\n var l = values.length;\n for (var i = 1; i < l; i++) {\n if (values[i] > max) max = values[i];\n }\n return max;\n};\n\n/**\n * Computes the minimum of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.min = function min(values) {\n var min = values[0];\n var l = values.length;\n for (var i = 1; i < l; i++) {\n if (values[i] < min) min = values[i];\n }\n return min;\n};\n\n/**\n * Computes the min and max of the given values\n * @param {Array} values\n * @returns {{min: number, max: number}}\n */\nexports.minMax = function minMax(values) {\n var min = values[0];\n var max = values[0];\n var l = values.length;\n for (var i = 1; i < l; i++) {\n if (values[i] < min) min = values[i];\n if (values[i] > max) max = values[i];\n }\n return {\n min: min,\n max: max\n };\n};\n\n/**\n * Computes the arithmetic mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.arithmeticMean = function arithmeticMean(values) {\n var sum = 0;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n sum += values[i];\n }\n return sum / l;\n};\n\n/**\n * {@link arithmeticMean}\n */\nexports.mean = exports.arithmeticMean;\n\n/**\n * Computes the geometric mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.geometricMean = function geometricMean(values) {\n var mul = 1;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n mul *= values[i];\n }\n return Math.pow(mul, 1 / l);\n};\n\n/**\n * Computes the mean of the log of the given values\n * If the return value is exponentiated, it gives the same result as the\n * geometric mean.\n * @param {Array} values\n * @returns {number}\n */\nexports.logMean = function logMean(values) {\n var lnsum = 0;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n lnsum += Math.log(values[i]);\n }\n return lnsum / l;\n};\n\n/**\n * Computes the weighted grand mean for a list of means and sample sizes\n * @param {Array} means - Mean values for each set of samples\n * @param {Array} samples - Number of original values for each set of samples\n * @returns {number}\n */\nexports.grandMean = function grandMean(means, samples) {\n var sum = 0;\n var n = 0;\n var l = means.length;\n for (var i = 0; i < l; i++) {\n sum += samples[i] * means[i];\n n += samples[i];\n }\n return sum / n;\n};\n\n/**\n * Computes the truncated mean of the given values using a given percentage\n * @param {Array} values\n * @param {number} percent - The percentage of values to keep (range: [0,1])\n * @param {boolean} [alreadySorted=false]\n * @returns {number}\n */\nexports.truncatedMean = function truncatedMean(values, percent, alreadySorted) {\n if (alreadySorted === undefined) alreadySorted = false;\n if (!alreadySorted) {\n values = [].concat(values).sort(compareNumbers);\n }\n var l = values.length;\n var k = Math.floor(l * percent);\n var sum = 0;\n for (var i = k; i < (l - k); i++) {\n sum += values[i];\n }\n return sum / (l - 2 * k);\n};\n\n/**\n * Computes the harmonic mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.harmonicMean = function harmonicMean(values) {\n var sum = 0;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n if (values[i] === 0) {\n throw new RangeError('value at index ' + i + 'is zero');\n }\n sum += 1 / values[i];\n }\n return l / sum;\n};\n\n/**\n * Computes the contraharmonic mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.contraHarmonicMean = function contraHarmonicMean(values) {\n var r1 = 0;\n var r2 = 0;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n r1 += values[i] * values[i];\n r2 += values[i];\n }\n if (r2 < 0) {\n throw new RangeError('sum of values is negative');\n }\n return r1 / r2;\n};\n\n/**\n * Computes the median of the given values\n * @param {Array} values\n * @param {boolean} [alreadySorted=false]\n * @returns {number}\n */\nexports.median = function median(values, alreadySorted) {\n if (alreadySorted === undefined) alreadySorted = false;\n if (!alreadySorted) {\n values = [].concat(values).sort(compareNumbers);\n }\n var l = values.length;\n var half = Math.floor(l / 2);\n if (l % 2 === 0) {\n return (values[half - 1] + values[half]) * 0.5;\n } else {\n return values[half];\n }\n};\n\n/**\n * Computes the variance of the given values\n * @param {Array} values\n * @param {boolean} [unbiased=true] - if true, divide by (n-1); if false, divide by n.\n * @returns {number}\n */\nexports.variance = function variance(values, unbiased) {\n if (unbiased === undefined) unbiased = true;\n var theMean = exports.mean(values);\n var theVariance = 0;\n var l = values.length;\n\n for (var i = 0; i < l; i++) {\n var x = values[i] - theMean;\n theVariance += x * x;\n }\n\n if (unbiased) {\n return theVariance / (l - 1);\n } else {\n return theVariance / l;\n }\n};\n\n/**\n * Computes the standard deviation of the given values\n * @param {Array} values\n * @param {boolean} [unbiased=true] - if true, divide by (n-1); if false, divide by n.\n * @returns {number}\n */\nexports.standardDeviation = function standardDeviation(values, unbiased) {\n return Math.sqrt(exports.variance(values, unbiased));\n};\n\nexports.standardError = function standardError(values) {\n return exports.standardDeviation(values) / Math.sqrt(values.length);\n};\n\n/**\n * IEEE Transactions on biomedical engineering, vol. 52, no. 1, january 2005, p. 76-\n * Calculate the standard deviation via the Median of the absolute deviation\n * The formula for the standard deviation only holds for Gaussian random variables.\n * @returns {{mean: number, stdev: number}}\n */\nexports.robustMeanAndStdev = function robustMeanAndStdev(y) {\n var mean = 0, stdev = 0;\n var length = y.length, i = 0;\n for (i = 0; i < length; i++) {\n mean += y[i];\n }\n mean /= length;\n var averageDeviations = new Array(length);\n for (i = 0; i < length; i++)\n averageDeviations[i] = Math.abs(y[i] - mean);\n averageDeviations.sort(compareNumbers);\n if (length % 2 === 1) {\n stdev = averageDeviations[(length - 1) / 2] / 0.6745;\n } else {\n stdev = 0.5 * (averageDeviations[length / 2] + averageDeviations[length / 2 - 1]) / 0.6745;\n }\n\n return {\n mean: mean,\n stdev: stdev\n };\n};\n\nexports.quartiles = function quartiles(values, alreadySorted) {\n if (typeof (alreadySorted) === 'undefined') alreadySorted = false;\n if (!alreadySorted) {\n values = [].concat(values).sort(compareNumbers);\n }\n\n var quart = values.length / 4;\n var q1 = values[Math.ceil(quart) - 1];\n var q2 = exports.median(values, true);\n var q3 = values[Math.ceil(quart * 3) - 1];\n\n return {q1: q1, q2: q2, q3: q3};\n};\n\nexports.pooledStandardDeviation = function pooledStandardDeviation(samples, unbiased) {\n return Math.sqrt(exports.pooledVariance(samples, unbiased));\n};\n\nexports.pooledVariance = function pooledVariance(samples, unbiased) {\n if (typeof (unbiased) === 'undefined') unbiased = true;\n var sum = 0;\n var length = 0, l = samples.length;\n for (var i = 0; i < l; i++) {\n var values = samples[i];\n var vari = exports.variance(values);\n\n sum += (values.length - 1) * vari;\n\n if (unbiased)\n length += values.length - 1;\n else\n length += values.length;\n }\n return sum / length;\n};\n\nexports.mode = function mode(values) {\n var l = values.length,\n itemCount = new Array(l),\n i;\n for (i = 0; i < l; i++) {\n itemCount[i] = 0;\n }\n var itemArray = new Array(l);\n var count = 0;\n\n for (i = 0; i < l; i++) {\n var index = itemArray.indexOf(values[i]);\n if (index >= 0)\n itemCount[index]++;\n else {\n itemArray[count] = values[i];\n itemCount[count] = 1;\n count++;\n }\n }\n\n var maxValue = 0, maxIndex = 0;\n for (i = 0; i < count; i++) {\n if (itemCount[i] > maxValue) {\n maxValue = itemCount[i];\n maxIndex = i;\n }\n }\n\n return itemArray[maxIndex];\n};\n\nexports.covariance = function covariance(vector1, vector2, unbiased) {\n if (typeof (unbiased) === 'undefined') unbiased = true;\n var mean1 = exports.mean(vector1);\n var mean2 = exports.mean(vector2);\n\n if (vector1.length !== vector2.length)\n throw 'Vectors do not have the same dimensions';\n\n var cov = 0, l = vector1.length;\n for (var i = 0; i < l; i++) {\n var x = vector1[i] - mean1;\n var y = vector2[i] - mean2;\n cov += x * y;\n }\n\n if (unbiased)\n return cov / (l - 1);\n else\n return cov / l;\n};\n\nexports.skewness = function skewness(values, unbiased) {\n if (typeof (unbiased) === 'undefined') unbiased = true;\n var theMean = exports.mean(values);\n\n var s2 = 0, s3 = 0, l = values.length;\n for (var i = 0; i < l; i++) {\n var dev = values[i] - theMean;\n s2 += dev * dev;\n s3 += dev * dev * dev;\n }\n var m2 = s2 / l;\n var m3 = s3 / l;\n\n var g = m3 / (Math.pow(m2, 3 / 2.0));\n if (unbiased) {\n var a = Math.sqrt(l * (l - 1));\n var b = l - 2;\n return (a / b) * g;\n } else {\n return g;\n }\n};\n\nexports.kurtosis = function kurtosis(values, unbiased) {\n if (typeof (unbiased) === 'undefined') unbiased = true;\n var theMean = exports.mean(values);\n var n = values.length, s2 = 0, s4 = 0;\n\n for (var i = 0; i < n; i++) {\n var dev = values[i] - theMean;\n s2 += dev * dev;\n s4 += dev * dev * dev * dev;\n }\n var m2 = s2 / n;\n var m4 = s4 / n;\n\n if (unbiased) {\n var v = s2 / (n - 1);\n var a = (n * (n + 1)) / ((n - 1) * (n - 2) * (n - 3));\n var b = s4 / (v * v);\n var c = ((n - 1) * (n - 1)) / ((n - 2) * (n - 3));\n\n return a * b - 3 * c;\n } else {\n return m4 / (m2 * m2) - 3;\n }\n};\n\nexports.entropy = function entropy(values, eps) {\n if (typeof (eps) === 'undefined') eps = 0;\n var sum = 0, l = values.length;\n for (var i = 0; i < l; i++)\n sum += values[i] * Math.log(values[i] + eps);\n return -sum;\n};\n\nexports.weightedMean = function weightedMean(values, weights) {\n var sum = 0, l = values.length;\n for (var i = 0; i < l; i++)\n sum += values[i] * weights[i];\n return sum;\n};\n\nexports.weightedStandardDeviation = function weightedStandardDeviation(values, weights) {\n return Math.sqrt(exports.weightedVariance(values, weights));\n};\n\nexports.weightedVariance = function weightedVariance(values, weights) {\n var theMean = exports.weightedMean(values, weights);\n var vari = 0, l = values.length;\n var a = 0, b = 0;\n\n for (var i = 0; i < l; i++) {\n var z = values[i] - theMean;\n var w = weights[i];\n\n vari += w * (z * z);\n b += w;\n a += w * w;\n }\n\n return vari * (b / (b * b - a));\n};\n\nexports.center = function center(values, inPlace) {\n if (typeof (inPlace) === 'undefined') inPlace = false;\n\n var result = values;\n if (!inPlace)\n result = [].concat(values);\n\n var theMean = exports.mean(result), l = result.length;\n for (var i = 0; i < l; i++)\n result[i] -= theMean;\n};\n\nexports.standardize = function standardize(values, standardDev, inPlace) {\n if (typeof (standardDev) === 'undefined') standardDev = exports.standardDeviation(values);\n if (typeof (inPlace) === 'undefined') inPlace = false;\n var l = values.length;\n var result = inPlace ? values : new Array(l);\n for (var i = 0; i < l; i++)\n result[i] = values[i] / standardDev;\n return result;\n};\n\nexports.cumulativeSum = function cumulativeSum(array) {\n var l = array.length;\n var result = new Array(l);\n result[0] = array[0];\n for (var i = 1; i < l; i++)\n result[i] = result[i - 1] + array[i];\n return result;\n};\n","'use strict';\n\nfunction compareNumbers(a, b) {\n return a - b;\n}\n\n/**\n * Computes the sum of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.sum = function sum(values) {\n var sum = 0;\n for (var i = 0; i < values.length; i++) {\n sum += values[i];\n }\n return sum;\n};\n\n/**\n * Computes the maximum of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.max = function max(values) {\n var max = -Infinity;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n if (values[i] > max) max = values[i];\n }\n return max;\n};\n\n/**\n * Computes the minimum of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.min = function min(values) {\n var min = Infinity;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n if (values[i] < min) min = values[i];\n }\n return min;\n};\n\n/**\n * Computes the min and max of the given values\n * @param {Array} values\n * @returns {{min: number, max: number}}\n */\nexports.minMax = function minMax(values) {\n var min = Infinity;\n var max = -Infinity;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n if (values[i] < min) min = values[i];\n if (values[i] > max) max = values[i];\n }\n return {\n min: min,\n max: max\n };\n};\n\n/**\n * Computes the arithmetic mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.arithmeticMean = function arithmeticMean(values) {\n var sum = 0;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n sum += values[i];\n }\n return sum / l;\n};\n\n/**\n * {@link arithmeticMean}\n */\nexports.mean = exports.arithmeticMean;\n\n/**\n * Computes the geometric mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.geometricMean = function geometricMean(values) {\n var mul = 1;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n mul *= values[i];\n }\n return Math.pow(mul, 1 / l);\n};\n\n/**\n * Computes the mean of the log of the given values\n * If the return value is exponentiated, it gives the same result as the\n * geometric mean.\n * @param {Array} values\n * @returns {number}\n */\nexports.logMean = function logMean(values) {\n var lnsum = 0;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n lnsum += Math.log(values[i]);\n }\n return lnsum / l;\n};\n\n/**\n * Computes the weighted grand mean for a list of means and sample sizes\n * @param {Array} means - Mean values for each set of samples\n * @param {Array} samples - Number of original values for each set of samples\n * @returns {number}\n */\nexports.grandMean = function grandMean(means, samples) {\n var sum = 0;\n var n = 0;\n var l = means.length;\n for (var i = 0; i < l; i++) {\n sum += samples[i] * means[i];\n n += samples[i];\n }\n return sum / n;\n};\n\n/**\n * Computes the truncated mean of the given values using a given percentage\n * @param {Array} values\n * @param {number} percent - The percentage of values to keep (range: [0,1])\n * @param {boolean} [alreadySorted=false]\n * @returns {number}\n */\nexports.truncatedMean = function truncatedMean(values, percent, alreadySorted) {\n if (alreadySorted === undefined) alreadySorted = false;\n if (!alreadySorted) {\n values = values.slice().sort(compareNumbers);\n }\n var l = values.length;\n var k = Math.floor(l * percent);\n var sum = 0;\n for (var i = k; i < (l - k); i++) {\n sum += values[i];\n }\n return sum / (l - 2 * k);\n};\n\n/**\n * Computes the harmonic mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.harmonicMean = function harmonicMean(values) {\n var sum = 0;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n if (values[i] === 0) {\n throw new RangeError('value at index ' + i + 'is zero');\n }\n sum += 1 / values[i];\n }\n return l / sum;\n};\n\n/**\n * Computes the contraharmonic mean of the given values\n * @param {Array} values\n * @returns {number}\n */\nexports.contraHarmonicMean = function contraHarmonicMean(values) {\n var r1 = 0;\n var r2 = 0;\n var l = values.length;\n for (var i = 0; i < l; i++) {\n r1 += values[i] * values[i];\n r2 += values[i];\n }\n if (r2 < 0) {\n throw new RangeError('sum of values is negative');\n }\n return r1 / r2;\n};\n\n/**\n * Computes the median of the given values\n * @param {Array} values\n * @param {boolean} [alreadySorted=false]\n * @returns {number}\n */\nexports.median = function median(values, alreadySorted) {\n if (alreadySorted === undefined) alreadySorted = false;\n if (!alreadySorted) {\n values = values.slice().sort(compareNumbers);\n }\n var l = values.length;\n var half = Math.floor(l / 2);\n if (l % 2 === 0) {\n return (values[half - 1] + values[half]) * 0.5;\n } else {\n return values[half];\n }\n};\n\n/**\n * Computes the variance of the given values\n * @param {Array} values\n * @param {boolean} [unbiased=true] - if true, divide by (n-1); if false, divide by n.\n * @returns {number}\n */\nexports.variance = function variance(values, unbiased) {\n if (unbiased === undefined) unbiased = true;\n var theMean = exports.mean(values);\n var theVariance = 0;\n var l = values.length;\n\n for (var i = 0; i < l; i++) {\n var x = values[i] - theMean;\n theVariance += x * x;\n }\n\n if (unbiased) {\n return theVariance / (l - 1);\n } else {\n return theVariance / l;\n }\n};\n\n/**\n * Computes the standard deviation of the given values\n * @param {Array} values\n * @param {boolean} [unbiased=true] - if true, divide by (n-1); if false, divide by n.\n * @returns {number}\n */\nexports.standardDeviation = function standardDeviation(values, unbiased) {\n return Math.sqrt(exports.variance(values, unbiased));\n};\n\nexports.standardError = function standardError(values) {\n return exports.standardDeviation(values) / Math.sqrt(values.length);\n};\n\nexports.quartiles = function quartiles(values, alreadySorted) {\n if (typeof(alreadySorted) === 'undefined') alreadySorted = false;\n if (!alreadySorted) {\n values = values.slice();\n values.sort(compareNumbers);\n }\n\n var quart = values.length / 4;\n var q1 = values[Math.ceil(quart) - 1];\n var q2 = exports.median(values, true);\n var q3 = values[Math.ceil(quart * 3) - 1];\n\n return {q1: q1, q2: q2, q3: q3};\n};\n\nexports.pooledStandardDeviation = function pooledStandardDeviation(samples, unbiased) {\n return Math.sqrt(exports.pooledVariance(samples, unbiased));\n};\n\nexports.pooledVariance = function pooledVariance(samples, unbiased) {\n if (typeof(unbiased) === 'undefined') unbiased = true;\n var sum = 0;\n var length = 0, l = samples.length;\n for (var i = 0; i < l; i++) {\n var values = samples[i];\n var vari = exports.variance(values);\n\n sum += (values.length - 1) * vari;\n\n if (unbiased)\n length += values.length - 1;\n else\n length += values.length;\n }\n return sum / length;\n};\n\nexports.mode = function mode(values) {\n var l = values.length,\n itemCount = new Array(l),\n i;\n for (i = 0; i < l; i++) {\n itemCount[i] = 0;\n }\n var itemArray = new Array(l);\n var count = 0;\n\n for (i = 0; i < l; i++) {\n var index = itemArray.indexOf(values[i]);\n if (index >= 0)\n itemCount[index]++;\n else {\n itemArray[count] = values[i];\n itemCount[count] = 1;\n count++;\n }\n }\n\n var maxValue = 0, maxIndex = 0;\n for (i = 0; i < count; i++) {\n if (itemCount[i] > maxValue) {\n maxValue = itemCount[i];\n maxIndex = i;\n }\n }\n\n return itemArray[maxIndex];\n};\n\nexports.covariance = function covariance(vector1, vector2, unbiased) {\n if (typeof(unbiased) === 'undefined') unbiased = true;\n var mean1 = exports.mean(vector1);\n var mean2 = exports.mean(vector2);\n\n if (vector1.length !== vector2.length)\n throw \"Vectors do not have the same dimensions\";\n\n var cov = 0, l = vector1.length;\n for (var i = 0; i < l; i++) {\n var x = vector1[i] - mean1;\n var y = vector2[i] - mean2;\n cov += x * y;\n }\n\n if (unbiased)\n return cov / (l - 1);\n else\n return cov / l;\n};\n\nexports.skewness = function skewness(values, unbiased) {\n if (typeof(unbiased) === 'undefined') unbiased = true;\n var theMean = exports.mean(values);\n\n var s2 = 0, s3 = 0, l = values.length;\n for (var i = 0; i < l; i++) {\n var dev = values[i] - theMean;\n s2 += dev * dev;\n s3 += dev * dev * dev;\n }\n var m2 = s2 / l;\n var m3 = s3 / l;\n\n var g = m3 / (Math.pow(m2, 3 / 2.0));\n if (unbiased) {\n var a = Math.sqrt(l * (l - 1));\n var b = l - 2;\n return (a / b) * g;\n }\n else {\n return g;\n }\n};\n\nexports.kurtosis = function kurtosis(values, unbiased) {\n if (typeof(unbiased) === 'undefined') unbiased = true;\n var theMean = exports.mean(values);\n var n = values.length, s2 = 0, s4 = 0;\n\n for (var i = 0; i < n; i++) {\n var dev = values[i] - theMean;\n s2 += dev * dev;\n s4 += dev * dev * dev * dev;\n }\n var m2 = s2 / n;\n var m4 = s4 / n;\n\n if (unbiased) {\n var v = s2 / (n - 1);\n var a = (n * (n + 1)) / ((n - 1) * (n - 2) * (n - 3));\n var b = s4 / (v * v);\n var c = ((n - 1) * (n - 1)) / ((n - 2) * (n - 3));\n\n return a * b - 3 * c;\n }\n else {\n return m4 / (m2 * m2) - 3;\n }\n};\n\nexports.entropy = function entropy(values, eps) {\n if (typeof(eps) === 'undefined') eps = 0;\n var sum = 0, l = values.length;\n for (var i = 0; i < l; i++)\n sum += values[i] * Math.log(values[i] + eps);\n return -sum;\n};\n\nexports.weightedMean = function weightedMean(values, weights) {\n var sum = 0, l = values.length;\n for (var i = 0; i < l; i++)\n sum += values[i] * weights[i];\n return sum;\n};\n\nexports.weightedStandardDeviation = function weightedStandardDeviation(values, weights) {\n return Math.sqrt(exports.weightedVariance(values, weights));\n};\n\nexports.weightedVariance = function weightedVariance(values, weights) {\n var theMean = exports.weightedMean(values, weights);\n var vari = 0, l = values.length;\n var a = 0, b = 0;\n\n for (var i = 0; i < l; i++) {\n var z = values[i] - theMean;\n var w = weights[i];\n\n vari += w * (z * z);\n b += w;\n a += w * w;\n }\n\n return vari * (b / (b * b - a));\n};\n\nexports.center = function center(values, inPlace) {\n if (typeof(inPlace) === 'undefined') inPlace = false;\n\n var result = values;\n if (!inPlace)\n result = values.slice();\n\n var theMean = exports.mean(result), l = result.length;\n for (var i = 0; i < l; i++)\n result[i] -= theMean;\n};\n\nexports.standardize = function standardize(values, standardDev, inPlace) {\n if (typeof(standardDev) === 'undefined') standardDev = exports.standardDeviation(values);\n if (typeof(inPlace) === 'undefined') inPlace = false;\n var l = values.length;\n var result = inPlace ? values : new Array(l);\n for (var i = 0; i < l; i++)\n result[i] = values[i] / standardDev;\n return result;\n};\n\nexports.cumulativeSum = function cumulativeSum(array) {\n var l = array.length;\n var result = new Array(l);\n result[0] = array[0];\n for (var i = 1; i < l; i++)\n result[i] = result[i - 1] + array[i];\n return result;\n};\n","'use strict';\n\nvar LM = require('ml-curve-fitting');\nvar math = LM.Matrix.algebra;\nvar Matrix = require('ml-matrix');\n\n/**\n * This function calculates the spectrum as a sum of lorentzian functions. The Lorentzian\n * parameters are divided in 3 batches. 1st: centers; 2nd: heights; 3th: widths;\n * @param t Ordinate values\n * @param p Lorentzian parameters\n * @param c Constant parameters(Not used)\n * @returns {*}\n */\nfunction sumOfLorentzians(t,p,c){\n var nL = p.length/3,factor,i, j,p2, cols = t.rows;\n var result = Matrix.zeros(t.length,1);\n\n for(i=0;imaxY)\n maxY = y[i];\n }\n }\n else{\n //It is a colum matrix\n if(typeof x[0] === \"object\"){\n for(i=0;imaxY)\n maxY = y[i][0];\n }\n }\n\n }\n\n //}\n }\n else{\n //Looks like a column wise matrix [[x],[y]]\n var nbPoints = nbSeries;\n //if(nbPoints<3)\n // throw new SizeException(nbPoints);\n //else {\n t = new Array(nbPoints);//new Matrix(nbPoints, 1);\n y_data = new Array(nbPoints);//new Matrix(nbPoints, 1);\n for (i = 0; i < nbPoints; i++) {\n t[i] = xy[i][0];\n y_data[i] = xy[i][1];\n if(y_data[i]>maxY)\n maxY = y_data[i];\n }\n //}\n }\n for (i = 0; i < nbPoints; i++) {\n y_data[i]/=maxY;\n }\n if(threshold){\n for (i = nbPoints-1; i >=0; i--) {\n if(y_data[i]0)\n return [(new Matrix([t])).transpose(),(new Matrix([y_data])).transpose(),maxY];\n return null;\n}\n\nfunction sizeException(nbPoints) {\n return new RangeError(\"Not enough points to perform the optimization: \"+nbPoints +\"< 3\");\n}\n\nmodule.exports.optimizeSingleLorentzian = optimizeSingleLorentzian;\nmodule.exports.optimizeLorentzianSum = optimizeLorentzianSum;\nmodule.exports.optimizeSingleGaussian = optimizeSingleGaussian;\nmodule.exports.optimizeGaussianSum = optimizeGaussianSum;\nmodule.exports.singleGaussian = singleGaussian;\nmodule.exports.singleLorentzian = singleLorentzian;\nmodule.exports.optimizeGaussianTrain = optimizeGaussianTrain;\nmodule.exports.optimizeLorentzianTrain = optimizeLorentzianTrain;","'use strict';\n\nmodule.exports = abstractMatrix;\n\nvar LuDecomposition = require('./dc/lu');\nvar SvDecomposition = require('./dc/svd');\nvar arrayUtils = require('ml-array-utils');\nvar util = require('./util');\nvar MatrixTransposeView = require('./views/transpose');\nvar MatrixRowView = require('./views/row');\nvar MatrixSubView = require('./views/sub');\nvar MatrixSelectionView = require('./views/selection');\nvar MatrixColumnView = require('./views/column');\nvar MatrixFlipRowView = require('./views/flipRow');\nvar MatrixFlipColumnView = require('./views/flipColumn');\n\nfunction abstractMatrix(superCtor) {\n if (superCtor === undefined) superCtor = Object;\n\n /**\n * Real matrix\n * @class Matrix\n * @param {number|Array|Matrix} nRows - Number of rows of the new matrix,\n * 2D array containing the data or Matrix instance to clone\n * @param {number} [nColumns] - Number of columns of the new matrix\n */\n class Matrix extends superCtor {\n static get [Symbol.species]() {\n return this;\n }\n\n /**\n * Constructs a Matrix with the chosen dimensions from a 1D array\n * @param {number} newRows - Number of rows\n * @param {number} newColumns - Number of columns\n * @param {Array} newData - A 1D array containing data for the matrix\n * @return {Matrix} - The new matrix\n */\n static from1DArray(newRows, newColumns, newData) {\n var length = newRows * newColumns;\n if (length !== newData.length) {\n throw new RangeError('Data length does not match given dimensions');\n }\n var newMatrix = new this(newRows, newColumns);\n for (var row = 0; row < newRows; row++) {\n for (var column = 0; column < newColumns; column++) {\n newMatrix.set(row, column, newData[row * newColumns + column]);\n }\n }\n return newMatrix;\n }\n\n /**\n * Creates a row vector, a matrix with only one row.\n * @param {Array} newData - A 1D array containing data for the vector\n * @return {Matrix} - The new matrix\n */\n static rowVector(newData) {\n var vector = new this(1, newData.length);\n for (var i = 0; i < newData.length; i++) {\n vector.set(0, i, newData[i]);\n }\n return vector;\n }\n\n /**\n * Creates a column vector, a matrix with only one column.\n * @param {Array} newData - A 1D array containing data for the vector\n * @return {Matrix} - The new matrix\n */\n static columnVector(newData) {\n var vector = new this(newData.length, 1);\n for (var i = 0; i < newData.length; i++) {\n vector.set(i, 0, newData[i]);\n }\n return vector;\n }\n\n /**\n * Creates an empty matrix with the given dimensions. Values will be undefined. Same as using new Matrix(rows, columns).\n * @param {number} rows - Number of rows\n * @param {number} columns - Number of columns\n * @return {Matrix} - The new matrix\n */\n static empty(rows, columns) {\n return new this(rows, columns);\n }\n\n /**\n * Creates a matrix with the given dimensions. Values will be set to zero.\n * @param {number} rows - Number of rows\n * @param {number} columns - Number of columns\n * @return {Matrix} - The new matrix\n */\n static zeros(rows, columns) {\n return this.empty(rows, columns).fill(0);\n }\n\n /**\n * Creates a matrix with the given dimensions. Values will be set to one.\n * @param {number} rows - Number of rows\n * @param {number} columns - Number of columns\n * @return {Matrix} - The new matrix\n */\n static ones(rows, columns) {\n return this.empty(rows, columns).fill(1);\n }\n\n /**\n * Creates a matrix with the given dimensions. Values will be randomly set.\n * @param {number} rows - Number of rows\n * @param {number} columns - Number of columns\n * @param {function} [rng=Math.random] - Random number generator\n * @return {Matrix} The new matrix\n */\n static rand(rows, columns, rng) {\n if (rng === undefined) rng = Math.random;\n var matrix = this.empty(rows, columns);\n for (var i = 0; i < rows; i++) {\n for (var j = 0; j < columns; j++) {\n matrix.set(i, j, rng());\n }\n }\n return matrix;\n }\n\n /**\n * Creates a matrix with the given dimensions. Values will be random integers.\n * @param {number} rows - Number of rows\n * @param {number} columns - Number of columns\n * @param {number} [maxValue=1000] - Maximum value\n * @param {function} [rng=Math.random] - Random number generator\n * @return {Matrix} The new matrix\n */\n static randInt(rows, columns, maxValue, rng) {\n if (maxValue === undefined) maxValue = 1000;\n if (rng === undefined) rng = Math.random;\n var matrix = this.empty(rows, columns);\n for (var i = 0; i < rows; i++) {\n for (var j = 0; j < columns; j++) {\n var value = Math.floor(rng() * maxValue);\n matrix.set(i, j, value);\n }\n }\n return matrix;\n }\n\n /**\n * Creates an identity matrix with the given dimension. Values of the diagonal will be 1 and others will be 0.\n * @param {number} rows - Number of rows\n * @param {number} [columns=rows] - Number of columns\n * @param {number} [value=1] - Value to fill the diagonal with\n * @return {Matrix} - The new identity matrix\n */\n static eye(rows, columns, value) {\n if (columns === undefined) columns = rows;\n if (value === undefined) value = 1;\n var min = Math.min(rows, columns);\n var matrix = this.zeros(rows, columns);\n for (var i = 0; i < min; i++) {\n matrix.set(i, i, value);\n }\n return matrix;\n }\n\n /**\n * Creates a diagonal matrix based on the given array.\n * @param {Array} data - Array containing the data for the diagonal\n * @param {number} [rows] - Number of rows (Default: data.length)\n * @param {number} [columns] - Number of columns (Default: rows)\n * @return {Matrix} - The new diagonal matrix\n */\n static diag(data, rows, columns) {\n var l = data.length;\n if (rows === undefined) rows = l;\n if (columns === undefined) columns = rows;\n var min = Math.min(l, rows, columns);\n var matrix = this.zeros(rows, columns);\n for (var i = 0; i < min; i++) {\n matrix.set(i, i, data[i]);\n }\n return matrix;\n }\n\n /**\n * Returns a matrix whose elements are the minimum between matrix1 and matrix2\n * @param {Matrix} matrix1\n * @param {Matrix} matrix2\n * @return {Matrix}\n */\n static min(matrix1, matrix2) {\n matrix1 = this.checkMatrix(matrix1);\n matrix2 = this.checkMatrix(matrix2);\n var rows = matrix1.rows;\n var columns = matrix1.columns;\n var result = new this(rows, columns);\n for (var i = 0; i < rows; i++) {\n for (var j = 0; j < columns; j++) {\n result.set(i, j, Math.min(matrix1.get(i, j), matrix2.get(i, j)));\n }\n }\n return result;\n }\n\n /**\n * Returns a matrix whose elements are the maximum between matrix1 and matrix2\n * @param {Matrix} matrix1\n * @param {Matrix} matrix2\n * @return {Matrix}\n */\n static max(matrix1, matrix2) {\n matrix1 = this.checkMatrix(matrix1);\n matrix2 = this.checkMatrix(matrix2);\n var rows = matrix1.rows;\n var columns = matrix1.columns;\n var result = new this(rows, columns);\n for (var i = 0; i < rows; i++) {\n for (var j = 0; j < columns; j++) {\n result.set(i, j, Math.max(matrix1.get(i, j), matrix2.get(i, j)));\n }\n }\n return result;\n }\n\n /**\n * Check that the provided value is a Matrix and tries to instantiate one if not\n * @param {*} value - The value to check\n * @return {Matrix}\n */\n static checkMatrix(value) {\n return Matrix.isMatrix(value) ? value : new this(value);\n }\n\n /**\n * Returns true if the argument is a Matrix, false otherwise\n * @param {*} value - The value to check\n * @return {boolean}\n */\n static isMatrix(value) {\n return (value != null) && (value.klass === 'Matrix');\n }\n\n /**\n * @prop {number} size - The number of elements in the matrix.\n */\n get size() {\n return this.rows * this.columns;\n }\n\n /**\n * Applies a callback for each element of the matrix. The function is called in the matrix (this) context.\n * @param {function} callback - Function that will be called with two parameters : i (row) and j (column)\n * @return {Matrix} this\n */\n apply(callback) {\n if (typeof callback !== 'function') {\n throw new TypeError('callback must be a function');\n }\n var ii = this.rows;\n var jj = this.columns;\n for (var i = 0; i < ii; i++) {\n for (var j = 0; j < jj; j++) {\n callback.call(this, i, j);\n }\n }\n return this;\n }\n\n /**\n * Returns a new 1D array filled row by row with the matrix values\n * @return {Array}\n */\n to1DArray() {\n var array = new Array(this.size);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n array[i * this.columns + j] = this.get(i, j);\n }\n }\n return array;\n }\n\n /**\n * Returns a 2D array containing a copy of the data\n * @return {Array}\n */\n to2DArray() {\n var copy = new Array(this.rows);\n for (var i = 0; i < this.rows; i++) {\n copy[i] = new Array(this.columns);\n for (var j = 0; j < this.columns; j++) {\n copy[i][j] = this.get(i, j);\n }\n }\n return copy;\n }\n\n /**\n * @return {boolean} true if the matrix has one row\n */\n isRowVector() {\n return this.rows === 1;\n }\n\n /**\n * @return {boolean} true if the matrix has one column\n */\n isColumnVector() {\n return this.columns === 1;\n }\n\n /**\n * @return {boolean} true if the matrix has one row or one column\n */\n isVector() {\n return (this.rows === 1) || (this.columns === 1);\n }\n\n /**\n * @return {boolean} true if the matrix has the same number of rows and columns\n */\n isSquare() {\n return this.rows === this.columns;\n }\n\n /**\n * @return {boolean} true if the matrix is square and has the same values on both sides of the diagonal\n */\n isSymmetric() {\n if (this.isSquare()) {\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j <= i; j++) {\n if (this.get(i, j) !== this.get(j, i)) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n\n /**\n * Sets a given element of the matrix. mat.set(3,4,1) is equivalent to mat[3][4]=1\n * @abstract\n * @param {number} rowIndex - Index of the row\n * @param {number} columnIndex - Index of the column\n * @param {number} value - The new value for the element\n * @return {Matrix} this\n */\n set(rowIndex, columnIndex, value) { // eslint-disable-line no-unused-vars\n throw new Error('set method is unimplemented');\n }\n\n /**\n * Returns the given element of the matrix. mat.get(3,4) is equivalent to matrix[3][4]\n * @abstract\n * @param {number} rowIndex - Index of the row\n * @param {number} columnIndex - Index of the column\n * @return {number}\n */\n get(rowIndex, columnIndex) { // eslint-disable-line no-unused-vars\n throw new Error('get method is unimplemented');\n }\n\n /**\n * Creates a new matrix that is a repetition of the current matrix. New matrix has rowRep times the number of\n * rows of the matrix, and colRep times the number of columns of the matrix\n * @param {number} rowRep - Number of times the rows should be repeated\n * @param {number} colRep - Number of times the columns should be re\n * @return {Matrix}\n * @example\n * var matrix = new Matrix([[1,2]]);\n * matrix.repeat(2); // [[1,2],[1,2]]\n */\n repeat(rowRep, colRep) {\n rowRep = rowRep || 1;\n colRep = colRep || 1;\n var matrix = new this.constructor[Symbol.species](this.rows * rowRep, this.columns * colRep);\n for (var i = 0; i < rowRep; i++) {\n for (var j = 0; j < colRep; j++) {\n matrix.setSubMatrix(this, this.rows * i, this.columns * j);\n }\n }\n return matrix;\n }\n\n /**\n * Fills the matrix with a given value. All elements will be set to this value.\n * @param {number} value - New value\n * @return {Matrix} this\n */\n fill(value) {\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, value);\n }\n }\n return this;\n }\n\n /**\n * Negates the matrix. All elements will be multiplied by (-1)\n * @return {Matrix} this\n */\n neg() {\n return this.mulS(-1);\n }\n\n /**\n * Returns a new array from the given row index\n * @param {number} index - Row index\n * @return {Array}\n */\n getRow(index) {\n util.checkRowIndex(this, index);\n var row = new Array(this.columns);\n for (var i = 0; i < this.columns; i++) {\n row[i] = this.get(index, i);\n }\n return row;\n }\n\n /**\n * Returns a new row vector from the given row index\n * @param {number} index - Row index\n * @return {Matrix}\n */\n getRowVector(index) {\n return this.constructor.rowVector(this.getRow(index));\n }\n\n /**\n * Sets a row at the given index\n * @param {number} index - Row index\n * @param {Array|Matrix} array - Array or vector\n * @return {Matrix} this\n */\n setRow(index, array) {\n util.checkRowIndex(this, index);\n array = util.checkRowVector(this, array);\n for (var i = 0; i < this.columns; i++) {\n this.set(index, i, array[i]);\n }\n return this;\n }\n\n /**\n * Swaps two rows\n * @param {number} row1 - First row index\n * @param {number} row2 - Second row index\n * @return {Matrix} this\n */\n swapRows(row1, row2) {\n util.checkRowIndex(this, row1);\n util.checkRowIndex(this, row2);\n for (var i = 0; i < this.columns; i++) {\n var temp = this.get(row1, i);\n this.set(row1, i, this.get(row2, i));\n this.set(row2, i, temp);\n }\n return this;\n }\n\n /**\n * Returns a new array from the given column index\n * @param {number} index - Column index\n * @return {Array}\n */\n getColumn(index) {\n util.checkColumnIndex(this, index);\n var column = new Array(this.rows);\n for (var i = 0; i < this.rows; i++) {\n column[i] = this.get(i, index);\n }\n return column;\n }\n\n /**\n * Returns a new column vector from the given column index\n * @param {number} index - Column index\n * @return {Matrix}\n */\n getColumnVector(index) {\n return this.constructor.columnVector(this.getColumn(index));\n }\n\n /**\n * Sets a column at the given index\n * @param {number} index - Column index\n * @param {Array|Matrix} array - Array or vector\n * @return {Matrix} this\n */\n setColumn(index, array) {\n util.checkColumnIndex(this, index);\n array = util.checkColumnVector(this, array);\n for (var i = 0; i < this.rows; i++) {\n this.set(i, index, array[i]);\n }\n return this;\n }\n\n /**\n * Swaps two columns\n * @param {number} column1 - First column index\n * @param {number} column2 - Second column index\n * @return {Matrix} this\n */\n swapColumns(column1, column2) {\n util.checkColumnIndex(this, column1);\n util.checkColumnIndex(this, column2);\n for (var i = 0; i < this.rows; i++) {\n var temp = this.get(i, column1);\n this.set(i, column1, this.get(i, column2));\n this.set(i, column2, temp);\n }\n return this;\n }\n\n /**\n * Adds the values of a vector to each row\n * @param {Array|Matrix} vector - Array or vector\n * @return {Matrix} this\n */\n addRowVector(vector) {\n vector = util.checkRowVector(this, vector);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) + vector[j]);\n }\n }\n return this;\n }\n\n /**\n * Subtracts the values of a vector from each row\n * @param {Array|Matrix} vector - Array or vector\n * @return {Matrix} this\n */\n subRowVector(vector) {\n vector = util.checkRowVector(this, vector);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) - vector[j]);\n }\n }\n return this;\n }\n\n /**\n * Multiplies the values of a vector with each row\n * @param {Array|Matrix} vector - Array or vector\n * @return {Matrix} this\n */\n mulRowVector(vector) {\n vector = util.checkRowVector(this, vector);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) * vector[j]);\n }\n }\n return this;\n }\n\n /**\n * Divides the values of each row by those of a vector\n * @param {Array|Matrix} vector - Array or vector\n * @return {Matrix} this\n */\n divRowVector(vector) {\n vector = util.checkRowVector(this, vector);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) / vector[j]);\n }\n }\n return this;\n }\n\n /**\n * Adds the values of a vector to each column\n * @param {Array|Matrix} vector - Array or vector\n * @return {Matrix} this\n */\n addColumnVector(vector) {\n vector = util.checkColumnVector(this, vector);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) + vector[i]);\n }\n }\n return this;\n }\n\n /**\n * Subtracts the values of a vector from each column\n * @param {Array|Matrix} vector - Array or vector\n * @return {Matrix} this\n */\n subColumnVector(vector) {\n vector = util.checkColumnVector(this, vector);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) - vector[i]);\n }\n }\n return this;\n }\n\n /**\n * Multiplies the values of a vector with each column\n * @param {Array|Matrix} vector - Array or vector\n * @return {Matrix} this\n */\n mulColumnVector(vector) {\n vector = util.checkColumnVector(this, vector);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) * vector[i]);\n }\n }\n return this;\n }\n\n /**\n * Divides the values of each column by those of a vector\n * @param {Array|Matrix} vector - Array or vector\n * @return {Matrix} this\n */\n divColumnVector(vector) {\n vector = util.checkColumnVector(this, vector);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) / vector[i]);\n }\n }\n return this;\n }\n\n /**\n * Multiplies the values of a row with a scalar\n * @param {number} index - Row index\n * @param {number} value\n * @return {Matrix} this\n */\n mulRow(index, value) {\n util.checkRowIndex(this, index);\n for (var i = 0; i < this.columns; i++) {\n this.set(index, i, this.get(index, i) * value);\n }\n return this;\n }\n\n /**\n * Multiplies the values of a column with a scalar\n * @param {number} index - Column index\n * @param {number} value\n * @return {Matrix} this\n */\n mulColumn(index, value) {\n util.checkColumnIndex(this, index);\n for (var i = 0; i < this.rows; i++) {\n this.set(i, index, this.get(i, index) * value);\n }\n return this;\n }\n\n /**\n * Returns the maximum value of the matrix\n * @return {number}\n */\n max() {\n var v = this.get(0, 0);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n if (this.get(i, j) > v) {\n v = this.get(i, j);\n }\n }\n }\n return v;\n }\n\n /**\n * Returns the index of the maximum value\n * @return {Array}\n */\n maxIndex() {\n var v = this.get(0, 0);\n var idx = [0, 0];\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n if (this.get(i, j) > v) {\n v = this.get(i, j);\n idx[0] = i;\n idx[1] = j;\n }\n }\n }\n return idx;\n }\n\n /**\n * Returns the minimum value of the matrix\n * @return {number}\n */\n min() {\n var v = this.get(0, 0);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n if (this.get(i, j) < v) {\n v = this.get(i, j);\n }\n }\n }\n return v;\n }\n\n /**\n * Returns the index of the minimum value\n * @return {Array}\n */\n minIndex() {\n var v = this.get(0, 0);\n var idx = [0, 0];\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n if (this.get(i, j) < v) {\n v = this.get(i, j);\n idx[0] = i;\n idx[1] = j;\n }\n }\n }\n return idx;\n }\n\n /**\n * Returns the maximum value of one row\n * @param {number} row - Row index\n * @return {number}\n */\n maxRow(row) {\n util.checkRowIndex(this, row);\n var v = this.get(row, 0);\n for (var i = 1; i < this.columns; i++) {\n if (this.get(row, i) > v) {\n v = this.get(row, i);\n }\n }\n return v;\n }\n\n /**\n * Returns the index of the maximum value of one row\n * @param {number} row - Row index\n * @return {Array}\n */\n maxRowIndex(row) {\n util.checkRowIndex(this, row);\n var v = this.get(row, 0);\n var idx = [row, 0];\n for (var i = 1; i < this.columns; i++) {\n if (this.get(row, i) > v) {\n v = this.get(row, i);\n idx[1] = i;\n }\n }\n return idx;\n }\n\n /**\n * Returns the minimum value of one row\n * @param {number} row - Row index\n * @return {number}\n */\n minRow(row) {\n util.checkRowIndex(this, row);\n var v = this.get(row, 0);\n for (var i = 1; i < this.columns; i++) {\n if (this.get(row, i) < v) {\n v = this.get(row, i);\n }\n }\n return v;\n }\n\n /**\n * Returns the index of the maximum value of one row\n * @param {number} row - Row index\n * @return {Array}\n */\n minRowIndex(row) {\n util.checkRowIndex(this, row);\n var v = this.get(row, 0);\n var idx = [row, 0];\n for (var i = 1; i < this.columns; i++) {\n if (this.get(row, i) < v) {\n v = this.get(row, i);\n idx[1] = i;\n }\n }\n return idx;\n }\n\n /**\n * Returns the maximum value of one column\n * @param {number} column - Column index\n * @return {number}\n */\n maxColumn(column) {\n util.checkColumnIndex(this, column);\n var v = this.get(0, column);\n for (var i = 1; i < this.rows; i++) {\n if (this.get(i, column) > v) {\n v = this.get(i, column);\n }\n }\n return v;\n }\n\n /**\n * Returns the index of the maximum value of one column\n * @param {number} column - Column index\n * @return {Array}\n */\n maxColumnIndex(column) {\n util.checkColumnIndex(this, column);\n var v = this.get(0, column);\n var idx = [0, column];\n for (var i = 1; i < this.rows; i++) {\n if (this.get(i, column) > v) {\n v = this.get(i, column);\n idx[0] = i;\n }\n }\n return idx;\n }\n\n /**\n * Returns the minimum value of one column\n * @param {number} column - Column index\n * @return {number}\n */\n minColumn(column) {\n util.checkColumnIndex(this, column);\n var v = this.get(0, column);\n for (var i = 1; i < this.rows; i++) {\n if (this.get(i, column) < v) {\n v = this.get(i, column);\n }\n }\n return v;\n }\n\n /**\n * Returns the index of the minimum value of one column\n * @param {number} column - Column index\n * @return {Array}\n */\n minColumnIndex(column) {\n util.checkColumnIndex(this, column);\n var v = this.get(0, column);\n var idx = [0, column];\n for (var i = 1; i < this.rows; i++) {\n if (this.get(i, column) < v) {\n v = this.get(i, column);\n idx[0] = i;\n }\n }\n return idx;\n }\n\n /**\n * Returns an array containing the diagonal values of the matrix\n * @return {Array}\n */\n diag() {\n var min = Math.min(this.rows, this.columns);\n var diag = new Array(min);\n for (var i = 0; i < min; i++) {\n diag[i] = this.get(i, i);\n }\n return diag;\n }\n\n /**\n * Returns the sum by the argument given, if no argument given,\n * it returns the sum of all elements of the matrix.\n * @param {string} by - sum by 'row' or 'column'.\n * @return {Matrix|number}\n */\n sum(by) {\n switch (by) {\n case 'row':\n return util.sumByRow(this);\n case 'column':\n return util.sumByColumn(this);\n default:\n return util.sumAll(this);\n }\n }\n\n /**\n * Returns the mean of all elements of the matrix\n * @return {number}\n */\n mean() {\n return this.sum() / this.size;\n }\n\n /**\n * Returns the product of all elements of the matrix\n * @return {number}\n */\n prod() {\n var prod = 1;\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n prod *= this.get(i, j);\n }\n }\n return prod;\n }\n\n /**\n * Computes the cumulative sum of the matrix elements (in place, row by row)\n * @return {Matrix} this\n */\n cumulativeSum() {\n var sum = 0;\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n sum += this.get(i, j);\n this.set(i, j, sum);\n }\n }\n return this;\n }\n\n /**\n * Computes the dot (scalar) product between the matrix and another\n * @param {Matrix} vector2 vector\n * @return {number}\n */\n dot(vector2) {\n if (Matrix.isMatrix(vector2)) vector2 = vector2.to1DArray();\n var vector1 = this.to1DArray();\n if (vector1.length !== vector2.length) {\n throw new RangeError('vectors do not have the same size');\n }\n var dot = 0;\n for (var i = 0; i < vector1.length; i++) {\n dot += vector1[i] * vector2[i];\n }\n return dot;\n }\n\n /**\n * Returns the matrix product between this and other\n * @param {Matrix} other\n * @return {Matrix}\n */\n mmul(other) {\n other = this.constructor.checkMatrix(other);\n if (this.columns !== other.rows) {\n // eslint-disable-next-line no-console\n console.warn('Number of columns of left matrix are not equal to number of rows of right matrix.');\n }\n\n var m = this.rows;\n var n = this.columns;\n var p = other.columns;\n\n var result = new this.constructor[Symbol.species](m, p);\n\n var Bcolj = new Array(n);\n for (var j = 0; j < p; j++) {\n for (var k = 0; k < n; k++) {\n Bcolj[k] = other.get(k, j);\n }\n\n for (var i = 0; i < m; i++) {\n var s = 0;\n for (k = 0; k < n; k++) {\n s += this.get(i, k) * Bcolj[k];\n }\n\n result.set(i, j, s);\n }\n }\n return result;\n }\n\n strassen2x2(other) {\n var result = new this.constructor[Symbol.species](2, 2);\n const a11 = this.get(0, 0);\n const b11 = other.get(0, 0);\n const a12 = this.get(0, 1);\n const b12 = other.get(0, 1);\n const a21 = this.get(1, 0);\n const b21 = other.get(1, 0);\n const a22 = this.get(1, 1);\n const b22 = other.get(1, 1);\n\n // Compute intermediate values.\n const m1 = (a11 + a22) * (b11 + b22);\n const m2 = (a21 + a22) * b11;\n const m3 = a11 * (b12 - b22);\n const m4 = a22 * (b21 - b11);\n const m5 = (a11 + a12) * b22;\n const m6 = (a21 - a11) * (b11 + b12);\n const m7 = (a12 - a22) * (b21 + b22);\n\n // Combine intermediate values into the output.\n const c00 = m1 + m4 - m5 + m7;\n const c01 = m3 + m5;\n const c10 = m2 + m4;\n const c11 = m1 - m2 + m3 + m6;\n\n result.set(0, 0, c00);\n result.set(0, 1, c01);\n result.set(1, 0, c10);\n result.set(1, 1, c11);\n return result;\n }\n\n strassen3x3(other) {\n var result = new this.constructor[Symbol.species](3, 3);\n\n const a00 = this.get(0, 0);\n const a01 = this.get(0, 1);\n const a02 = this.get(0, 2);\n const a10 = this.get(1, 0);\n const a11 = this.get(1, 1);\n const a12 = this.get(1, 2);\n const a20 = this.get(2, 0);\n const a21 = this.get(2, 1);\n const a22 = this.get(2, 2);\n\n const b00 = other.get(0, 0);\n const b01 = other.get(0, 1);\n const b02 = other.get(0, 2);\n const b10 = other.get(1, 0);\n const b11 = other.get(1, 1);\n const b12 = other.get(1, 2);\n const b20 = other.get(2, 0);\n const b21 = other.get(2, 1);\n const b22 = other.get(2, 2);\n\n const m1 = (a00 + a01 + a02 - a10 - a11 - a21 - a22) * b11;\n const m2 = (a00 - a10) * (-b01 + b11);\n const m3 = a11 * (-b00 + b01 + b10 - b11 - b12 - b20 + b22);\n const m4 = (-a00 + a10 + a11) * (b00 - b01 + b11);\n const m5 = (a10 + a11) * (-b00 + b01);\n const m6 = a00 * b00;\n const m7 = (-a00 + a20 + a21) * (b00 - b02 + b12);\n const m8 = (-a00 + a20) * (b02 - b12);\n const m9 = (a20 + a21) * (-b00 + b02);\n const m10 = (a00 + a01 + a02 - a11 - a12 - a20 - a21) * b12;\n const m11 = a21 * (-b00 + b02 + b10 - b11 - b12 - b20 + b21);\n const m12 = (-a02 + a21 + a22) * (b11 + b20 - b21);\n const m13 = (a02 - a22) * (b11 - b21);\n const m14 = a02 * b20;\n const m15 = (a21 + a22) * (-b20 + b21);\n const m16 = (-a02 + a11 + a12) * (b12 + b20 - b22);\n const m17 = (a02 - a12) * (b12 - b22);\n const m18 = (a11 + a12) * (-b20 + b22);\n const m19 = a01 * b10;\n const m20 = a12 * b21;\n const m21 = a10 * b02;\n const m22 = a20 * b01;\n const m23 = a22 * b22;\n\n const c00 = m6 + m14 + m19;\n const c01 = m1 + m4 + m5 + m6 + m12 + m14 + m15;\n const c02 = m6 + m7 + m9 + m10 + m14 + m16 + m18;\n const c10 = m2 + m3 + m4 + m6 + m14 + m16 + m17;\n const c11 = m2 + m4 + m5 + m6 + m20;\n const c12 = m14 + m16 + m17 + m18 + m21;\n const c20 = m6 + m7 + m8 + m11 + m12 + m13 + m14;\n const c21 = m12 + m13 + m14 + m15 + m22;\n const c22 = m6 + m7 + m8 + m9 + m23;\n\n result.set(0, 0, c00);\n result.set(0, 1, c01);\n result.set(0, 2, c02);\n result.set(1, 0, c10);\n result.set(1, 1, c11);\n result.set(1, 2, c12);\n result.set(2, 0, c20);\n result.set(2, 1, c21);\n result.set(2, 2, c22);\n return result;\n }\n\n /**\n * Returns the matrix product between x and y. More efficient than mmul(other) only when we multiply squared matrix and when the size of the matrix is > 1000.\n * @param {Matrix} y\n * @return {Matrix}\n */\n mmulStrassen(y) {\n var x = this.clone();\n var r1 = x.rows;\n var c1 = x.columns;\n var r2 = y.rows;\n var c2 = y.columns;\n if (c1 !== r2) {\n // eslint-disable-next-line no-console\n console.warn(`Multiplying ${r1} x ${c1} and ${r2} x ${c2} matrix: dimensions do not match.`);\n }\n\n // Put a matrix into the top left of a matrix of zeros.\n // `rows` and `cols` are the dimensions of the output matrix.\n function embed(mat, rows, cols) {\n var r = mat.rows;\n var c = mat.columns;\n if ((r === rows) && (c === cols)) {\n return mat;\n } else {\n var resultat = Matrix.zeros(rows, cols);\n resultat = resultat.setSubMatrix(mat, 0, 0);\n return resultat;\n }\n }\n\n\n // Make sure both matrices are the same size.\n // This is exclusively for simplicity:\n // this algorithm can be implemented with matrices of different sizes.\n\n var r = Math.max(r1, r2);\n var c = Math.max(c1, c2);\n x = embed(x, r, c);\n y = embed(y, r, c);\n\n // Our recursive multiplication function.\n function blockMult(a, b, rows, cols) {\n // For small matrices, resort to naive multiplication.\n if (rows <= 512 || cols <= 512) {\n return a.mmul(b); // a is equivalent to this\n }\n\n // Apply dynamic padding.\n if ((rows % 2 === 1) && (cols % 2 === 1)) {\n a = embed(a, rows + 1, cols + 1);\n b = embed(b, rows + 1, cols + 1);\n } else if (rows % 2 === 1) {\n a = embed(a, rows + 1, cols);\n b = embed(b, rows + 1, cols);\n } else if (cols % 2 === 1) {\n a = embed(a, rows, cols + 1);\n b = embed(b, rows, cols + 1);\n }\n\n var halfRows = parseInt(a.rows / 2);\n var halfCols = parseInt(a.columns / 2);\n // Subdivide input matrices.\n var a11 = a.subMatrix(0, halfRows - 1, 0, halfCols - 1);\n var b11 = b.subMatrix(0, halfRows - 1, 0, halfCols - 1);\n\n var a12 = a.subMatrix(0, halfRows - 1, halfCols, a.columns - 1);\n var b12 = b.subMatrix(0, halfRows - 1, halfCols, b.columns - 1);\n\n var a21 = a.subMatrix(halfRows, a.rows - 1, 0, halfCols - 1);\n var b21 = b.subMatrix(halfRows, b.rows - 1, 0, halfCols - 1);\n\n var a22 = a.subMatrix(halfRows, a.rows - 1, halfCols, a.columns - 1);\n var b22 = b.subMatrix(halfRows, b.rows - 1, halfCols, b.columns - 1);\n\n // Compute intermediate values.\n var m1 = blockMult(Matrix.add(a11, a22), Matrix.add(b11, b22), halfRows, halfCols);\n var m2 = blockMult(Matrix.add(a21, a22), b11, halfRows, halfCols);\n var m3 = blockMult(a11, Matrix.sub(b12, b22), halfRows, halfCols);\n var m4 = blockMult(a22, Matrix.sub(b21, b11), halfRows, halfCols);\n var m5 = blockMult(Matrix.add(a11, a12), b22, halfRows, halfCols);\n var m6 = blockMult(Matrix.sub(a21, a11), Matrix.add(b11, b12), halfRows, halfCols);\n var m7 = blockMult(Matrix.sub(a12, a22), Matrix.add(b21, b22), halfRows, halfCols);\n\n // Combine intermediate values into the output.\n var c11 = Matrix.add(m1, m4);\n c11.sub(m5);\n c11.add(m7);\n var c12 = Matrix.add(m3, m5);\n var c21 = Matrix.add(m2, m4);\n var c22 = Matrix.sub(m1, m2);\n c22.add(m3);\n c22.add(m6);\n\n //Crop output to the desired size (undo dynamic padding).\n var resultat = Matrix.zeros(2 * c11.rows, 2 * c11.columns);\n resultat = resultat.setSubMatrix(c11, 0, 0);\n resultat = resultat.setSubMatrix(c12, c11.rows, 0);\n resultat = resultat.setSubMatrix(c21, 0, c11.columns);\n resultat = resultat.setSubMatrix(c22, c11.rows, c11.columns);\n return resultat.subMatrix(0, rows - 1, 0, cols - 1);\n }\n return blockMult(x, y, r, c);\n }\n\n /**\n * Returns a row-by-row scaled matrix\n * @param {number} [min=0] - Minimum scaled value\n * @param {number} [max=1] - Maximum scaled value\n * @return {Matrix} - The scaled matrix\n */\n scaleRows(min, max) {\n min = min === undefined ? 0 : min;\n max = max === undefined ? 1 : max;\n if (min >= max) {\n throw new RangeError('min should be strictly smaller than max');\n }\n var newMatrix = this.constructor.empty(this.rows, this.columns);\n for (var i = 0; i < this.rows; i++) {\n var scaled = arrayUtils.scale(this.getRow(i), {min, max});\n newMatrix.setRow(i, scaled);\n }\n return newMatrix;\n }\n\n /**\n * Returns a new column-by-column scaled matrix\n * @param {number} [min=0] - Minimum scaled value\n * @param {number} [max=1] - Maximum scaled value\n * @return {Matrix} - The new scaled matrix\n * @example\n * var matrix = new Matrix([[1,2],[-1,0]]);\n * var scaledMatrix = matrix.scaleColumns(); // [[1,1],[0,0]]\n */\n scaleColumns(min, max) {\n min = min === undefined ? 0 : min;\n max = max === undefined ? 1 : max;\n if (min >= max) {\n throw new RangeError('min should be strictly smaller than max');\n }\n var newMatrix = this.constructor.empty(this.rows, this.columns);\n for (var i = 0; i < this.columns; i++) {\n var scaled = arrayUtils.scale(this.getColumn(i), {\n min: min,\n max: max\n });\n newMatrix.setColumn(i, scaled);\n }\n return newMatrix;\n }\n\n\n /**\n * Returns the Kronecker product (also known as tensor product) between this and other\n * See https://en.wikipedia.org/wiki/Kronecker_product\n * @param {Matrix} other\n * @return {Matrix}\n */\n kroneckerProduct(other) {\n other = this.constructor.checkMatrix(other);\n\n var m = this.rows;\n var n = this.columns;\n var p = other.rows;\n var q = other.columns;\n\n var result = new this.constructor[Symbol.species](m * p, n * q);\n for (var i = 0; i < m; i++) {\n for (var j = 0; j < n; j++) {\n for (var k = 0; k < p; k++) {\n for (var l = 0; l < q; l++) {\n result[p * i + k][q * j + l] = this.get(i, j) * other.get(k, l);\n }\n }\n }\n }\n return result;\n }\n\n /**\n * Transposes the matrix and returns a new one containing the result\n * @return {Matrix}\n */\n transpose() {\n var result = new this.constructor[Symbol.species](this.columns, this.rows);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n result.set(j, i, this.get(i, j));\n }\n }\n return result;\n }\n\n /**\n * Sorts the rows (in place)\n * @param {function} compareFunction - usual Array.prototype.sort comparison function\n * @return {Matrix} this\n */\n sortRows(compareFunction) {\n if (compareFunction === undefined) compareFunction = compareNumbers;\n for (var i = 0; i < this.rows; i++) {\n this.setRow(i, this.getRow(i).sort(compareFunction));\n }\n return this;\n }\n\n /**\n * Sorts the columns (in place)\n * @param {function} compareFunction - usual Array.prototype.sort comparison function\n * @return {Matrix} this\n */\n sortColumns(compareFunction) {\n if (compareFunction === undefined) compareFunction = compareNumbers;\n for (var i = 0; i < this.columns; i++) {\n this.setColumn(i, this.getColumn(i).sort(compareFunction));\n }\n return this;\n }\n\n /**\n * Returns a subset of the matrix\n * @param {number} startRow - First row index\n * @param {number} endRow - Last row index\n * @param {number} startColumn - First column index\n * @param {number} endColumn - Last column index\n * @return {Matrix}\n */\n subMatrix(startRow, endRow, startColumn, endColumn) {\n util.checkRange(this, startRow, endRow, startColumn, endColumn);\n var newMatrix = new this.constructor[Symbol.species](endRow - startRow + 1, endColumn - startColumn + 1);\n for (var i = startRow; i <= endRow; i++) {\n for (var j = startColumn; j <= endColumn; j++) {\n newMatrix[i - startRow][j - startColumn] = this.get(i, j);\n }\n }\n return newMatrix;\n }\n\n /**\n * Returns a subset of the matrix based on an array of row indices\n * @param {Array} indices - Array containing the row indices\n * @param {number} [startColumn = 0] - First column index\n * @param {number} [endColumn = this.columns-1] - Last column index\n * @return {Matrix}\n */\n subMatrixRow(indices, startColumn, endColumn) {\n if (startColumn === undefined) startColumn = 0;\n if (endColumn === undefined) endColumn = this.columns - 1;\n if ((startColumn > endColumn) || (startColumn < 0) || (startColumn >= this.columns) || (endColumn < 0) || (endColumn >= this.columns)) {\n throw new RangeError('Argument out of range');\n }\n\n var newMatrix = new this.constructor[Symbol.species](indices.length, endColumn - startColumn + 1);\n for (var i = 0; i < indices.length; i++) {\n for (var j = startColumn; j <= endColumn; j++) {\n if (indices[i] < 0 || indices[i] >= this.rows) {\n throw new RangeError('Row index out of range: ' + indices[i]);\n }\n newMatrix.set(i, j - startColumn, this.get(indices[i], j));\n }\n }\n return newMatrix;\n }\n\n /**\n * Returns a subset of the matrix based on an array of column indices\n * @param {Array} indices - Array containing the column indices\n * @param {number} [startRow = 0] - First row index\n * @param {number} [endRow = this.rows-1] - Last row index\n * @return {Matrix}\n */\n subMatrixColumn(indices, startRow, endRow) {\n if (startRow === undefined) startRow = 0;\n if (endRow === undefined) endRow = this.rows - 1;\n if ((startRow > endRow) || (startRow < 0) || (startRow >= this.rows) || (endRow < 0) || (endRow >= this.rows)) {\n throw new RangeError('Argument out of range');\n }\n\n var newMatrix = new this.constructor[Symbol.species](endRow - startRow + 1, indices.length);\n for (var i = 0; i < indices.length; i++) {\n for (var j = startRow; j <= endRow; j++) {\n if (indices[i] < 0 || indices[i] >= this.columns) {\n throw new RangeError('Column index out of range: ' + indices[i]);\n }\n newMatrix.set(j - startRow, i, this.get(j, indices[i]));\n }\n }\n return newMatrix;\n }\n\n /**\n * Set a part of the matrix to the given sub-matrix\n * @param {Matrix|Array< Array >} matrix - The source matrix from which to extract values.\n * @param {number} startRow - The index of the first row to set\n * @param {number} startColumn - The index of the first column to set\n * @return {Matrix}\n */\n setSubMatrix(matrix, startRow, startColumn) {\n matrix = this.constructor.checkMatrix(matrix);\n var endRow = startRow + matrix.rows - 1;\n var endColumn = startColumn + matrix.columns - 1;\n util.checkRange(this, startRow, endRow, startColumn, endColumn);\n for (var i = 0; i < matrix.rows; i++) {\n for (var j = 0; j < matrix.columns; j++) {\n this[startRow + i][startColumn + j] = matrix.get(i, j);\n }\n }\n return this;\n }\n\n /**\n * Return a new matrix based on a selection of rows and columns\n * @param {Array} rowIndices - The row indices to select. Order matters and an index can be more than once.\n * @param {Array} columnIndices - The column indices to select. Order matters and an index can be use more than once.\n * @return {Matrix} The new matrix\n */\n selection(rowIndices, columnIndices) {\n var indices = util.checkIndices(this, rowIndices, columnIndices);\n var newMatrix = new this.constructor[Symbol.species](rowIndices.length, columnIndices.length);\n for (var i = 0; i < indices.row.length; i++) {\n var rowIndex = indices.row[i];\n for (var j = 0; j < indices.column.length; j++) {\n var columnIndex = indices.column[j];\n newMatrix[i][j] = this.get(rowIndex, columnIndex);\n }\n }\n return newMatrix;\n }\n\n /**\n * Returns the trace of the matrix (sum of the diagonal elements)\n * @return {number}\n */\n trace() {\n var min = Math.min(this.rows, this.columns);\n var trace = 0;\n for (var i = 0; i < min; i++) {\n trace += this.get(i, i);\n }\n return trace;\n }\n\n /*\n Matrix views\n */\n\n /**\n * Returns a view of the transposition of the matrix\n * @return {MatrixTransposeView}\n */\n transposeView() {\n return new MatrixTransposeView(this);\n }\n\n /**\n * Returns a view of the row vector with the given index\n * @param {number} row - row index of the vector\n * @return {MatrixRowView}\n */\n rowView(row) {\n util.checkRowIndex(this, row);\n return new MatrixRowView(this, row);\n }\n\n /**\n * Returns a view of the column vector with the given index\n * @param {number} column - column index of the vector\n * @return {MatrixColumnView}\n */\n columnView(column) {\n util.checkColumnIndex(this, column);\n return new MatrixColumnView(this, column);\n }\n\n /**\n * Returns a view of the matrix flipped in the row axis\n * @return {MatrixFlipRowView}\n */\n flipRowView() {\n return new MatrixFlipRowView(this);\n }\n\n /**\n * Returns a view of the matrix flipped in the column axis\n * @return {MatrixFlipColumnView}\n */\n flipColumnView() {\n return new MatrixFlipColumnView(this);\n }\n\n /**\n * Returns a view of a submatrix giving the index boundaries\n * @param {number} startRow - first row index of the submatrix\n * @param {number} endRow - last row index of the submatrix\n * @param {number} startColumn - first column index of the submatrix\n * @param {number} endColumn - last column index of the submatrix\n * @return {MatrixSubView}\n */\n subMatrixView(startRow, endRow, startColumn, endColumn) {\n return new MatrixSubView(this, startRow, endRow, startColumn, endColumn);\n }\n\n /**\n * Returns a view of the cross of the row indices and the column indices\n * @example\n * // resulting vector is [[2], [2]]\n * var matrix = new Matrix([[1,2,3], [4,5,6]]).selectionView([0, 0], [1])\n * @param {Array} rowIndices\n * @param {Array} columnIndices\n * @return {MatrixSelectionView}\n */\n selectionView(rowIndices, columnIndices) {\n return new MatrixSelectionView(this, rowIndices, columnIndices);\n }\n\n\n /**\n * Calculates and returns the determinant of a matrix as a Number\n * @example\n * new Matrix([[1,2,3], [4,5,6]]).det()\n * @return {number}\n */\n det() {\n if (this.isSquare()) {\n var a, b, c, d;\n if (this.columns === 2) {\n // 2 x 2 matrix\n a = this.get(0, 0);\n b = this.get(0, 1);\n c = this.get(1, 0);\n d = this.get(1, 1);\n\n return a * d - (b * c);\n } else if (this.columns === 3) {\n // 3 x 3 matrix\n var subMatrix0, subMatrix1, subMatrix2;\n subMatrix0 = this.selectionView([1, 2], [1, 2]);\n subMatrix1 = this.selectionView([1, 2], [0, 2]);\n subMatrix2 = this.selectionView([1, 2], [0, 1]);\n a = this.get(0, 0);\n b = this.get(0, 1);\n c = this.get(0, 2);\n\n return a * subMatrix0.det() - b * subMatrix1.det() + c * subMatrix2.det();\n } else {\n // general purpose determinant using the LU decomposition\n return new LuDecomposition(this).determinant;\n }\n\n } else {\n throw Error('Determinant can only be calculated for a square matrix.');\n }\n }\n\n /**\n * Returns inverse of a matrix if it exists or the pseudoinverse\n * @param {number} threshold - threshold for taking inverse of singular values (default = 1e-15)\n * @return {Matrix} the (pseudo)inverted matrix.\n */\n pseudoInverse(threshold) {\n if (threshold === undefined) threshold = Number.EPSILON;\n var svdSolution = new SvDecomposition(this, {autoTranspose: true});\n\n var U = svdSolution.leftSingularVectors;\n var V = svdSolution.rightSingularVectors;\n var s = svdSolution.diagonal;\n\n for (var i = 0; i < s.length; i++) {\n if (Math.abs(s[i]) > threshold) {\n s[i] = 1.0 / s[i];\n } else {\n s[i] = 0.0;\n }\n }\n\n // convert list to diagonal\n s = this.constructor[Symbol.species].diag(s);\n return V.mmul(s.mmul(U.transposeView()));\n }\n }\n\n Matrix.prototype.klass = 'Matrix';\n\n /**\n * @private\n * Check that two matrices have the same dimensions\n * @param {Matrix} matrix\n * @param {Matrix} otherMatrix\n */\n function checkDimensions(matrix, otherMatrix) { // eslint-disable-line no-unused-vars\n if (matrix.rows !== otherMatrix.rows ||\n matrix.columns !== otherMatrix.columns) {\n throw new RangeError('Matrices dimensions must be equal');\n }\n }\n\n function compareNumbers(a, b) {\n return a - b;\n }\n\n /*\n Synonyms\n */\n\n Matrix.random = Matrix.rand;\n Matrix.diagonal = Matrix.diag;\n Matrix.prototype.diagonal = Matrix.prototype.diag;\n Matrix.identity = Matrix.eye;\n Matrix.prototype.negate = Matrix.prototype.neg;\n Matrix.prototype.tensorProduct = Matrix.prototype.kroneckerProduct;\n Matrix.prototype.determinant = Matrix.prototype.det;\n\n /*\n Add dynamically instance and static methods for mathematical operations\n */\n\n var inplaceOperator = `\n(function %name%(value) {\n if (typeof value === 'number') return this.%name%S(value);\n return this.%name%M(value);\n})\n`;\n\n var inplaceOperatorScalar = `\n(function %name%S(value) {\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) %op% value);\n }\n }\n return this;\n})\n`;\n\n var inplaceOperatorMatrix = `\n(function %name%M(matrix) {\n matrix = this.constructor.checkMatrix(matrix);\n checkDimensions(this, matrix);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, this.get(i, j) %op% matrix.get(i, j));\n }\n }\n return this;\n})\n`;\n\n var staticOperator = `\n(function %name%(matrix, value) {\n var newMatrix = new this[Symbol.species](matrix);\n return newMatrix.%name%(value);\n})\n`;\n\n var inplaceMethod = `\n(function %name%() {\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, %method%(this.get(i, j)));\n }\n }\n return this;\n})\n`;\n\n var staticMethod = `\n(function %name%(matrix) {\n var newMatrix = new this[Symbol.species](matrix);\n return newMatrix.%name%();\n})\n`;\n\n var inplaceMethodWithArgs = `\n(function %name%(%args%) {\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, %method%(this.get(i, j), %args%));\n }\n }\n return this;\n})\n`;\n\n var staticMethodWithArgs = `\n(function %name%(matrix, %args%) {\n var newMatrix = new this[Symbol.species](matrix);\n return newMatrix.%name%(%args%);\n})\n`;\n\n\n var inplaceMethodWithOneArgScalar = `\n(function %name%S(value) {\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, %method%(this.get(i, j), value));\n }\n }\n return this;\n})\n`;\n var inplaceMethodWithOneArgMatrix = `\n(function %name%M(matrix) {\n matrix = this.constructor.checkMatrix(matrix);\n checkDimensions(this, matrix);\n for (var i = 0; i < this.rows; i++) {\n for (var j = 0; j < this.columns; j++) {\n this.set(i, j, %method%(this.get(i, j), matrix.get(i, j)));\n }\n }\n return this;\n})\n`;\n\n var inplaceMethodWithOneArg = `\n(function %name%(value) {\n if (typeof value === 'number') return this.%name%S(value);\n return this.%name%M(value);\n})\n`;\n\n var staticMethodWithOneArg = staticMethodWithArgs;\n\n var operators = [\n // Arithmetic operators\n ['+', 'add'],\n ['-', 'sub', 'subtract'],\n ['*', 'mul', 'multiply'],\n ['/', 'div', 'divide'],\n ['%', 'mod', 'modulus'],\n // Bitwise operators\n ['&', 'and'],\n ['|', 'or'],\n ['^', 'xor'],\n ['<<', 'leftShift'],\n ['>>', 'signPropagatingRightShift'],\n ['>>>', 'rightShift', 'zeroFillRightShift']\n ];\n\n var i;\n\n for (var operator of operators) {\n var inplaceOp = eval(fillTemplateFunction(inplaceOperator, {name: operator[1], op: operator[0]}));\n var inplaceOpS = eval(fillTemplateFunction(inplaceOperatorScalar, {name: operator[1] + 'S', op: operator[0]}));\n var inplaceOpM = eval(fillTemplateFunction(inplaceOperatorMatrix, {name: operator[1] + 'M', op: operator[0]}));\n var staticOp = eval(fillTemplateFunction(staticOperator, {name: operator[1]}));\n for (i = 1; i < operator.length; i++) {\n Matrix.prototype[operator[i]] = inplaceOp;\n Matrix.prototype[operator[i] + 'S'] = inplaceOpS;\n Matrix.prototype[operator[i] + 'M'] = inplaceOpM;\n Matrix[operator[i]] = staticOp;\n }\n }\n\n var methods = [\n ['~', 'not']\n ];\n\n [\n 'abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'cbrt', 'ceil',\n 'clz32', 'cos', 'cosh', 'exp', 'expm1', 'floor', 'fround', 'log', 'log1p',\n 'log10', 'log2', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc'\n ].forEach(function (mathMethod) {\n methods.push(['Math.' + mathMethod, mathMethod]);\n });\n\n for (var method of methods) {\n var inplaceMeth = eval(fillTemplateFunction(inplaceMethod, {name: method[1], method: method[0]}));\n var staticMeth = eval(fillTemplateFunction(staticMethod, {name: method[1]}));\n for (i = 1; i < method.length; i++) {\n Matrix.prototype[method[i]] = inplaceMeth;\n Matrix[method[i]] = staticMeth;\n }\n }\n\n var methodsWithArgs = [\n ['Math.pow', 1, 'pow']\n ];\n\n for (var methodWithArg of methodsWithArgs) {\n var args = 'arg0';\n for (i = 1; i < methodWithArg[1]; i++) {\n args += `, arg${i}`;\n }\n if (methodWithArg[1] !== 1) {\n var inplaceMethWithArgs = eval(fillTemplateFunction(inplaceMethodWithArgs, {\n name: methodWithArg[2],\n method: methodWithArg[0],\n args: args\n }));\n var staticMethWithArgs = eval(fillTemplateFunction(staticMethodWithArgs, {name: methodWithArg[2], args: args}));\n for (i = 2; i < methodWithArg.length; i++) {\n Matrix.prototype[methodWithArg[i]] = inplaceMethWithArgs;\n Matrix[methodWithArg[i]] = staticMethWithArgs;\n }\n } else {\n var tmplVar = {\n name: methodWithArg[2],\n args: args,\n method: methodWithArg[0]\n };\n var inplaceMethod2 = eval(fillTemplateFunction(inplaceMethodWithOneArg, tmplVar));\n var inplaceMethodS = eval(fillTemplateFunction(inplaceMethodWithOneArgScalar, tmplVar));\n var inplaceMethodM = eval(fillTemplateFunction(inplaceMethodWithOneArgMatrix, tmplVar));\n var staticMethod2 = eval(fillTemplateFunction(staticMethodWithOneArg, tmplVar));\n for (i = 2; i < methodWithArg.length; i++) {\n Matrix.prototype[methodWithArg[i]] = inplaceMethod2;\n Matrix.prototype[methodWithArg[i] + 'M'] = inplaceMethodM;\n Matrix.prototype[methodWithArg[i] + 'S'] = inplaceMethodS;\n Matrix[methodWithArg[i]] = staticMethod2;\n }\n }\n }\n\n function fillTemplateFunction(template, values) {\n for (var value in values) {\n template = template.replace(new RegExp('%' + value + '%', 'g'), values[value]);\n }\n return template;\n }\n\n return Matrix;\n}\n","'use strict';\n\nvar Matrix = require('../matrix');\n\n// https://github.com/lutzroeder/Mapack/blob/master/Source/LuDecomposition.cs\nfunction LuDecomposition(matrix) {\n if (!(this instanceof LuDecomposition)) {\n return new LuDecomposition(matrix);\n }\n\n matrix = Matrix.Matrix.checkMatrix(matrix);\n\n var lu = matrix.clone(),\n rows = lu.rows,\n columns = lu.columns,\n pivotVector = new Array(rows),\n pivotSign = 1,\n i, j, k, p, s, t, v,\n LUrowi, LUcolj, kmax;\n\n for (i = 0; i < rows; i++) {\n pivotVector[i] = i;\n }\n\n LUcolj = new Array(rows);\n\n for (j = 0; j < columns; j++) {\n\n for (i = 0; i < rows; i++) {\n LUcolj[i] = lu[i][j];\n }\n\n for (i = 0; i < rows; i++) {\n LUrowi = lu[i];\n kmax = Math.min(i, j);\n s = 0;\n for (k = 0; k < kmax; k++) {\n s += LUrowi[k] * LUcolj[k];\n }\n LUrowi[j] = LUcolj[i] -= s;\n }\n\n p = j;\n for (i = j + 1; i < rows; i++) {\n if (Math.abs(LUcolj[i]) > Math.abs(LUcolj[p])) {\n p = i;\n }\n }\n\n if (p !== j) {\n for (k = 0; k < columns; k++) {\n t = lu[p][k];\n lu[p][k] = lu[j][k];\n lu[j][k] = t;\n }\n\n v = pivotVector[p];\n pivotVector[p] = pivotVector[j];\n pivotVector[j] = v;\n\n pivotSign = -pivotSign;\n }\n\n if (j < rows && lu[j][j] !== 0) {\n for (i = j + 1; i < rows; i++) {\n lu[i][j] /= lu[j][j];\n }\n }\n }\n\n this.LU = lu;\n this.pivotVector = pivotVector;\n this.pivotSign = pivotSign;\n}\n\nLuDecomposition.prototype = {\n isSingular: function () {\n var data = this.LU,\n col = data.columns;\n for (var j = 0; j < col; j++) {\n if (data[j][j] === 0) {\n return true;\n }\n }\n return false;\n },\n get determinant() {\n var data = this.LU;\n if (!data.isSquare()) {\n throw new Error('Matrix must be square');\n }\n var determinant = this.pivotSign, col = data.columns;\n for (var j = 0; j < col; j++) {\n determinant *= data[j][j];\n }\n return determinant;\n },\n get lowerTriangularMatrix() {\n var data = this.LU,\n rows = data.rows,\n columns = data.columns,\n X = new Matrix.Matrix(rows, columns);\n for (var i = 0; i < rows; i++) {\n for (var j = 0; j < columns; j++) {\n if (i > j) {\n X[i][j] = data[i][j];\n } else if (i === j) {\n X[i][j] = 1;\n } else {\n X[i][j] = 0;\n }\n }\n }\n return X;\n },\n get upperTriangularMatrix() {\n var data = this.LU,\n rows = data.rows,\n columns = data.columns,\n X = new Matrix.Matrix(rows, columns);\n for (var i = 0; i < rows; i++) {\n for (var j = 0; j < columns; j++) {\n if (i <= j) {\n X[i][j] = data[i][j];\n } else {\n X[i][j] = 0;\n }\n }\n }\n return X;\n },\n get pivotPermutationVector() {\n return this.pivotVector.slice();\n },\n solve: function (value) {\n value = Matrix.Matrix.checkMatrix(value);\n\n var lu = this.LU,\n rows = lu.rows;\n\n if (rows !== value.rows) {\n throw new Error('Invalid matrix dimensions');\n }\n if (this.isSingular()) {\n throw new Error('LU matrix is singular');\n }\n\n var count = value.columns;\n var X = value.subMatrixRow(this.pivotVector, 0, count - 1);\n var columns = lu.columns;\n var i, j, k;\n\n for (k = 0; k < columns; k++) {\n for (i = k + 1; i < columns; i++) {\n for (j = 0; j < count; j++) {\n X[i][j] -= X[k][j] * lu[i][k];\n }\n }\n }\n for (k = columns - 1; k >= 0; k--) {\n for (j = 0; j < count; j++) {\n X[k][j] /= lu[k][k];\n }\n for (i = 0; i < k; i++) {\n for (j = 0; j < count; j++) {\n X[i][j] -= X[k][j] * lu[i][k];\n }\n }\n }\n return X;\n }\n};\n\nmodule.exports = LuDecomposition;\n","'use strict';\n\nvar Matrix = require('../matrix');\nvar util = require('./util');\nvar hypotenuse = util.hypotenuse;\nvar getFilled2DArray = util.getFilled2DArray;\n\n// https://github.com/lutzroeder/Mapack/blob/master/Source/SingularValueDecomposition.cs\nfunction SingularValueDecomposition(value, options) {\n if (!(this instanceof SingularValueDecomposition)) {\n return new SingularValueDecomposition(value, options);\n }\n value = Matrix.Matrix.checkMatrix(value);\n\n options = options || {};\n\n var m = value.rows,\n n = value.columns,\n nu = Math.min(m, n);\n\n var wantu = true, wantv = true;\n if (options.computeLeftSingularVectors === false) wantu = false;\n if (options.computeRightSingularVectors === false) wantv = false;\n var autoTranspose = options.autoTranspose === true;\n\n var swapped = false;\n var a;\n if (m < n) {\n if (!autoTranspose) {\n a = value.clone();\n // eslint-disable-next-line no-console\n console.warn('Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose');\n } else {\n a = value.transpose();\n m = a.rows;\n n = a.columns;\n swapped = true;\n var aux = wantu;\n wantu = wantv;\n wantv = aux;\n }\n } else {\n a = value.clone();\n }\n\n var s = new Array(Math.min(m + 1, n)),\n U = getFilled2DArray(m, nu, 0),\n V = getFilled2DArray(n, n, 0),\n e = new Array(n),\n work = new Array(m);\n\n var nct = Math.min(m - 1, n);\n var nrt = Math.max(0, Math.min(n - 2, m));\n\n var i, j, k, p, t, ks, f, cs, sn, max, kase,\n scale, sp, spm1, epm1, sk, ek, b, c, shift, g;\n\n for (k = 0, max = Math.max(nct, nrt); k < max; k++) {\n if (k < nct) {\n s[k] = 0;\n for (i = k; i < m; i++) {\n s[k] = hypotenuse(s[k], a[i][k]);\n }\n if (s[k] !== 0) {\n if (a[k][k] < 0) {\n s[k] = -s[k];\n }\n for (i = k; i < m; i++) {\n a[i][k] /= s[k];\n }\n a[k][k] += 1;\n }\n s[k] = -s[k];\n }\n\n for (j = k + 1; j < n; j++) {\n if ((k < nct) && (s[k] !== 0)) {\n t = 0;\n for (i = k; i < m; i++) {\n t += a[i][k] * a[i][j];\n }\n t = -t / a[k][k];\n for (i = k; i < m; i++) {\n a[i][j] += t * a[i][k];\n }\n }\n e[j] = a[k][j];\n }\n\n if (wantu && (k < nct)) {\n for (i = k; i < m; i++) {\n U[i][k] = a[i][k];\n }\n }\n\n if (k < nrt) {\n e[k] = 0;\n for (i = k + 1; i < n; i++) {\n e[k] = hypotenuse(e[k], e[i]);\n }\n if (e[k] !== 0) {\n if (e[k + 1] < 0) {\n e[k] = 0 - e[k];\n }\n for (i = k + 1; i < n; i++) {\n e[i] /= e[k];\n }\n e[k + 1] += 1;\n }\n e[k] = -e[k];\n if ((k + 1 < m) && (e[k] !== 0)) {\n for (i = k + 1; i < m; i++) {\n work[i] = 0;\n }\n for (j = k + 1; j < n; j++) {\n for (i = k + 1; i < m; i++) {\n work[i] += e[j] * a[i][j];\n }\n }\n for (j = k + 1; j < n; j++) {\n t = -e[j] / e[k + 1];\n for (i = k + 1; i < m; i++) {\n a[i][j] += t * work[i];\n }\n }\n }\n if (wantv) {\n for (i = k + 1; i < n; i++) {\n V[i][k] = e[i];\n }\n }\n }\n }\n\n p = Math.min(n, m + 1);\n if (nct < n) {\n s[nct] = a[nct][nct];\n }\n if (m < p) {\n s[p - 1] = 0;\n }\n if (nrt + 1 < p) {\n e[nrt] = a[nrt][p - 1];\n }\n e[p - 1] = 0;\n\n if (wantu) {\n for (j = nct; j < nu; j++) {\n for (i = 0; i < m; i++) {\n U[i][j] = 0;\n }\n U[j][j] = 1;\n }\n for (k = nct - 1; k >= 0; k--) {\n if (s[k] !== 0) {\n for (j = k + 1; j < nu; j++) {\n t = 0;\n for (i = k; i < m; i++) {\n t += U[i][k] * U[i][j];\n }\n t = -t / U[k][k];\n for (i = k; i < m; i++) {\n U[i][j] += t * U[i][k];\n }\n }\n for (i = k; i < m; i++) {\n U[i][k] = -U[i][k];\n }\n U[k][k] = 1 + U[k][k];\n for (i = 0; i < k - 1; i++) {\n U[i][k] = 0;\n }\n } else {\n for (i = 0; i < m; i++) {\n U[i][k] = 0;\n }\n U[k][k] = 1;\n }\n }\n }\n\n if (wantv) {\n for (k = n - 1; k >= 0; k--) {\n if ((k < nrt) && (e[k] !== 0)) {\n for (j = k + 1; j < n; j++) {\n t = 0;\n for (i = k + 1; i < n; i++) {\n t += V[i][k] * V[i][j];\n }\n t = -t / V[k + 1][k];\n for (i = k + 1; i < n; i++) {\n V[i][j] += t * V[i][k];\n }\n }\n }\n for (i = 0; i < n; i++) {\n V[i][k] = 0;\n }\n V[k][k] = 1;\n }\n }\n\n var pp = p - 1,\n iter = 0,\n eps = Math.pow(2, -52);\n while (p > 0) {\n for (k = p - 2; k >= -1; k--) {\n if (k === -1) {\n break;\n }\n if (Math.abs(e[k]) <= eps * (Math.abs(s[k]) + Math.abs(s[k + 1]))) {\n e[k] = 0;\n break;\n }\n }\n if (k === p - 2) {\n kase = 4;\n } else {\n for (ks = p - 1; ks >= k; ks--) {\n if (ks === k) {\n break;\n }\n t = (ks !== p ? Math.abs(e[ks]) : 0) + (ks !== k + 1 ? Math.abs(e[ks - 1]) : 0);\n if (Math.abs(s[ks]) <= eps * t) {\n s[ks] = 0;\n break;\n }\n }\n if (ks === k) {\n kase = 3;\n } else if (ks === p - 1) {\n kase = 1;\n } else {\n kase = 2;\n k = ks;\n }\n }\n\n k++;\n\n switch (kase) {\n case 1: {\n f = e[p - 2];\n e[p - 2] = 0;\n for (j = p - 2; j >= k; j--) {\n t = hypotenuse(s[j], f);\n cs = s[j] / t;\n sn = f / t;\n s[j] = t;\n if (j !== k) {\n f = -sn * e[j - 1];\n e[j - 1] = cs * e[j - 1];\n }\n if (wantv) {\n for (i = 0; i < n; i++) {\n t = cs * V[i][j] + sn * V[i][p - 1];\n V[i][p - 1] = -sn * V[i][j] + cs * V[i][p - 1];\n V[i][j] = t;\n }\n }\n }\n break;\n }\n case 2 : {\n f = e[k - 1];\n e[k - 1] = 0;\n for (j = k; j < p; j++) {\n t = hypotenuse(s[j], f);\n cs = s[j] / t;\n sn = f / t;\n s[j] = t;\n f = -sn * e[j];\n e[j] = cs * e[j];\n if (wantu) {\n for (i = 0; i < m; i++) {\n t = cs * U[i][j] + sn * U[i][k - 1];\n U[i][k - 1] = -sn * U[i][j] + cs * U[i][k - 1];\n U[i][j] = t;\n }\n }\n }\n break;\n }\n case 3 : {\n scale = Math.max(Math.max(Math.max(Math.max(Math.abs(s[p - 1]), Math.abs(s[p - 2])), Math.abs(e[p - 2])), Math.abs(s[k])), Math.abs(e[k]));\n sp = s[p - 1] / scale;\n spm1 = s[p - 2] / scale;\n epm1 = e[p - 2] / scale;\n sk = s[k] / scale;\n ek = e[k] / scale;\n b = ((spm1 + sp) * (spm1 - sp) + epm1 * epm1) / 2;\n c = (sp * epm1) * (sp * epm1);\n shift = 0;\n if ((b !== 0) || (c !== 0)) {\n shift = Math.sqrt(b * b + c);\n if (b < 0) {\n shift = -shift;\n }\n shift = c / (b + shift);\n }\n f = (sk + sp) * (sk - sp) + shift;\n g = sk * ek;\n for (j = k; j < p - 1; j++) {\n t = hypotenuse(f, g);\n cs = f / t;\n sn = g / t;\n if (j !== k) {\n e[j - 1] = t;\n }\n f = cs * s[j] + sn * e[j];\n e[j] = cs * e[j] - sn * s[j];\n g = sn * s[j + 1];\n s[j + 1] = cs * s[j + 1];\n if (wantv) {\n for (i = 0; i < n; i++) {\n t = cs * V[i][j] + sn * V[i][j + 1];\n V[i][j + 1] = -sn * V[i][j] + cs * V[i][j + 1];\n V[i][j] = t;\n }\n }\n t = hypotenuse(f, g);\n cs = f / t;\n sn = g / t;\n s[j] = t;\n f = cs * e[j] + sn * s[j + 1];\n s[j + 1] = -sn * e[j] + cs * s[j + 1];\n g = sn * e[j + 1];\n e[j + 1] = cs * e[j + 1];\n if (wantu && (j < m - 1)) {\n for (i = 0; i < m; i++) {\n t = cs * U[i][j] + sn * U[i][j + 1];\n U[i][j + 1] = -sn * U[i][j] + cs * U[i][j + 1];\n U[i][j] = t;\n }\n }\n }\n e[p - 2] = f;\n iter = iter + 1;\n break;\n }\n case 4: {\n if (s[k] <= 0) {\n s[k] = (s[k] < 0 ? -s[k] : 0);\n if (wantv) {\n for (i = 0; i <= pp; i++) {\n V[i][k] = -V[i][k];\n }\n }\n }\n while (k < pp) {\n if (s[k] >= s[k + 1]) {\n break;\n }\n t = s[k];\n s[k] = s[k + 1];\n s[k + 1] = t;\n if (wantv && (k < n - 1)) {\n for (i = 0; i < n; i++) {\n t = V[i][k + 1];\n V[i][k + 1] = V[i][k];\n V[i][k] = t;\n }\n }\n if (wantu && (k < m - 1)) {\n for (i = 0; i < m; i++) {\n t = U[i][k + 1];\n U[i][k + 1] = U[i][k];\n U[i][k] = t;\n }\n }\n k++;\n }\n iter = 0;\n p--;\n break;\n }\n // no default\n }\n }\n\n if (swapped) {\n var tmp = V;\n V = U;\n U = tmp;\n }\n\n this.m = m;\n this.n = n;\n this.s = s;\n this.U = U;\n this.V = V;\n}\n\nSingularValueDecomposition.prototype = {\n get condition() {\n return this.s[0] / this.s[Math.min(this.m, this.n) - 1];\n },\n get norm2() {\n return this.s[0];\n },\n get rank() {\n var eps = Math.pow(2, -52),\n tol = Math.max(this.m, this.n) * this.s[0] * eps,\n r = 0,\n s = this.s;\n for (var i = 0, ii = s.length; i < ii; i++) {\n if (s[i] > tol) {\n r++;\n }\n }\n return r;\n },\n get diagonal() {\n return this.s;\n },\n // https://github.com/accord-net/framework/blob/development/Sources/Accord.Math/Decompositions/SingularValueDecomposition.cs\n get threshold() {\n return (Math.pow(2, -52) / 2) * Math.max(this.m, this.n) * this.s[0];\n },\n get leftSingularVectors() {\n if (!Matrix.Matrix.isMatrix(this.U)) {\n this.U = new Matrix.Matrix(this.U);\n }\n return this.U;\n },\n get rightSingularVectors() {\n if (!Matrix.Matrix.isMatrix(this.V)) {\n this.V = new Matrix.Matrix(this.V);\n }\n return this.V;\n },\n get diagonalMatrix() {\n return Matrix.Matrix.diag(this.s);\n },\n solve: function (value) {\n\n var Y = value,\n e = this.threshold,\n scols = this.s.length,\n Ls = Matrix.Matrix.zeros(scols, scols),\n i;\n\n for (i = 0; i < scols; i++) {\n if (Math.abs(this.s[i]) <= e) {\n Ls[i][i] = 0;\n } else {\n Ls[i][i] = 1 / this.s[i];\n }\n }\n\n var U = this.U;\n var V = this.rightSingularVectors;\n\n var VL = V.mmul(Ls),\n vrows = V.rows,\n urows = U.length,\n VLU = Matrix.Matrix.zeros(vrows, urows),\n j, k, sum;\n\n for (i = 0; i < vrows; i++) {\n for (j = 0; j < urows; j++) {\n sum = 0;\n for (k = 0; k < scols; k++) {\n sum += VL[i][k] * U[j][k];\n }\n VLU[i][j] = sum;\n }\n }\n\n return VLU.mmul(Y);\n },\n solveForDiagonal: function (value) {\n return this.solve(Matrix.Matrix.diag(value));\n },\n inverse: function () {\n var V = this.V;\n var e = this.threshold,\n vrows = V.length,\n vcols = V[0].length,\n X = new Matrix.Matrix(vrows, this.s.length),\n i, j;\n\n for (i = 0; i < vrows; i++) {\n for (j = 0; j < vcols; j++) {\n if (Math.abs(this.s[j]) > e) {\n X[i][j] = V[i][j] / this.s[j];\n } else {\n X[i][j] = 0;\n }\n }\n }\n\n var U = this.U;\n\n var urows = U.length,\n ucols = U[0].length,\n Y = new Matrix.Matrix(vrows, urows),\n k, sum;\n\n for (i = 0; i < vrows; i++) {\n for (j = 0; j < urows; j++) {\n sum = 0;\n for (k = 0; k < ucols; k++) {\n sum += X[i][k] * U[j][k];\n }\n Y[i][j] = sum;\n }\n }\n\n return Y;\n }\n};\n\nmodule.exports = SingularValueDecomposition;\n","/**\n * Created by acastillo on 8/24/15.\n */\n/**\n * Non in-place function definitions, compatible with mathjs code *\n */\n\n'use strict';\n\nvar Matrix = require('ml-matrix');\n\nfunction matrix(A,B){\n return new Matrix(A,B);\n}\n\nfunction ones(rows, cols){\n return Matrix.ones(rows,cols);\n}\n\nfunction eye(rows, cols){\n return Matrix.eye(rows, cols);\n}\n\nfunction zeros(rows, cols){\n return Matrix.zeros(rows, cols);\n}\n\nfunction random(rows, cols){\n return Matrix.rand(rows,cols);\n}\n\nfunction transpose(A){\n if(typeof A == 'number')\n return A;\n var result = A.clone();\n return result.transpose();\n}\n\nfunction add(A, B){\n if(typeof A == 'number'&&typeof B === 'number')\n return A+B;\n if(typeof A == 'number')\n return this.add(B,A);\n\n var result = A.clone();\n return result.add(B);\n\n}\n\nfunction subtract(A, B){\n if(typeof A == 'number'&&typeof B === 'number')\n return A-B;\n if(typeof A == 'number')\n return this.subtract(B,A);\n var result = A.clone();\n return result.sub(B);\n}\n\nfunction multiply(A, B){\n if(typeof A == 'number'&&typeof B === 'number')\n return A*B;\n if(typeof A == 'number')\n return this.multiply(B,A);\n\n var result = A.clone();\n\n if(typeof B === 'number')\n result.mul(B);\n else\n result = result.mmul(B);\n\n if(result.rows==1&&result.columns==1)\n return result[0][0];\n else\n return result;\n\n}\n\nfunction dotMultiply(A, B){\n var result = A.clone();\n return result.mul(B);\n}\n\nfunction dotDivide(A, B){\n var result = A.clone();\n return result.div(B);\n}\n\nfunction diag(A){\n var diag = null;\n var rows = A.rows, cols = A.columns, j, r;\n //It is an array\n if(typeof cols === \"undefined\" && (typeof A)=='object'){\n if(A[0]&&A[0].length){\n rows = A.length;\n cols = A[0].length;\n r = Math.min(rows,cols);\n diag = Matrix.zeros(cols, cols);\n for (j = 0; j < cols; j++) {\n diag[j][j]=A[j][j];\n }\n }\n else{\n cols = A.length;\n diag = Matrix.zeros(cols, cols);\n for (j = 0; j < cols; j++) {\n diag[j][j]=A[j];\n }\n }\n\n }\n if(rows == 1){\n diag = Matrix.zeros(cols, cols);\n for (j = 0; j < cols; j++) {\n diag[j][j]=A[0][j];\n }\n }\n else{\n if(rows>0 && cols > 0){\n r = Math.min(rows,cols);\n diag = new Array(r);\n for (j = 0; j < r; j++) {\n diag[j] = A[j][j];\n }\n }\n }\n return diag;\n}\n\nfunction min(A, B){\n if(typeof A==='number' && typeof B ==='number')\n return Math.min(A,B);\n var ii = A.rows, jj = A.columns;\n var result = new Matrix(ii,jj);\n for (var i = 0; i < ii; i++) {\n for (var j = 0; j < jj; j++) {\n if (A[i][j] < B[i][j]) {\n result[i][j] = A[i][j];\n }\n else{\n result[i][j] = B[i][j];\n }\n }\n }\n return result;\n}\n\nfunction max(A, B){\n if(typeof A==='number' && typeof B ==='number')\n return Math.max(A,B);\n var ii = A.rows, jj = A.columns;\n var result = new Matrix(ii,jj);\n for (var i = 0; i < ii; i++) {\n for (var j = 0; j < jj; j++) {\n if (A[i][j] > B[i][j]) {\n result[i][j] = A[i][j];\n }\n else{\n result[i][j] = B[i][j];\n }\n }\n }\n return result;\n}\n\nfunction sqrt(A){\n if(typeof A==='number' )\n return Math.sqrt(A);\n var ii = A.rows, jj = A.columns;\n var result = new Matrix(ii,jj);\n for (var i = 0; i < ii; i++) {\n for (var j = 0; j < jj; j++) {\n result[i][j] = Math.sqrt(A[i][j]);\n\n }\n }\n return result;\n}\n\nfunction abs(A){\n if(typeof A==='number' )\n return Math.abs(A);\n var ii = A.rows, jj = A.columns;\n var result = new Matrix(ii,jj);\n for (var i = 0; i < ii; i++) {\n for (var j = 0; j < jj; j++) {\n result[i][j] = Math.abs(A[i][j]);\n\n }\n }\n return result;\n}\n\nfunction exp(A){\n if(typeof A==='number' )\n return Math.sqrt(A);\n var ii = A.rows, jj = A.columns;\n var result = new Matrix(ii,jj);\n for (var i = 0; i < ii; i++) {\n for (var j = 0; j < jj; j++) {\n result[i][j] = Math.exp(A[i][j]);\n }\n }\n return result;\n}\n\nfunction dotPow(A, b){\n if(typeof A==='number' )\n return Math.pow(A,b);\n //console.log(A);\n var ii = A.rows, jj = A.columns;\n var result = new Matrix(ii,jj);\n for (var i = 0; i < ii; i++) {\n for (var j = 0; j < jj; j++) {\n result[i][j] = Math.pow(A[i][j],b);\n }\n }\n return result;\n}\n\nfunction solve(A, B){\n return A.solve(B);\n}\n\nfunction inv(A){\n if(typeof A ===\"number\")\n return 1/A;\n return A.inverse();\n}\n\nmodule.exports = {\n transpose:transpose,\n add:add,\n subtract:subtract,\n multiply:multiply,\n dotMultiply:dotMultiply,\n dotDivide:dotDivide,\n diag:diag,\n min:min,\n max:max,\n solve:solve,\n inv:inv,\n sqrt:sqrt,\n exp:exp,\n dotPow:dotPow,\n abs:abs,\n matrix:matrix,\n ones:ones,\n zeros:zeros,\n random:random,\n eye:eye\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*\n * This file is used by module bundlers (browserify/webpack/etc) when\n * including a stream implementation. We use \"readable-stream\" to get a\n * consistent behavior between nodejs versions but bundlers often have a shim\n * for \"stream\". Using this shim greatly improve the compatibility and greatly\n * reduce the final size of the bundle (only one stream implementation, not\n * two).\n */\nmodule.exports = require(\"stream\");\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","'use strict';\nvar utils = require('./utils');\nvar support = require('./support');\n// private property\nvar _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n\n// public method for encoding\nexports.encode = function(input) {\n var output = [];\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0, len = input.length, remainingBytes = len;\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n while (i < input.length) {\n remainingBytes = len - i;\n\n if (!isArray) {\n chr1 = input.charCodeAt(i++);\n chr2 = i < len ? input.charCodeAt(i++) : 0;\n chr3 = i < len ? input.charCodeAt(i++) : 0;\n } else {\n chr1 = input[i++];\n chr2 = i < len ? input[i++] : 0;\n chr3 = i < len ? input[i++] : 0;\n }\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;\n enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;\n\n output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));\n\n }\n\n return output.join(\"\");\n};\n\n// public method for decoding\nexports.decode = function(input) {\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0, resultIndex = 0;\n\n var dataUrlPrefix = \"data:\";\n\n if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {\n // This is a common error: people give a data url\n // (data:image/png;base64,iVBOR...) with a {base64: true} and\n // wonders why things don't work.\n // We can detect that the string input looks like a data url but we\n // *can't* be sure it is one: removing everything up to the comma would\n // be too dangerous.\n throw new Error(\"Invalid base64 input, it looks like a data url.\");\n }\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n var totalLength = input.length * 3 / 4;\n if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if (totalLength % 1 !== 0) {\n // totalLength is not an integer, the length does not match a valid\n // base64 content. That can happen if:\n // - the input is not a base64 content\n // - the input is *almost* a base64 content, with a extra chars at the\n // beginning or at the end\n // - the input uses a base64 variant (base64url for example)\n throw new Error(\"Invalid base64 input, bad content length.\");\n }\n var output;\n if (support.uint8array) {\n output = new Uint8Array(totalLength|0);\n } else {\n output = new Array(totalLength|0);\n }\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[resultIndex++] = chr1;\n\n if (enc3 !== 64) {\n output[resultIndex++] = chr2;\n }\n if (enc4 !== 64) {\n output[resultIndex++] = chr3;\n }\n\n }\n\n return output;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar ConvertWorker = require('./ConvertWorker');\nvar GenericWorker = require('./GenericWorker');\nvar base64 = require('../base64');\nvar support = require(\"../support\");\nvar external = require(\"../external\");\n\nvar NodejsStreamOutputAdapter = null;\nif (support.nodestream) {\n try {\n NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter');\n } catch(e) {}\n}\n\n/**\n * Apply the final transformation of the data. If the user wants a Blob for\n * example, it's easier to work with an U8intArray and finally do the\n * ArrayBuffer/Blob conversion.\n * @param {String} type the name of the final type\n * @param {String|Uint8Array|Buffer} content the content to transform\n * @param {String} mimeType the mime type of the content, if applicable.\n * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format.\n */\nfunction transformZipOutput(type, content, mimeType) {\n switch(type) {\n case \"blob\" :\n return utils.newBlob(utils.transformTo(\"arraybuffer\", content), mimeType);\n case \"base64\" :\n return base64.encode(content);\n default :\n return utils.transformTo(type, content);\n }\n}\n\n/**\n * Concatenate an array of data of the given type.\n * @param {String} type the type of the data in the given array.\n * @param {Array} dataArray the array containing the data chunks to concatenate\n * @return {String|Uint8Array|Buffer} the concatenated data\n * @throws Error if the asked type is unsupported\n */\nfunction concat (type, dataArray) {\n var i, index = 0, res = null, totalLength = 0;\n for(i = 0; i < dataArray.length; i++) {\n totalLength += dataArray[i].length;\n }\n switch(type) {\n case \"string\":\n return dataArray.join(\"\");\n case \"array\":\n return Array.prototype.concat.apply([], dataArray);\n case \"uint8array\":\n res = new Uint8Array(totalLength);\n for(i = 0; i < dataArray.length; i++) {\n res.set(dataArray[i], index);\n index += dataArray[i].length;\n }\n return res;\n case \"nodebuffer\":\n return Buffer.concat(dataArray);\n default:\n throw new Error(\"concat : unsupported type '\" + type + \"'\");\n }\n}\n\n/**\n * Listen a StreamHelper, accumulate its content and concatenate it into a\n * complete block.\n * @param {StreamHelper} helper the helper to use.\n * @param {Function} updateCallback a callback called on each update. Called\n * with one arg :\n * - the metadata linked to the update received.\n * @return Promise the promise for the accumulation.\n */\nfunction accumulate(helper, updateCallback) {\n return new external.Promise(function (resolve, reject){\n var dataArray = [];\n var chunkType = helper._internalType,\n resultType = helper._outputType,\n mimeType = helper._mimeType;\n helper\n .on('data', function (data, meta) {\n dataArray.push(data);\n if(updateCallback) {\n updateCallback(meta);\n }\n })\n .on('error', function(err) {\n dataArray = [];\n reject(err);\n })\n .on('end', function (){\n try {\n var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType);\n resolve(result);\n } catch (e) {\n reject(e);\n }\n dataArray = [];\n })\n .resume();\n });\n}\n\n/**\n * An helper to easily use workers outside of JSZip.\n * @constructor\n * @param {Worker} worker the worker to wrap\n * @param {String} outputType the type of data expected by the use\n * @param {String} mimeType the mime type of the content, if applicable.\n */\nfunction StreamHelper(worker, outputType, mimeType) {\n var internalType = outputType;\n switch(outputType) {\n case \"blob\":\n case \"arraybuffer\":\n internalType = \"uint8array\";\n break;\n case \"base64\":\n internalType = \"string\";\n break;\n }\n\n try {\n // the type used internally\n this._internalType = internalType;\n // the type used to output results\n this._outputType = outputType;\n // the mime type\n this._mimeType = mimeType;\n utils.checkSupport(internalType);\n this._worker = worker.pipe(new ConvertWorker(internalType));\n // the last workers can be rewired without issues but we need to\n // prevent any updates on previous workers.\n worker.lock();\n } catch(e) {\n this._worker = new GenericWorker(\"error\");\n this._worker.error(e);\n }\n}\n\nStreamHelper.prototype = {\n /**\n * Listen a StreamHelper, accumulate its content and concatenate it into a\n * complete block.\n * @param {Function} updateCb the update callback.\n * @return Promise the promise for the accumulation.\n */\n accumulate : function (updateCb) {\n return accumulate(this, updateCb);\n },\n /**\n * Add a listener on an event triggered on a stream.\n * @param {String} evt the name of the event\n * @param {Function} fn the listener\n * @return {StreamHelper} the current helper.\n */\n on : function (evt, fn) {\n var self = this;\n\n if(evt === \"data\") {\n this._worker.on(evt, function (chunk) {\n fn.call(self, chunk.data, chunk.meta);\n });\n } else {\n this._worker.on(evt, function () {\n utils.delay(fn, arguments, self);\n });\n }\n return this;\n },\n /**\n * Resume the flow of chunks.\n * @return {StreamHelper} the current helper.\n */\n resume : function () {\n utils.delay(this._worker.resume, [], this._worker);\n return this;\n },\n /**\n * Pause the flow of chunks.\n * @return {StreamHelper} the current helper.\n */\n pause : function () {\n this._worker.pause();\n return this;\n },\n /**\n * Return a nodejs stream for this helper.\n * @param {Function} updateCb the update callback.\n * @return {NodejsStreamOutputAdapter} the nodejs stream.\n */\n toNodejsStream : function (updateCb) {\n utils.checkSupport(\"nodestream\");\n if (this._outputType !== \"nodebuffer\") {\n // an object stream containing blob/arraybuffer/uint8array/string\n // is strange and I don't know if it would be useful.\n // I you find this comment and have a good usecase, please open a\n // bug report !\n throw new Error(this._outputType + \" is not supported by this method\");\n }\n\n return new NodejsStreamOutputAdapter(this, {\n objectMode : this._outputType !== \"nodebuffer\"\n }, updateCb);\n }\n};\n\n\nmodule.exports = StreamHelper;\n","'use strict';\nexports.base64 = false;\nexports.binary = false;\nexports.dir = false;\nexports.createFolders = true;\nexports.date = null;\nexports.compression = null;\nexports.compressionOptions = null;\nexports.comment = null;\nexports.unixPermissions = null;\nexports.dosPermissions = null;\n","'use strict';\n\nvar utils = require('../utils');\nvar GenericWorker = require('./GenericWorker');\n\n// the size of the generated chunks\n// TODO expose this as a public variable\nvar DEFAULT_BLOCK_SIZE = 16 * 1024;\n\n/**\n * A worker that reads a content and emits chunks.\n * @constructor\n * @param {Promise} dataP the promise of the data to split\n */\nfunction DataWorker(dataP) {\n GenericWorker.call(this, \"DataWorker\");\n var self = this;\n this.dataIsReady = false;\n this.index = 0;\n this.max = 0;\n this.data = null;\n this.type = \"\";\n\n this._tickScheduled = false;\n\n dataP.then(function (data) {\n self.dataIsReady = true;\n self.data = data;\n self.max = data && data.length || 0;\n self.type = utils.getTypeOf(data);\n if(!self.isPaused) {\n self._tickAndRepeat();\n }\n }, function (e) {\n self.error(e);\n });\n}\n\nutils.inherits(DataWorker, GenericWorker);\n\n/**\n * @see GenericWorker.cleanUp\n */\nDataWorker.prototype.cleanUp = function () {\n GenericWorker.prototype.cleanUp.call(this);\n this.data = null;\n};\n\n/**\n * @see GenericWorker.resume\n */\nDataWorker.prototype.resume = function () {\n if(!GenericWorker.prototype.resume.call(this)) {\n return false;\n }\n\n if (!this._tickScheduled && this.dataIsReady) {\n this._tickScheduled = true;\n utils.delay(this._tickAndRepeat, [], this);\n }\n return true;\n};\n\n/**\n * Trigger a tick a schedule an other call to this function.\n */\nDataWorker.prototype._tickAndRepeat = function() {\n this._tickScheduled = false;\n if(this.isPaused || this.isFinished) {\n return;\n }\n this._tick();\n if(!this.isFinished) {\n utils.delay(this._tickAndRepeat, [], this);\n this._tickScheduled = true;\n }\n};\n\n/**\n * Read and push a chunk.\n */\nDataWorker.prototype._tick = function() {\n\n if(this.isPaused || this.isFinished) {\n return false;\n }\n\n var size = DEFAULT_BLOCK_SIZE;\n var data = null, nextIndex = Math.min(this.max, this.index + size);\n if (this.index >= this.max) {\n // EOF\n return this.end();\n } else {\n switch(this.type) {\n case \"string\":\n data = this.data.substring(this.index, nextIndex);\n break;\n case \"uint8array\":\n data = this.data.subarray(this.index, nextIndex);\n break;\n case \"array\":\n case \"nodebuffer\":\n data = this.data.slice(this.index, nextIndex);\n break;\n }\n this.index = nextIndex;\n return this.push({\n data : data,\n meta : {\n percent : this.max ? this.index / this.max * 100 : 0\n }\n });\n }\n};\n\nmodule.exports = DataWorker;\n","'use strict';\n\nvar utils = require('../utils');\nvar GenericWorker = require('./GenericWorker');\n\n/**\n * A worker which calculate the total length of the data flowing through.\n * @constructor\n * @param {String} propName the name used to expose the length\n */\nfunction DataLengthProbe(propName) {\n GenericWorker.call(this, \"DataLengthProbe for \" + propName);\n this.propName = propName;\n this.withStreamInfo(propName, 0);\n}\nutils.inherits(DataLengthProbe, GenericWorker);\n\n/**\n * @see GenericWorker.processChunk\n */\nDataLengthProbe.prototype.processChunk = function (chunk) {\n if(chunk) {\n var length = this.streamInfo[this.propName] || 0;\n this.streamInfo[this.propName] = length + chunk.data.length;\n }\n GenericWorker.prototype.processChunk.call(this, chunk);\n};\nmodule.exports = DataLengthProbe;\n\n","'use strict';\n\nvar GenericWorker = require('./GenericWorker');\nvar crc32 = require('../crc32');\nvar utils = require('../utils');\n\n/**\n * A worker which calculate the crc32 of the data flowing through.\n * @constructor\n */\nfunction Crc32Probe() {\n GenericWorker.call(this, \"Crc32Probe\");\n this.withStreamInfo(\"crc32\", 0);\n}\nutils.inherits(Crc32Probe, GenericWorker);\n\n/**\n * @see GenericWorker.processChunk\n */\nCrc32Probe.prototype.processChunk = function (chunk) {\n this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0);\n this.push(chunk);\n};\nmodule.exports = Crc32Probe;\n","'use strict';\n\nvar GenericWorker = require(\"./stream/GenericWorker\");\n\nexports.STORE = {\n magic: \"\\x00\\x00\",\n compressWorker : function (compressionOptions) {\n return new GenericWorker(\"STORE compression\");\n },\n uncompressWorker : function () {\n return new GenericWorker(\"STORE decompression\");\n }\n};\nexports.DEFLATE = require('./flate');\n","'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\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","'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// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\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 ^= -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","// String encode/decode helpers\n'use strict';\n\n\nvar utils = require('./common');\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nvar STR_APPLY_OK = true;\nvar STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\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 utils.Buf8(256);\nfor (var q = 0; q < 256; q++) {\n _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 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 // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\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 < len;) {\n c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n c_len = _utf8len[c];\n // skip 5 & 6 byte codes\n if (c_len > 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 // 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 buffer 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","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\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","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\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","'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","'use strict';\n\nvar utils = require('../utils');\nvar support = require('../support');\nvar ArrayReader = require('./ArrayReader');\nvar StringReader = require('./StringReader');\nvar NodeBufferReader = require('./NodeBufferReader');\nvar Uint8ArrayReader = require('./Uint8ArrayReader');\n\n/**\n * Create a reader adapted to the data.\n * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read.\n * @return {DataReader} the data reader.\n */\nmodule.exports = function (data) {\n var type = utils.getTypeOf(data);\n utils.checkSupport(type);\n if (type === \"string\" && !support.uint8array) {\n return new StringReader(data);\n }\n if (type === \"nodebuffer\") {\n return new NodeBufferReader(data);\n }\n if (support.uint8array) {\n return new Uint8ArrayReader(utils.transformTo(\"uint8array\", data));\n }\n return new ArrayReader(utils.transformTo(\"array\", data));\n};\n","'use strict';\nvar DataReader = require('./DataReader');\nvar utils = require('../utils');\n\nfunction ArrayReader(data) {\n DataReader.call(this, data);\n\tfor(var i = 0; i < this.data.length; i++) {\n\t\tdata[i] = data[i] & 0xFF;\n\t}\n}\nutils.inherits(ArrayReader, DataReader);\n/**\n * @see DataReader.byteAt\n */\nArrayReader.prototype.byteAt = function(i) {\n return this.data[this.zero + i];\n};\n/**\n * @see DataReader.lastIndexOfSignature\n */\nArrayReader.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 - this.zero;\n }\n }\n\n return -1;\n};\n/**\n * @see DataReader.readAndCheckSignature\n */\nArrayReader.prototype.readAndCheckSignature = function (sig) {\n var sig0 = sig.charCodeAt(0),\n sig1 = sig.charCodeAt(1),\n sig2 = sig.charCodeAt(2),\n sig3 = sig.charCodeAt(3),\n data = this.readData(4);\n return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3];\n};\n/**\n * @see DataReader.readData\n */\nArrayReader.prototype.readData = function(size) {\n this.checkOffset(size);\n if(size === 0) {\n return [];\n }\n var result = this.data.slice(this.zero + this.index, this.zero + this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = ArrayReader;\n","'use strict';\nvar utils = require('../utils');\n\nfunction DataReader(data) {\n this.data = data; // type : see implementation\n this.length = data.length;\n this.index = 0;\n this.zero = 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 specified 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 < this.zero + 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 occurence of a zip signature (4 bytes).\n * @param {string} sig the signature to find.\n * @return {number} the index of the last occurence, -1 if not found.\n */\n lastIndexOfSignature: function(sig) {\n // see implementations\n },\n /**\n * Read the signature (4 bytes) at the current position and compare it with sig.\n * @param {string} sig the expected signature\n * @return {boolean} true if the signature matches, false otherwise.\n */\n readAndCheckSignature: 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(Date.UTC(\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","'use strict';\nvar ArrayReader = require('./ArrayReader');\nvar utils = require('../utils');\n\nfunction Uint8ArrayReader(data) {\n ArrayReader.call(this, data);\n}\nutils.inherits(Uint8ArrayReader, ArrayReader);\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.zero + this.index, this.zero + this.index + size);\n this.index += size;\n return result;\n};\nmodule.exports = Uint8ArrayReader;\n","'use strict';\n\nfunction squaredEuclidean(p, q) {\n var d = 0;\n for (var i = 0; i < p.length; i++) {\n d += (p[i] - q[i]) * (p[i] - q[i]);\n }\n return d;\n}\n\nfunction euclidean(p, q) {\n return Math.sqrt(squaredEuclidean(p, q));\n}\n\nmodule.exports = euclidean;\neuclidean.squared = squaredEuclidean;\n","'use strict';\n\nconst Cluster = require('./Cluster');\nconst util = require('util');\n\nfunction ClusterLeaf(index) {\n Cluster.call(this);\n this.index = index;\n this.distance = 0;\n this.children = [];\n}\n\nutil.inherits(ClusterLeaf, Cluster);\n\nmodule.exports = ClusterLeaf;\n","/**\n * Fast Fourier Transform module\n * 1D-FFT/IFFT, 2D-FFT/IFFT (radix-2)\n */\nvar FFT = (function(){\n var FFT; \n \n if(typeof exports !== 'undefined') {\n FFT = exports; // for CommonJS\n } else {\n FFT = {};\n }\n \n var version = {\n release: '0.3.0',\n date: '2013-03'\n };\n FFT.toString = function() {\n return \"version \" + version.release + \", released \" + version.date;\n };\n\n // core operations\n var _n = 0, // order\n _bitrev = null, // bit reversal table\n _cstb = null; // sin/cos table\n\n var core = {\n init : function(n) {\n if(n !== 0 && (n & (n - 1)) === 0) {\n _n = n;\n core._initArray();\n core._makeBitReversalTable();\n core._makeCosSinTable();\n } else {\n throw new Error(\"init: radix-2 required\");\n }\n },\n // 1D-FFT\n fft1d : function(re, im) {\n core.fft(re, im, 1);\n },\n // 1D-IFFT\n ifft1d : function(re, im) {\n var n = 1/_n;\n core.fft(re, im, -1);\n for(var i=0; i<_n; i++) {\n re[i] *= n;\n im[i] *= n;\n }\n },\n // 1D-IFFT\n bt1d : function(re, im) {\n core.fft(re, im, -1);\n },\n // 2D-FFT Not very useful if the number of rows have to be equal to cols\n fft2d : function(re, im) {\n var tre = [],\n tim = [],\n i = 0;\n // x-axis\n for(var y=0; y<_n; y++) {\n i = y*_n;\n for(var x1=0; x1<_n; x1++) {\n tre[x1] = re[x1 + i];\n tim[x1] = im[x1 + i];\n }\n core.fft1d(tre, tim);\n for(var x2=0; x2<_n; x2++) {\n re[x2 + i] = tre[x2];\n im[x2 + i] = tim[x2];\n }\n }\n // y-axis\n for(var x=0; x<_n; x++) {\n for(var y1=0; y1<_n; y1++) {\n i = x + y1*_n;\n tre[y1] = re[i];\n tim[y1] = im[i];\n }\n core.fft1d(tre, tim);\n for(var y2=0; y2<_n; y2++) {\n i = x + y2*_n;\n re[i] = tre[y2];\n im[i] = tim[y2];\n }\n }\n },\n // 2D-IFFT\n ifft2d : function(re, im) {\n var tre = [],\n tim = [],\n i = 0;\n // x-axis\n for(var y=0; y<_n; y++) {\n i = y*_n;\n for(var x1=0; x1<_n; x1++) {\n tre[x1] = re[x1 + i];\n tim[x1] = im[x1 + i];\n }\n core.ifft1d(tre, tim);\n for(var x2=0; x2<_n; x2++) {\n re[x2 + i] = tre[x2];\n im[x2 + i] = tim[x2];\n }\n }\n // y-axis\n for(var x=0; x<_n; x++) {\n for(var y1=0; y1<_n; y1++) {\n i = x + y1*_n;\n tre[y1] = re[i];\n tim[y1] = im[i];\n }\n core.ifft1d(tre, tim);\n for(var y2=0; y2<_n; y2++) {\n i = x + y2*_n;\n re[i] = tre[y2];\n im[i] = tim[y2];\n }\n }\n },\n // core operation of FFT\n fft : function(re, im, inv) {\n var d, h, ik, m, tmp, wr, wi, xr, xi,\n n4 = _n >> 2;\n // bit reversal\n for(var l=0; l<_n; l++) {\n m = _bitrev[l];\n if(l < m) {\n tmp = re[l];\n re[l] = re[m];\n re[m] = tmp;\n tmp = im[l];\n im[l] = im[m];\n im[m] = tmp;\n }\n }\n // butterfly operation\n for(var k=1; k<_n; k<<=1) {\n h = 0;\n d = _n/(k << 1);\n for(var j=0; j> 1;\n while(k <= j) {\n j -= k;\n k >>= 1;\n }\n j += k;\n _bitrev[i] = j;\n }\n },\n // makes trigonometiric function table\n _makeCosSinTable : function() {\n var n2 = _n >> 1,\n n4 = _n >> 2,\n n8 = _n >> 3,\n n2p4 = n2 + n4,\n t = Math.sin(Math.PI/_n),\n dc = 2*t*t,\n ds = Math.sqrt(dc*(2 - dc)),\n c = _cstb[n4] = 1,\n s = _cstb[0] = 0;\n t = 2*dc;\n for(var i=1; i> 2;\n // bit reversal\n for(var l=0; l<_n; l++) {\n m = _bitrev[l];\n if(l < m) {\n tmp = re[l];\n re[l] = re[m];\n re[m] = tmp;\n tmp = im[l];\n im[l] = im[m];\n im[m] = tmp;\n }\n }\n // butterfly operation\n for(var k=1; k<_n; k<<=1) {\n h = 0;\n d = _n/(k << 1);\n for(var j=0; j> 1;\n while(k <= j) {\n j -= k;\n k >>= 1;\n }\n j += k;\n _bitrev[i] = j;\n }\n },\n // makes trigonometiric function table\n _makeCosSinTable : function() {\n var n2 = _n >> 1,\n n4 = _n >> 2,\n n8 = _n >> 3,\n n2p4 = n2 + n4,\n t = Math.sin(Math.PI/_n),\n dc = 2*t*t,\n ds = Math.sqrt(dc*(2 - dc)),\n c = _cstb[n4] = 1,\n s = _cstb[0] = 0;\n t = 2*dc;\n for(var i=1; i= 0) metadata.isFid = true;\n else if (metadata.type.toUpperCase().indexOf('SPECTRUM') >= 0) {\n metadata.isFt = true;\n }\n }\n\n if (metadata.dimension === 1) {\n const nucleus = info['.OBSERVENUCLEUS'];\n if (nucleus) {\n metadata.nucleus = [nucleus.replace(/[^A-Za-z0-9]/g, '')];\n }\n } else {\n const nucleus = info['.NUCLEUS'];\n if (nucleus) {\n metadata.nucleus = nucleus.split(',').map(nuc => nuc.trim());\n }\n }\n if (metadata.nucleus.length === 0) {\n metadata.nucleus = getNucleusFrom2DExperiment(metadata.experiment);\n }\n\n if (info['$DATE']) {\n metadata.date = new Date(info['$DATE'] * 1000).toISOString();\n }\n return metadata;\n}\n\nmodule.exports = getMetadata;\n\nfunction maybeAdd(obj, name, value) {\n if (value !== undefined) {\n if (typeof value === 'string') {\n if (value.startsWith('<') && value.endsWith('>')) {\n value = value.substring(1, value.length - 2);\n }\n obj[name] = value.trim();\n } else {\n obj[name] = value;\n }\n }\n}\n","'use strict';\n\n/**\n * Returns an experiment string based on a pulse sequence\n * @param {string} pulse\n * @return {string}\n */\nmodule.exports = function getSpectrumType(meta = {}, info = {}) {\n if (meta === null) meta = {};\n if (typeof meta === 'string') {\n meta = { pulse: meta };\n }\n let spectyp = (info['$SPECTYP'] || '')\n .replace(/^<(.*)>$/, '$1')\n .toLowerCase();\n\n if (spectyp) return spectyp;\n\n let pulse = meta.pulse;\n if (typeof pulse !== 'string') {\n return '';\n }\n\n pulse = pulse.toLowerCase();\n if (pulse.includes('zg')) {\n return '1d';\n }\n\n if (\n pulse.includes('hsqct') ||\n (pulse.includes('invi') && (pulse.includes('ml') || pulse.includes('di')))\n ) {\n return 'hsqctocsy';\n }\n\n if (pulse.includes('hsqc') || pulse.includes('invi')) {\n return 'hsqc';\n }\n\n if (\n pulse.includes('hmbc') ||\n (pulse.includes('inv4') && pulse.includes('lp'))\n ) {\n return 'hmbc';\n }\n\n if (pulse.includes('cosy')) {\n return 'cosy';\n }\n\n if (pulse.includes('jres')) {\n return 'jres';\n }\n\n if (\n pulse.includes('tocsy') ||\n pulse.includes('mlev') ||\n pulse.includes('dipsi')\n ) {\n return 'tocsy';\n }\n\n if (pulse.includes('noesy')) {\n return 'noesy';\n }\n\n if (pulse.includes('roesy')) {\n return 'roesy';\n }\n\n if (pulse.includes('dept')) {\n return 'dept';\n }\n\n if (pulse.includes('jmod') || pulse.includes('apt')) {\n return 'aptjmod';\n }\n\n return '';\n};\n","function getNucleusFrom2DExperiment(experiment) {\n if (typeof experiment !== 'string') {\n return [];\n }\n experiment = experiment.toLowerCase();\n if (experiment.includes('jres')) {\n return ['1H'];\n }\n if (experiment.includes('hmbc') || experiment.includes('hsqc')) {\n return ['1H', '13C'];\n }\n return ['1H', '1H'];\n}\n\nmodule.exports = getNucleusFrom2DExperiment;\n","(function(){function a(d){for(var e=0,f=d.length-1,g=void 0,h=void 0,i=void 0,j=c(e,f);!0;){if(f<=e)return d[j];if(f==e+1)return d[e]>d[f]&&b(d,e,f),d[j];for(g=c(e,f),d[g]>d[f]&&b(d,g,f),d[e]>d[f]&&b(d,e,f),d[g]>d[e]&&b(d,g,e),b(d,g,e+1),h=e+1,i=f;!0;){do h++;while(d[e]>d[h]);do i--;while(d[i]>d[e]);if(i=j&&(f=i-1)}}var b=function b(d,e,f){var _ref;return _ref=[d[f],d[e]],d[e]=_ref[0],d[f]=_ref[1],_ref},c=function c(d,e){return~~((d+e)/2)};'undefined'!=typeof module&&module.exports?module.exports=a:window.median=a})();\n","'use strict';\n\nexports.agnes = require('./agnes');\nexports.diana = require('./diana');\n//exports.birch = require('./birch');\n//exports.cure = require('./cure');\n//exports.chameleon = require('./chameleon');\n","'use strict';\n\nconst jcampconverter = require('jcampconverter');\nconst SD = require('spectra-data');\n\nconst getMetadata = require('./getMetadata');\nconst getSpectrumType = require('./getSpectrumType');\n\n/**\n * Object containing parsed metadata\n * @name NMRMetadata\n * @typedef {object} NMRMetadata\n * @property {number} dimension\n * @property {number[]} nucleus\n * @property {string} title\n * @property {string} solvent\n * @property {string} pulse\n * @property {string} experiment\n * @property {number} temperature - Temperature in Kelvin\n * @property {number} frequency\n * @property {string} probe\n * @property {string} acquisitionMode\n * @property {number} expno - Experience number\n * @property {string} date - Date in ISO string format\n * @property {object} ranges\n */\n\nconst defaultOptions = {\n computeRanges: false\n};\n\nconst defaultRangesOptions = {\n nH: 100,\n thresholdFactor: 0.85,\n clean: 0.4,\n compile: true,\n integralType: 'sum'\n};\n\n/**\n * Returns a metadata object from JCAMP\n * @param {string} jcampData\n * @param {object} [options]\n * @param {boolean} [options.computeRanges=false]\n * @param {number} [options.ranges] - options for ranges computation\n * @return {NMRMetadata} metadata\n */\nexports.parseJcamp = function(jcampData, options) {\n options = Object.assign({}, defaultOptions, options);\n\n const jcampString = jcampData.toString();\n const parsedJcamp = jcampconverter.convert(jcampString, {\n keepRecordsRegExp: /.*/,\n withoutXY: true\n });\n\n let metadata = getMetadata(parsedJcamp);\n\n if (\n options.computeRanges &&\n metadata.isFt &&\n metadata.dimension === 1 &&\n metadata.nucleus[0] === '1H'\n ) {\n const rangesOptions = Object.assign(\n {},\n defaultRangesOptions,\n options.ranges\n );\n if (options.removeImpurities && metadata.solvent)\n rangesOptions.removeImpurity = { solvent: metadata.solvent };\n const spectrum = SD.NMR.fromJcamp(jcampString);\n const ranges = spectrum.getRanges(rangesOptions);\n ranges.forEach(function(range) {\n // todo remove when there is an option to avoid that\n delete range._highlight;\n delete range.signalID;\n range.signal.forEach(function(signal) {\n delete signal.peak;\n });\n });\n metadata.range = ranges;\n }\n\n return metadata;\n};\n\n/**\n * Returns a list of nuclei based on an experiment string\n * @param {string} experiment\n * @return {string[]}\n */\nexports.getNucleusFrom2DExperiment = require('./getNucleusFrom2DExperiment');\n\nexports.getMetadata = require('./getMetadata');\n\nexports.getSpectrumType = getSpectrumType;\n","'use strict';\n\nconst Stat = require('ml-stat').array;\n/**\n * Function that returns an array of points given 1D array as follows:\n *\n * [x1, y1, .. , x2, y2, ..]\n *\n * And receive the number of dimensions of each point.\n * @param array\n * @param dimensions\n * @returns {Array} - Array of points.\n */\nfunction coordArrayToPoints(array, dimensions) {\n if (array.length % dimensions !== 0) {\n throw new RangeError('Dimensions number must be accordance with the size of the array.');\n }\n\n var length = array.length / dimensions;\n var pointsArr = new Array(length);\n\n var k = 0;\n for (var i = 0; i < array.length; i += dimensions) {\n var point = new Array(dimensions);\n for (var j = 0; j < dimensions; ++j) {\n point[j] = array[i + j];\n }\n\n pointsArr[k] = point;\n k++;\n }\n\n return pointsArr;\n}\n\n\n/**\n * Function that given an array as follows:\n * [x1, y1, .. , x2, y2, ..]\n *\n * Returns an array as follows:\n * [[x1, x2, ..], [y1, y2, ..], [ .. ]]\n *\n * And receives the number of dimensions of each coordinate.\n * @param array\n * @param dimensions\n * @returns {Array} - Matrix of coordinates\n */\nfunction coordArrayToCoordMatrix(array, dimensions) {\n if (array.length % dimensions !== 0) {\n throw new RangeError('Dimensions number must be accordance with the size of the array.');\n }\n\n var coordinatesArray = new Array(dimensions);\n var points = array.length / dimensions;\n for (var i = 0; i < coordinatesArray.length; i++) {\n coordinatesArray[i] = new Array(points);\n }\n\n for (i = 0; i < array.length; i += dimensions) {\n for (var j = 0; j < dimensions; ++j) {\n var currentPoint = Math.floor(i / dimensions);\n coordinatesArray[j][currentPoint] = array[i + j];\n }\n }\n\n return coordinatesArray;\n}\n\n/**\n * Function that receives a coordinate matrix as follows:\n * [[x1, x2, ..], [y1, y2, ..], [ .. ]]\n *\n * Returns an array of coordinates as follows:\n * [x1, y1, .. , x2, y2, ..]\n *\n * @param coordMatrix\n * @returns {Array}\n */\nfunction coordMatrixToCoordArray(coordMatrix) {\n var coodinatesArray = new Array(coordMatrix.length * coordMatrix[0].length);\n var k = 0;\n for (var i = 0; i < coordMatrix[0].length; ++i) {\n for (var j = 0; j < coordMatrix.length; ++j) {\n coodinatesArray[k] = coordMatrix[j][i];\n ++k;\n }\n }\n\n return coodinatesArray;\n}\n\n/**\n * Tranpose a matrix, this method is for coordMatrixToPoints and\n * pointsToCoordMatrix, that because only transposing the matrix\n * you can change your representation.\n *\n * @param matrix\n * @returns {Array}\n */\nfunction transpose(matrix) {\n var resultMatrix = new Array(matrix[0].length);\n for (var i = 0; i < resultMatrix.length; ++i) {\n resultMatrix[i] = new Array(matrix.length);\n }\n\n for (i = 0; i < matrix.length; ++i) {\n for (var j = 0; j < matrix[0].length; ++j) {\n resultMatrix[j][i] = matrix[i][j];\n }\n }\n\n return resultMatrix;\n}\n\n/**\n * Function that transform an array of points into a coordinates array\n * as follows:\n * [x1, y1, .. , x2, y2, ..]\n *\n * @param points\n * @returns {Array}\n */\nfunction pointsToCoordArray(points) {\n var coodinatesArray = new Array(points.length * points[0].length);\n var k = 0;\n for (var i = 0; i < points.length; ++i) {\n for (var j = 0; j < points[0].length; ++j) {\n coodinatesArray[k] = points[i][j];\n ++k;\n }\n }\n\n return coodinatesArray;\n}\n\n/**\n * Apply the dot product between the smaller vector and a subsets of the\n * largest one.\n *\n * @param firstVector\n * @param secondVector\n * @returns {Array} each dot product of size of the difference between the\n * larger and the smallest one.\n */\nfunction applyDotProduct(firstVector, secondVector) {\n var largestVector, smallestVector;\n if (firstVector.length <= secondVector.length) {\n smallestVector = firstVector;\n largestVector = secondVector;\n } else {\n smallestVector = secondVector;\n largestVector = firstVector;\n }\n\n var difference = largestVector.length - smallestVector.length + 1;\n var dotProductApplied = new Array(difference);\n\n for (var i = 0; i < difference; ++i) {\n var sum = 0;\n for (var j = 0; j < smallestVector.length; ++j) {\n sum += smallestVector[j] * largestVector[i + j];\n }\n dotProductApplied[i] = sum;\n }\n\n return dotProductApplied;\n}\n/**\n * To scale the input array between the specified min and max values. The operation is performed inplace\n * if the options.inplace is specified. If only one of the min or max parameters is specified, then the scaling\n * will multiply the input array by min/min(input) or max/max(input)\n * @param input\n * @param options\n * @returns {*}\n */\nfunction scale(input, options = {}) {\n const {\n min,\n max\n } = options;\n\n var y = options.inPlace ? input : (new Array(input.length));\n var minMax = Stat.minMax(input);\n\n if (typeof max === 'number') {\n if (typeof min === 'number') {\n let factor = (max - min) / (minMax.max - minMax.min);\n for (let i = 0; i < y.length; i++) {\n y[i] = (input[i] - minMax.min) * factor + min;\n }\n } else if (minMax.max !== 0) {\n let factor = max / minMax.max;\n for (let i = 0; i < y.length; i++) {\n y[i] = input[i] * factor;\n }\n } else {\n options.min = minMax.min;\n y = scale(input, options);\n }\n } else if (typeof min === 'number') {\n if (minMax.min !== 0) {\n let factor = min / minMax.min;\n for (let i = 0; i < y.length; i++) {\n y[i] = input[i] * factor;\n }\n\n } else {\n options.max = minMax.max;\n y = scale(input, options);\n }\n }\n return y;\n}\n\nmodule.exports = {\n coordArrayToPoints: coordArrayToPoints,\n coordArrayToCoordMatrix: coordArrayToCoordMatrix,\n coordMatrixToCoordArray: coordMatrixToCoordArray,\n coordMatrixToPoints: transpose,\n pointsToCoordArray: pointsToCoordArray,\n pointsToCoordMatrix: transpose,\n applyDotProduct: applyDotProduct,\n scale: scale\n};\n\n","'use strict';\n\nvar arrayStat = require('./array');\n\nfunction compareNumbers(a, b) {\n return a - b;\n}\n\nexports.max = function max(matrix) {\n var max = -Infinity;\n for (var i = 0; i < matrix.length; i++) {\n for (var j = 0; j < matrix[i].length; j++) {\n if (matrix[i][j] > max) max = matrix[i][j];\n }\n }\n return max;\n};\n\nexports.min = function min(matrix) {\n var min = Infinity;\n for (var i = 0; i < matrix.length; i++) {\n for (var j = 0; j < matrix[i].length; j++) {\n if (matrix[i][j] < min) min = matrix[i][j];\n }\n }\n return min;\n};\n\nexports.minMax = function minMax(matrix) {\n var min = Infinity;\n var max = -Infinity;\n for (var i = 0; i < matrix.length; i++) {\n for (var j = 0; j < matrix[i].length; j++) {\n if (matrix[i][j] < min) min = matrix[i][j];\n if (matrix[i][j] > max) max = matrix[i][j];\n }\n }\n return {\n min:min,\n max:max\n };\n};\n\nexports.entropy = function entropy(matrix, eps) {\n if (typeof (eps) === 'undefined') {\n eps = 0;\n }\n var sum = 0,\n l1 = matrix.length,\n l2 = matrix[0].length;\n for (var i = 0; i < l1; i++) {\n for (var j = 0; j < l2; j++) {\n sum += matrix[i][j] * Math.log(matrix[i][j] + eps);\n }\n }\n return -sum;\n};\n\nexports.mean = function mean(matrix, dimension) {\n if (typeof (dimension) === 'undefined') {\n dimension = 0;\n }\n var rows = matrix.length,\n cols = matrix[0].length,\n theMean, N, i, j;\n\n if (dimension === -1) {\n theMean = [0];\n N = rows * cols;\n for (i = 0; i < rows; i++) {\n for (j = 0; j < cols; j++) {\n theMean[0] += matrix[i][j];\n }\n }\n theMean[0] /= N;\n } else if (dimension === 0) {\n theMean = new Array(cols);\n N = rows;\n for (j = 0; j < cols; j++) {\n theMean[j] = 0;\n for (i = 0; i < rows; i++) {\n theMean[j] += matrix[i][j];\n }\n theMean[j] /= N;\n }\n } else if (dimension === 1) {\n theMean = new Array(rows);\n N = cols;\n for (j = 0; j < rows; j++) {\n theMean[j] = 0;\n for (i = 0; i < cols; i++) {\n theMean[j] += matrix[j][i];\n }\n theMean[j] /= N;\n }\n } else {\n throw new Error('Invalid dimension');\n }\n return theMean;\n};\n\nexports.sum = function sum(matrix, dimension) {\n if (typeof (dimension) === 'undefined') {\n dimension = 0;\n }\n var rows = matrix.length,\n cols = matrix[0].length,\n theSum, i, j;\n\n if (dimension === -1) {\n theSum = [0];\n for (i = 0; i < rows; i++) {\n for (j = 0; j < cols; j++) {\n theSum[0] += matrix[i][j];\n }\n }\n } else if (dimension === 0) {\n theSum = new Array(cols);\n for (j = 0; j < cols; j++) {\n theSum[j] = 0;\n for (i = 0; i < rows; i++) {\n theSum[j] += matrix[i][j];\n }\n }\n } else if (dimension === 1) {\n theSum = new Array(rows);\n for (j = 0; j < rows; j++) {\n theSum[j] = 0;\n for (i = 0; i < cols; i++) {\n theSum[j] += matrix[j][i];\n }\n }\n } else {\n throw new Error('Invalid dimension');\n }\n return theSum;\n};\n\nexports.product = function product(matrix, dimension) {\n if (typeof (dimension) === 'undefined') {\n dimension = 0;\n }\n var rows = matrix.length,\n cols = matrix[0].length,\n theProduct, i, j;\n\n if (dimension === -1) {\n theProduct = [1];\n for (i = 0; i < rows; i++) {\n for (j = 0; j < cols; j++) {\n theProduct[0] *= matrix[i][j];\n }\n }\n } else if (dimension === 0) {\n theProduct = new Array(cols);\n for (j = 0; j < cols; j++) {\n theProduct[j] = 1;\n for (i = 0; i < rows; i++) {\n theProduct[j] *= matrix[i][j];\n }\n }\n } else if (dimension === 1) {\n theProduct = new Array(rows);\n for (j = 0; j < rows; j++) {\n theProduct[j] = 1;\n for (i = 0; i < cols; i++) {\n theProduct[j] *= matrix[j][i];\n }\n }\n } else {\n throw new Error('Invalid dimension');\n }\n return theProduct;\n};\n\nexports.standardDeviation = function standardDeviation(matrix, means, unbiased) {\n var vari = exports.variance(matrix, means, unbiased), l = vari.length;\n for (var i = 0; i < l; i++) {\n vari[i] = Math.sqrt(vari[i]);\n }\n return vari;\n};\n\nexports.variance = function variance(matrix, means, unbiased) {\n if (typeof (unbiased) === 'undefined') {\n unbiased = true;\n }\n means = means || exports.mean(matrix);\n var rows = matrix.length;\n if (rows === 0) return [];\n var cols = matrix[0].length;\n var vari = new Array(cols);\n\n for (var j = 0; j < cols; j++) {\n var sum1 = 0, sum2 = 0, x = 0;\n for (var i = 0; i < rows; i++) {\n x = matrix[i][j] - means[j];\n sum1 += x;\n sum2 += x * x;\n }\n if (unbiased) {\n vari[j] = (sum2 - ((sum1 * sum1) / rows)) / (rows - 1);\n } else {\n vari[j] = (sum2 - ((sum1 * sum1) / rows)) / rows;\n }\n }\n return vari;\n};\n\nexports.median = function median(matrix) {\n var rows = matrix.length, cols = matrix[0].length;\n var medians = new Array(cols);\n\n for (var i = 0; i < cols; i++) {\n var data = new Array(rows);\n for (var j = 0; j < rows; j++) {\n data[j] = matrix[j][i];\n }\n data.sort(compareNumbers);\n var N = data.length;\n if (N % 2 === 0) {\n medians[i] = (data[N / 2] + data[(N / 2) - 1]) * 0.5;\n } else {\n medians[i] = data[Math.floor(N / 2)];\n }\n }\n return medians;\n};\n\nexports.mode = function mode(matrix) {\n var rows = matrix.length,\n cols = matrix[0].length,\n modes = new Array(cols),\n i, j;\n for (i = 0; i < cols; i++) {\n var itemCount = new Array(rows);\n for (var k = 0; k < rows; k++) {\n itemCount[k] = 0;\n }\n var itemArray = new Array(rows);\n var count = 0;\n\n for (j = 0; j < rows; j++) {\n var index = itemArray.indexOf(matrix[j][i]);\n if (index >= 0) {\n itemCount[index]++;\n } else {\n itemArray[count] = matrix[j][i];\n itemCount[count] = 1;\n count++;\n }\n }\n\n var maxValue = 0, maxIndex = 0;\n for (j = 0; j < count; j++) {\n if (itemCount[j] > maxValue) {\n maxValue = itemCount[j];\n maxIndex = j;\n }\n }\n\n modes[i] = itemArray[maxIndex];\n }\n return modes;\n};\n\nexports.skewness = function skewness(matrix, unbiased) {\n if (typeof (unbiased) === 'undefined') unbiased = true;\n var means = exports.mean(matrix);\n var n = matrix.length, l = means.length;\n var skew = new Array(l);\n\n for (var j = 0; j < l; j++) {\n var s2 = 0, s3 = 0;\n for (var i = 0; i < n; i++) {\n var dev = matrix[i][j] - means[j];\n s2 += dev * dev;\n s3 += dev * dev * dev;\n }\n\n var m2 = s2 / n;\n var m3 = s3 / n;\n var g = m3 / Math.pow(m2, 3 / 2);\n\n if (unbiased) {\n var a = Math.sqrt(n * (n - 1));\n var b = n - 2;\n skew[j] = (a / b) * g;\n } else {\n skew[j] = g;\n }\n }\n return skew;\n};\n\nexports.kurtosis = function kurtosis(matrix, unbiased) {\n if (typeof (unbiased) === 'undefined') unbiased = true;\n var means = exports.mean(matrix);\n var n = matrix.length, m = matrix[0].length;\n var kurt = new Array(m);\n\n for (var j = 0; j < m; j++) {\n var s2 = 0, s4 = 0;\n for (var i = 0; i < n; i++) {\n var dev = matrix[i][j] - means[j];\n s2 += dev * dev;\n s4 += dev * dev * dev * dev;\n }\n var m2 = s2 / n;\n var m4 = s4 / n;\n\n if (unbiased) {\n var v = s2 / (n - 1);\n var a = (n * (n + 1)) / ((n - 1) * (n - 2) * (n - 3));\n var b = s4 / (v * v);\n var c = ((n - 1) * (n - 1)) / ((n - 2) * (n - 3));\n kurt[j] = a * b - 3 * c;\n } else {\n kurt[j] = m4 / (m2 * m2) - 3;\n }\n }\n return kurt;\n};\n\nexports.standardError = function standardError(matrix) {\n var samples = matrix.length;\n var standardDeviations = exports.standardDeviation(matrix);\n var l = standardDeviations.length;\n var standardErrors = new Array(l);\n var sqrtN = Math.sqrt(samples);\n\n for (var i = 0; i < l; i++) {\n standardErrors[i] = standardDeviations[i] / sqrtN;\n }\n return standardErrors;\n};\n\nexports.covariance = function covariance(matrix, dimension) {\n return exports.scatter(matrix, undefined, dimension);\n};\n\nexports.scatter = function scatter(matrix, divisor, dimension) {\n if (typeof (dimension) === 'undefined') {\n dimension = 0;\n }\n if (typeof (divisor) === 'undefined') {\n if (dimension === 0) {\n divisor = matrix.length - 1;\n } else if (dimension === 1) {\n divisor = matrix[0].length - 1;\n }\n }\n var means = exports.mean(matrix, dimension);\n var rows = matrix.length;\n if (rows === 0) {\n return [[]];\n }\n var cols = matrix[0].length,\n cov, i, j, s, k;\n\n if (dimension === 0) {\n cov = new Array(cols);\n for (i = 0; i < cols; i++) {\n cov[i] = new Array(cols);\n }\n for (i = 0; i < cols; i++) {\n for (j = i; j < cols; j++) {\n s = 0;\n for (k = 0; k < rows; k++) {\n s += (matrix[k][j] - means[j]) * (matrix[k][i] - means[i]);\n }\n s /= divisor;\n cov[i][j] = s;\n cov[j][i] = s;\n }\n }\n } else if (dimension === 1) {\n cov = new Array(rows);\n for (i = 0; i < rows; i++) {\n cov[i] = new Array(rows);\n }\n for (i = 0; i < rows; i++) {\n for (j = i; j < rows; j++) {\n s = 0;\n for (k = 0; k < cols; k++) {\n s += (matrix[j][k] - means[j]) * (matrix[i][k] - means[i]);\n }\n s /= divisor;\n cov[i][j] = s;\n cov[j][i] = s;\n }\n }\n } else {\n throw new Error('Invalid dimension');\n }\n\n return cov;\n};\n\nexports.correlation = function correlation(matrix) {\n var means = exports.mean(matrix),\n standardDeviations = exports.standardDeviation(matrix, true, means),\n scores = exports.zScores(matrix, means, standardDeviations),\n rows = matrix.length,\n cols = matrix[0].length,\n i, j;\n\n var cor = new Array(cols);\n for (i = 0; i < cols; i++) {\n cor[i] = new Array(cols);\n }\n for (i = 0; i < cols; i++) {\n for (j = i; j < cols; j++) {\n var c = 0;\n for (var k = 0, l = scores.length; k < l; k++) {\n c += scores[k][j] * scores[k][i];\n }\n c /= rows - 1;\n cor[i][j] = c;\n cor[j][i] = c;\n }\n }\n return cor;\n};\n\nexports.zScores = function zScores(matrix, means, standardDeviations) {\n means = means || exports.mean(matrix);\n if (typeof (standardDeviations) === 'undefined') standardDeviations = exports.standardDeviation(matrix, true, means);\n return exports.standardize(exports.center(matrix, means, false), standardDeviations, true);\n};\n\nexports.center = function center(matrix, means, inPlace) {\n means = means || exports.mean(matrix);\n var result = matrix,\n l = matrix.length,\n i, j, jj;\n\n if (!inPlace) {\n result = new Array(l);\n for (i = 0; i < l; i++) {\n result[i] = new Array(matrix[i].length);\n }\n }\n\n for (i = 0; i < l; i++) {\n var row = result[i];\n for (j = 0, jj = row.length; j < jj; j++) {\n row[j] = matrix[i][j] - means[j];\n }\n }\n return result;\n};\n\nexports.standardize = function standardize(matrix, standardDeviations, inPlace) {\n if (typeof (standardDeviations) === 'undefined') standardDeviations = exports.standardDeviation(matrix);\n var result = matrix,\n l = matrix.length,\n i, j, jj;\n\n if (!inPlace) {\n result = new Array(l);\n for (i = 0; i < l; i++) {\n result[i] = new Array(matrix[i].length);\n }\n }\n\n for (i = 0; i < l; i++) {\n var resultRow = result[i];\n var sourceRow = matrix[i];\n for (j = 0, jj = resultRow.length; j < jj; j++) {\n if (standardDeviations[j] !== 0 && !isNaN(standardDeviations[j])) {\n resultRow[j] = sourceRow[j] / standardDeviations[j];\n }\n }\n }\n return result;\n};\n\nexports.weightedVariance = function weightedVariance(matrix, weights) {\n var means = exports.mean(matrix);\n var rows = matrix.length;\n if (rows === 0) return [];\n var cols = matrix[0].length;\n var vari = new Array(cols);\n\n for (var j = 0; j < cols; j++) {\n var sum = 0;\n var a = 0, b = 0;\n\n for (var i = 0; i < rows; i++) {\n var z = matrix[i][j] - means[j];\n var w = weights[i];\n\n sum += w * (z * z);\n b += w;\n a += w * w;\n }\n\n vari[j] = sum * (b / (b * b - a));\n }\n\n return vari;\n};\n\nexports.weightedMean = function weightedMean(matrix, weights, dimension) {\n if (typeof (dimension) === 'undefined') {\n dimension = 0;\n }\n var rows = matrix.length;\n if (rows === 0) return [];\n var cols = matrix[0].length,\n means, i, ii, j, w, row;\n\n if (dimension === 0) {\n means = new Array(cols);\n for (i = 0; i < cols; i++) {\n means[i] = 0;\n }\n for (i = 0; i < rows; i++) {\n row = matrix[i];\n w = weights[i];\n for (j = 0; j < cols; j++) {\n means[j] += row[j] * w;\n }\n }\n } else if (dimension === 1) {\n means = new Array(rows);\n for (i = 0; i < rows; i++) {\n means[i] = 0;\n }\n for (j = 0; j < rows; j++) {\n row = matrix[j];\n w = weights[j];\n for (i = 0; i < cols; i++) {\n means[j] += row[i] * w;\n }\n }\n } else {\n throw new Error('Invalid dimension');\n }\n\n var weightSum = arrayStat.sum(weights);\n if (weightSum !== 0) {\n for (i = 0, ii = means.length; i < ii; i++) {\n means[i] /= weightSum;\n }\n }\n return means;\n};\n\nexports.weightedCovariance = function weightedCovariance(matrix, weights, means, dimension) {\n dimension = dimension || 0;\n means = means || exports.weightedMean(matrix, weights, dimension);\n var s1 = 0, s2 = 0;\n for (var i = 0, ii = weights.length; i < ii; i++) {\n s1 += weights[i];\n s2 += weights[i] * weights[i];\n }\n var factor = s1 / (s1 * s1 - s2);\n return exports.weightedScatter(matrix, weights, means, factor, dimension);\n};\n\nexports.weightedScatter = function weightedScatter(matrix, weights, means, factor, dimension) {\n dimension = dimension || 0;\n means = means || exports.weightedMean(matrix, weights, dimension);\n if (typeof (factor) === 'undefined') {\n factor = 1;\n }\n var rows = matrix.length;\n if (rows === 0) {\n return [[]];\n }\n var cols = matrix[0].length,\n cov, i, j, k, s;\n\n if (dimension === 0) {\n cov = new Array(cols);\n for (i = 0; i < cols; i++) {\n cov[i] = new Array(cols);\n }\n for (i = 0; i < cols; i++) {\n for (j = i; j < cols; j++) {\n s = 0;\n for (k = 0; k < rows; k++) {\n s += weights[k] * (matrix[k][j] - means[j]) * (matrix[k][i] - means[i]);\n }\n cov[i][j] = s * factor;\n cov[j][i] = s * factor;\n }\n }\n } else if (dimension === 1) {\n cov = new Array(rows);\n for (i = 0; i < rows; i++) {\n cov[i] = new Array(rows);\n }\n for (i = 0; i < rows; i++) {\n for (j = i; j < rows; j++) {\n s = 0;\n for (k = 0; k < cols; k++) {\n s += weights[k] * (matrix[j][k] - means[j]) * (matrix[i][k] - means[i]);\n }\n cov[i][j] = s * factor;\n cov[j][i] = s * factor;\n }\n }\n } else {\n throw new Error('Invalid dimension');\n }\n\n return cov;\n};\n","'use strict';\n\n/**\n *\n * Function that returns a Number array of equally spaced numberOfPoints\n * containing a representation of intensities of the spectra arguments x\n * and y.\n *\n * The options parameter contains an object in the following form:\n * from: starting point\n * to: last point\n * numberOfPoints: number of points between from and to\n * variant: \"slot\" or \"smooth\" - smooth is the default option\n *\n * The slot variant consist that each point in the new array is calculated\n * averaging the existing points between the slot that belongs to the current\n * value. The smooth variant is the same but takes the integral of the range\n * of the slot and divide by the step size between two points in the new array.\n *\n * @param x - sorted increasing x values\n * @param y\n * @param options\n * @returns {Array} new array with the equally spaced data.\n *\n */\nfunction getEquallySpacedData(x, y, options = {}) {\n var xLength = x.length;\n if (x.length > 1 && x[0] > x[1]) {\n x = x.slice().reverse();\n y = y.slice().reverse();\n }\n\n var {\n from = x[0],\n to = x[xLength - 1],\n variant = 'smooth',\n numberOfPoints = 100\n } = options;\n\n if (xLength !== y.length) {\n throw new RangeError(\"the x and y vector doesn't have the same size.\");\n }\n\n if (typeof from !== 'number' || isNaN(from)) {\n throw new RangeError(\"'from' option must be a number\");\n }\n\n if (typeof to !== 'number' || isNaN(to)) {\n throw new RangeError(\"'to' option must be a number\");\n }\n\n var reverse = from > to;\n if (reverse) {\n [from, to] = [to, from];\n }\n\n if (typeof numberOfPoints !== 'number' || isNaN(numberOfPoints)) {\n throw new RangeError(\"'numberOfPoints' option must be a number\");\n }\n if (numberOfPoints < 1) {\n throw new RangeError('the number of points must be at least 1');\n }\n\n var output = variant === 'slot' ? getEquallySpacedSlot(x, y, from, to, numberOfPoints) : getEquallySpacedSmooth(x, y, from, to, numberOfPoints);\n\n return reverse ? output.reverse() : output;\n}\n\n/**\n * function that retrieves the getEquallySpacedData with the variant \"smooth\"\n *\n * @param x\n * @param y\n * @param from - Initial point\n * @param to - Final point\n * @param numberOfPoints\n * @returns {Array} - Array of y's equally spaced with the variant \"smooth\"\n */\nfunction getEquallySpacedSmooth(x, y, from, to, numberOfPoints) {\n var xLength = x.length;\n\n var step = (to - from) / (numberOfPoints - 1);\n var halfStep = step / 2;\n\n var output = new Array(numberOfPoints);\n\n var initialOriginalStep = x[1] - x[0];\n var lastOriginalStep = x[xLength - 1] - x[xLength - 2];\n\n // Init main variables\n var min = from - halfStep;\n var max = from + halfStep;\n\n var previousX = Number.MIN_VALUE;\n var previousY = 0;\n var nextX = x[0] - initialOriginalStep;\n var nextY = 0;\n\n var currentValue = 0;\n var slope = 0;\n var intercept = 0;\n var sumAtMin = 0;\n var sumAtMax = 0;\n\n var i = 0; // index of input\n var j = 0; // index of output\n\n function getSlope(x0, y0, x1, y1) {\n return (y1 - y0) / (x1 - x0);\n }\n\n main: while (true) {\n\n if (previousX <= min && min <= nextX) {\n add = integral(0, min - previousX, slope, previousY);\n sumAtMin = currentValue + add;\n }\n\n while (nextX - max >= 0) {\n // no overlap with original point, just consume current value\n var add = integral(0, max - previousX, slope, previousY);\n sumAtMax = currentValue + add;\n\n output[j++] = (sumAtMax - sumAtMin) / step;\n\n if (j === numberOfPoints) {\n break main;\n }\n\n min = max;\n max += step;\n sumAtMin = sumAtMax;\n }\n\n currentValue += integral(previousX, nextX, slope, intercept);\n\n previousX = nextX;\n previousY = nextY;\n\n if (i < xLength) {\n nextX = x[i];\n nextY = y[i];\n i++;\n } else if (i === xLength) {\n nextX += lastOriginalStep;\n nextY = 0;\n }\n\n slope = getSlope(previousX, previousY, nextX, nextY);\n intercept = -slope * previousX + previousY;\n }\n\n return output;\n}\n\n/**\n * function that retrieves the getEquallySpacedData with the variant \"slot\"\n *\n * @param x\n * @param y\n * @param from - Initial point\n * @param to - Final point\n * @param numberOfPoints\n * @returns {Array} - Array of y's equally spaced with the variant \"slot\"\n */\nfunction getEquallySpacedSlot(x, y, from, to, numberOfPoints) {\n var xLength = x.length;\n\n var step = (to - from) / (numberOfPoints - 1);\n var halfStep = step / 2;\n var lastStep = x[x.length - 1] - x[x.length - 2];\n\n var start = from - halfStep;\n var output = new Array(numberOfPoints);\n\n // Init main variables\n var min = start;\n var max = start + step;\n\n var previousX = -Number.MAX_VALUE;\n var previousY = 0;\n var nextX = x[0];\n var nextY = y[0];\n var frontOutsideSpectra = 0;\n var backOutsideSpectra = true;\n\n var currentValue = 0;\n\n // for slot algorithm\n var currentPoints = 0;\n\n var i = 1; // index of input\n var j = 0; // index of output\n\n main: while (true) {\n if (previousX >= nextX) throw (new Error('x must be an increasing serie'));\n while (previousX - max > 0) {\n // no overlap with original point, just consume current value\n if (backOutsideSpectra) {\n currentPoints++;\n backOutsideSpectra = false;\n }\n\n output[j] = currentPoints <= 0 ? 0 : currentValue / currentPoints;\n j++;\n\n if (j === numberOfPoints) {\n break main;\n }\n\n min = max;\n max += step;\n currentValue = 0;\n currentPoints = 0;\n }\n\n if (previousX > min) {\n currentValue += previousY;\n currentPoints++;\n }\n\n if (previousX === -Number.MAX_VALUE || frontOutsideSpectra > 1) {\n currentPoints--;\n }\n\n previousX = nextX;\n previousY = nextY;\n\n if (i < xLength) {\n nextX = x[i];\n nextY = y[i];\n i++;\n } else {\n nextX += lastStep;\n nextY = 0;\n frontOutsideSpectra++;\n }\n }\n\n return output;\n}\n/**\n * Function that calculates the integral of the line between two\n * x-coordinates, given the slope and intercept of the line.\n * @param x0\n * @param x1\n * @param slope\n * @param intercept\n * @returns {number} integral value.\n */\nfunction integral(x0, x1, slope, intercept) {\n return (0.5 * slope * x1 * x1 + intercept * x1) - (0.5 * slope * x0 * x0 + intercept * x0);\n}\n\nexports.getEquallySpacedData = getEquallySpacedData;\nexports.integral = integral;\n","'use strict';\n\nexports.SNV = SNV;\nvar Stat = require('ml-stat').array;\n\n/**\n * Function that applies the standard normal variate (SNV) to an array of values.\n *\n * @param data - Array of values.\n * @returns {Array} - applied the SNV.\n */\nfunction SNV(data) {\n var mean = Stat.mean(data);\n var std = Stat.standardDeviation(data);\n var result = data.slice();\n for (var i = 0; i < data.length; i++) {\n result[i] = (result[i] - mean) / std;\n }\n return result;\n}\n","'use strict';\n\nconst SG = require('ml-savitzky-golay-generalized');\n\nconst defaultOptions = {\n sgOptions: {\n windowSize: 9,\n polynomial: 3\n },\n minMaxRatio: 0.00025,\n broadRatio: 0.0,\n maxCriteria: true,\n smoothY: true,\n realTopDetection: false,\n heightFactor: 0,\n boundaries: false,\n derivativeThreshold: -1\n};\n\n/**\n * Global spectra deconvolution\n * @param {Array} x - Independent variable\n * @param {Array} yIn - Dependent variable\n * @param {object} [options] - Options object\n * @param {object} [options.sgOptions] - Options object for Savitzky-Golay filter. See https://github.com/mljs/savitzky-golay-generalized#options\n * @param {number} [options.sgOptions.windowSize = 9] - points to use in the approximations\n * @param {number} [options.sgOptions.polynomial = 3] - degree of the polynomial to use in the approximations\n * @param {number} [options.minMaxRatio = 0.00025] - Threshold to determine if a given peak should be considered as a noise\n * @param {number} [options.broadRatio = 0.00] - If `broadRatio` is higher than 0, then all the peaks which second derivative\n * smaller than `broadRatio * maxAbsSecondDerivative` will be marked with the soft mask equal to true.\n * @param {number} [options.noiseLevel = 0] - Noise threshold in spectrum units\n * @param {boolean} [options.maxCriteria = true] - Peaks are local maximum(true) or minimum(false)\n * @param {boolean} [options.smoothY = true] - Select the peak intensities from a smoothed version of the independent variables\n * @param {boolean} [options.realTopDetection = false] - Use a quadratic optimizations with the peak and its 3 closest neighbors\n * to determine the true x,y values of the peak?\n * @param {number} [options.heightFactor = 0] - Factor to multiply the calculated height (usually 2)\n * @param {boolean} [options.boundaries = false] - Return also the inflection points of the peaks\n * @param {number} [options.derivativeThreshold = -1] - Filters based on the amplitude of the first derivative\n * @return {Array