{"version":3,"sources":["webpack:///./node_modules/socket.io-parser/node_modules/debug/src/debug.js","webpack:///./node_modules/engine.io-parser/lib/keys.js","webpack:///./node_modules/has-cors/index.js","webpack:///./node_modules/blob/index.js","webpack:///./node_modules/engine.io-client/lib/xmlhttprequest.js","webpack:///./node_modules/engine.io-client/lib/transports/polling-xhr.js","webpack:///./node_modules/engine.io-client/lib/transports/polling.js","webpack:///./node_modules/socket.io-client/lib/url.js","webpack:///./node_modules/engine.io-parser/lib/browser.js","webpack:///./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","webpack:///./node_modules/socket.io-client/lib/socket.js","webpack:///./node_modules/socket.io-client/node_modules/debug/src/browser.js","webpack:///./node_modules/engine.io-client/node_modules/debug/src/debug.js","webpack:///./node_modules/indexof/index.js","webpack:///./node_modules/component-inherit/index.js","webpack:///./node_modules/custom-event-polyfill/polyfill.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/after/index.js","webpack:///./node_modules/socket.io-parser/node_modules/ms/index.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/socket.io-parser/binary.js","webpack:///./node_modules/socket.io-client/lib/index.js","webpack:///./node_modules/socket.io-parser/is-buffer.js","webpack:///./node_modules/engine.io-client/lib/transports/polling-jsonp.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/socket.io-parser/node_modules/debug/src/browser.js","webpack:///./node_modules/parseuri/index.js","webpack:///./node_modules/engine.io-client/lib/transports/index.js","webpack:///./node_modules/engine.io-client/lib/socket.js","webpack:///./node_modules/socket.io-client/node_modules/ms/index.js","webpack:///./node_modules/socket.io-client/lib/manager.js","webpack:///./node_modules/engine.io-client/lib/transports/websocket.js","webpack:///./node_modules/to-array/index.js","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./node_modules/engine.io-parser/lib/utf8.js","webpack:///./node_modules/parseqs/index.js","webpack:///./node_modules/engine.io-client/lib/globalThis.browser.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/socket.io-parser/index.js","webpack:///./node_modules/arraybuffer.slice/index.js","webpack:///./node_modules/engine.io-client/node_modules/ms/index.js","webpack:///./node_modules/component-bind/index.js","webpack:///./node_modules/engine.io-client/lib/index.js","webpack:///./node_modules/socket.io-client/node_modules/debug/src/debug.js","webpack:///./node_modules/has-binary2/node_modules/isarray/index.js","webpack:///./node_modules/yeast/index.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/socket.io-parser/node_modules/isarray/index.js","webpack:///./node_modules/socket.io-client/lib/on.js","webpack:///./node_modules/has-binary2/index.js","webpack:///./node_modules/engine.io-client/lib/transport.js","webpack:///./node_modules/engine.io-client/node_modules/debug/src/browser.js","webpack:///./node_modules/component-emitter/index.js","webpack:///./node_modules/backo2/index.js"],"names":["createDebug","namespace","prevTime","debug","enabled","self","curr","Date","ms","diff","prev","args","Array","arguments","length","i","exports","coerce","unshift","index","replace","match","format","formatter","formatters","val","call","splice","formatArgs","logFn","log","console","bind","apply","useColors","color","hash","charCodeAt","colors","Math","abs","selectColor","destroy","init","instances","push","indexOf","this","module","Error","stack","message","disable","enable","namespaces","save","names","skips","split","len","RegExp","substr","instance","name","test","humanize","Object","keys","obj","arr","has","prototype","hasOwnProperty","XMLHttpRequest","err","BlobBuilder","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","Blob","size","e","blobSupportsArrayBufferView","Uint8Array","blobBuilderSupported","append","getBlob","mapArrayBufferViews","ary","map","chunk","buffer","ArrayBuffer","buf","byteLength","copy","set","byteOffset","BlobBuilderConstructor","options","bb","forEach","part","type","BlobConstructor","hasCORS","globalThis","opts","xdomain","xscheme","enablesXDR","XDomainRequest","concat","join","Polling","Emitter","inherit","empty","XHR","requestTimeout","extraHeaders","location","isSSL","protocol","port","xd","hostname","xs","secure","Request","method","uri","async","data","undefined","agent","isBinary","supportsBinary","withCredentials","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","create","request","doWrite","fn","req","on","onError","sendXhr","doPoll","onData","pollXhr","xhr","open","setDisableHeaderCheck","setRequestHeader","timeout","hasXDR","onload","onLoad","onerror","responseText","onreadystatechange","readyState","contentType","getResponseHeader","responseType","status","setTimeout","send","document","requestsCount","requests","onSuccess","emit","cleanup","fromError","abort","response","attachEvent","unloadHandler","addEventListener","Transport","parseqs","parser","yeast","hasXHR2","forceBase64","doOpen","poll","pause","onPause","polling","writable","total","once","decodePayload","socket","binaryType","packet","onOpen","onClose","onPacket","doClose","close","write","packets","callbackfn","encodePayload","query","schema","timestampRequests","timestampParam","sid","b64","encode","Number","path","parseuri","loc","host","charAt","id","href","base64encoder","hasBinary","sliceBuffer","after","utf8","isAndroid","navigator","userAgent","isPhantomJS","dontSendBlobs","ping","pong","upgrade","noop","packetslist","each","done","result","next","eachWithIndex","el","cb","error","msg","encodePacket","utf8encode","callback","encodeBase64Packet","contentArray","resultBuffer","encodeArrayBuffer","fr","FileReader","readAsArrayBuffer","encodeBlobAsArrayBuffer","blob","encodeBlob","base64","encodeBase64Object","encoded","String","strict","b64data","readAsDataURL","fromCharCode","typed","basic","btoa","decodePacket","utf8decode","decodeBase64Packet","decode","tryDecode","substring","rest","encodePayloadAsBlob","encodePayloadAsArrayBuffer","doneCallback","setLengthHeader","results","decodePayloadAsBinary","n","l","chr","encodedPackets","totalLength","reduce","acc","p","toString","resultArray","bufferIndex","isString","ab","view","lenStr","parseInt","binaryIdentifier","lengthAry","bufferTail","buffers","tailArray","msgLength","chars","arraybuffer","bytes","encoded1","encoded2","encoded3","encoded4","bufferLength","toArray","hasBin","Socket","events","connect","connect_error","connect_timeout","connecting","disconnect","reconnect","reconnect_attempt","reconnect_failed","reconnect_error","reconnecting","io","nsp","json","ids","acks","receiveBuffer","sendBuffer","connected","disconnected","flags","autoConnect","subEvents","subs","onopen","ev","binary","BINARY_EVENT","EVENT","compress","pop","CONNECT","onclose","reason","onpacket","sameNamespace","rootNamespaceError","ERROR","onconnect","onevent","ACK","BINARY_ACK","onack","DISCONNECT","ondisconnect","ack","sent","emitBuffered","load","r","storage","process","DEBUG","Function","c","lastC","removeItem","window","toLowerCase","documentElement","style","WebkitAppearance","firebug","exception","table","$1","chrome","local","localStorage","localstorage","j","v","JSON","stringify","a","b","constructor","ce","CustomEvent","cancelable","preventDefault","defaultPrevented","event","params","evt","origPrevent","bubbles","createEvent","initCustomEvent","detail","defineProperty","get","Event","read","offset","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","pow","value","rt","isNaN","floor","LN2","count","err_cb","bail","proxy","h","y","plural","ceil","str","exec","parseFloat","parse","long","round","fmtShort","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","__proto__","arg","encodingOrOffset","allocUnsafe","from","TypeError","array","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","slice","fromString","isBuffer","checked","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","configurable","fill","allocUnsafeSlow","_isBuffer","compare","x","list","pos","swap16","swap32","swap64","equals","inspect","max","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","code","INVALID_BASE64_RE","leadSurrogate","toByteArray","trim","stringtrim","base64clean","src","dst","isBuf","withNativeBlob","withNativeFile","File","_deconstructPacket","placeholder","_placeholder","num","newData","_reconstructPacket","deconstructPacket","packetData","pack","attachments","reconstructPacket","removeBlobs","pendingBlobs","bloblessData","_removeBlobs","curKey","containingObject","fileReader","url","Manager","lookup","cache","managers","source","nsps","forceNew","multiplex","withNativeBuffer","withNativeArrayBuffer","JSONPPolling","callbacks","rNewline","rEscapedNewline","___eio","script","parentNode","removeChild","form","iframe","createElement","insertAt","getElementsByTagName","insertBefore","head","body","appendChild","area","iframeId","className","position","top","left","setAttribute","complete","initIframe","html","action","submit","re","parts","authority","ipv6uri","pathNames","regx","queryKey","$0","$2","JSONP","websocket","jsonp","forceJSONP","transports","transportOptions","writeBuffer","prevBufferLen","policyPort","rememberUpgrade","onlyBinaryUpgrades","perMessageDeflate","threshold","forceNode","isReactNative","product","localAddress","upgrades","pingInterval","pingTimeout","pingIntervalTimer","pingTimeoutTimer","priorWebsocketSuccess","createTransport","o","clone","EIO","transport","protocols","shift","setTransport","removeAllListeners","onDrain","probe","failed","onTransportOpen","upgradeLosesBinary","upgrading","flush","freezeTransport","onTransportClose","onupgrade","to","removeListener","onHandshake","setPing","filterUpgrades","onHeartbeat","clearTimeout","sendPacket","waitForUpgrade","cleanupAndClose","desc","filteredUpgrades","eio","Backoff","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","jitter","lastPing","packetBuffer","_parser","encoder","Encoder","decoder","Decoder","emitAll","updateSocketIds","generateId","engine","_reconnection","_reconnectionAttempts","_reconnectionDelay","setMin","_randomizationFactor","setJitter","_reconnectionDelayMax","setMax","_timeout","maybeReconnectOnOpen","attempts","skipReconnect","openSub","errorSub","timer","onping","onpong","ondata","add","ondecoded","onConnecting","processPacketQueue","subsLength","reset","delay","duration","onreconnect","attempt","BrowserWebSocket","NodeWebSocket","WebSocket","MozWebSocket","WebSocketImpl","WS","usingBrowserWebSocket","check","headers","ws","supports","addEventListeners","onmessage","support","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","items","iterator","Headers","header","getOwnPropertyNames","consumed","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","readBlobAsArrayBuffer","promise","bufferClone","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","rejected","arrayBuffer","isConsumed","then","text","readAsText","readArrayBufferAsText","formData","oldValue","thisArg","values","entries","methods","input","upcased","credentials","mode","signal","toUpperCase","referrer","reParamSearch","getTime","decodeURIComponent","Response","bodyInit","ok","statusText","redirectStatuses","redirect","DOMException","fetch","aborted","abortXhr","rawHeaders","getAllResponseHeaders","line","responseURL","ontimeout","onabort","fixUrl","removeEventListener","polyfill","byteCount","byteIndex","stringFromCharCode","ucs2decode","extra","output","counter","checkScalarValue","createByte","encodeCodePoint","symbol","readContinuationByte","continuationByte","decodeSymbol","byte1","version","byteString","tmp","ucs2encode","encodeURIComponent","qs","qry","pairs","pair","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","types","ERROR_PACKET","encodeAsString","payload","tryStringify","reconstructor","BinaryReconstructor","reconPack","writeEncoding","deconstruction","encodeAsBinary","tryParse","decodeString","takeBinaryData","finishedReconstruction","binData","abv","ii","alphabet","seed","now","decoded","IntersectionObserverEntry","intersectionRatio","startDoc","doc","frame","getFrameElement","ownerDocument","registry","crossOriginUpdater","crossOriginRect","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","boundingClientRect","intersectionRect","convertFromParentRect","bottom","right","width","height","observer","_checkForIntersections","_resetCrossOriginUpdater","observe","_observationTargets","some","item","element","nodeType","_registerInstance","entry","_monitorIntersections","unobserve","filter","_unmonitorIntersections","_unregisterInstance","_unmonitorAllIntersections","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","sort","t","_parseRootMargin","opt_rootMargin","margins","margin","unit","win","defaultView","_monitoringDocuments","monitoringInterval","domObserver","setInterval","addEvent","MutationObserver","attributes","childList","characterData","subtree","_monitoringUnsubscribes","clearInterval","removeEvent","rootDoc","root","hasDependentTargets","itemDoc","unsubscribe","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","rootBounds","newEntry","time","performance","_hasCrossedThreshold","isIntersecting","_callback","getComputedStyle","display","rect1","rect2","parent","getParentNode","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","overflow","isDoc","clientWidth","clientHeight","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","frameElement","ensureDOMRect","targetArea","intersectionArea","toFixed","opt_options","rootMargin","node","opt_useCapture","detatchEvent","parentBoundingRect","parentIntersectionRect","child","assignedSlot","description","mixin","_callbacks","off","listeners","hasListeners","factor","rand","random","deviation"],"mappings":"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","file":"script/chunks/chunk.vendors~campaigns~default~login~mytradera~resolution~selling.348699b77d.js","sourcesContent":["\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy () {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","\n/**\n * Gets the keys for an object.\n *\n * @return {Array} keys\n * @api private\n */\n\nmodule.exports = Object.keys || function keys (obj){\n var arr = [];\n var has = Object.prototype.hasOwnProperty;\n\n for (var i in obj) {\n if (has.call(obj, i)) {\n arr.push(i);\n }\n }\n return arr;\n};\n","\n/**\n * Module exports.\n *\n * Logic borrowed from Modernizr:\n *\n * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js\n */\n\ntry {\n module.exports = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n} catch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n module.exports = false;\n}\n","/**\r\n * Create a blob builder even when vendor prefixes exist\r\n */\r\n\r\nvar BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :\r\n typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :\r\n typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :\r\n typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : \r\n false;\r\n\r\n/**\r\n * Check if Blob constructor is supported\r\n */\r\n\r\nvar blobSupported = (function() {\r\n try {\r\n var a = new Blob(['hi']);\r\n return a.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if Blob constructor supports ArrayBufferViews\r\n * Fails in Safari 6, so we need to map to ArrayBuffers there.\r\n */\r\n\r\nvar blobSupportsArrayBufferView = blobSupported && (function() {\r\n try {\r\n var b = new Blob([new Uint8Array([1,2])]);\r\n return b.size === 2;\r\n } catch(e) {\r\n return false;\r\n }\r\n})();\r\n\r\n/**\r\n * Check if BlobBuilder is supported\r\n */\r\n\r\nvar blobBuilderSupported = BlobBuilder\r\n && BlobBuilder.prototype.append\r\n && BlobBuilder.prototype.getBlob;\r\n\r\n/**\r\n * Helper function that maps ArrayBufferViews to ArrayBuffers\r\n * Used by BlobBuilder constructor and old browsers that didn't\r\n * support it in the Blob constructor.\r\n */\r\n\r\nfunction mapArrayBufferViews(ary) {\r\n return ary.map(function(chunk) {\r\n if (chunk.buffer instanceof ArrayBuffer) {\r\n var buf = chunk.buffer;\r\n\r\n // if this is a subarray, make a copy so we only\r\n // include the subarray region from the underlying buffer\r\n if (chunk.byteLength !== buf.byteLength) {\r\n var copy = new Uint8Array(chunk.byteLength);\r\n copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength));\r\n buf = copy.buffer;\r\n }\r\n\r\n return buf;\r\n }\r\n\r\n return chunk;\r\n });\r\n}\r\n\r\nfunction BlobBuilderConstructor(ary, options) {\r\n options = options || {};\r\n\r\n var bb = new BlobBuilder();\r\n mapArrayBufferViews(ary).forEach(function(part) {\r\n bb.append(part);\r\n });\r\n\r\n return (options.type) ? bb.getBlob(options.type) : bb.getBlob();\r\n};\r\n\r\nfunction BlobConstructor(ary, options) {\r\n return new Blob(mapArrayBufferViews(ary), options || {});\r\n};\r\n\r\nif (typeof Blob !== 'undefined') {\r\n BlobBuilderConstructor.prototype = Blob.prototype;\r\n BlobConstructor.prototype = Blob.prototype;\r\n}\r\n\r\nmodule.exports = (function() {\r\n if (blobSupported) {\r\n return blobSupportsArrayBufferView ? Blob : BlobConstructor;\r\n } else if (blobBuilderSupported) {\r\n return BlobBuilderConstructor;\r\n } else {\r\n return undefined;\r\n }\r\n})();\r\n","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\nvar globalThis = require('./globalThis');\n\nmodule.exports = function (opts) {\n var xdomain = opts.xdomain;\n\n // scheme must be same when usign XDomainRequest\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n var xscheme = opts.xscheme;\n\n // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n // https://github.com/Automattic/engine.io-client/pull/217\n var enablesXDR = opts.enablesXDR;\n\n // XMLHttpRequest can be disabled on IE\n try {\n if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) { }\n\n // Use XDomainRequest for IE8 if enablesXDR is true\n // because loading bar keeps flashing when using jsonp-polling\n // https://github.com/yujiosaka/socke.io-ie8-loading-example\n try {\n if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n return new XDomainRequest();\n }\n } catch (e) { }\n\n if (!xdomain) {\n try {\n return new globalThis[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n } catch (e) { }\n }\n};\n","/* global attachEvent */\n\n/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n Polling.call(this, opts);\n this.requestTimeout = opts.requestTimeout;\n this.extraHeaders = opts.extraHeaders;\n\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n this.xd = (typeof location !== 'undefined' && opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n opts = opts || {};\n opts.uri = this.uri();\n opts.xd = this.xd;\n opts.xs = this.xs;\n opts.agent = this.agent || false;\n opts.supportsBinary = this.supportsBinary;\n opts.enablesXDR = this.enablesXDR;\n opts.withCredentials = this.withCredentials;\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n opts.requestTimeout = this.requestTimeout;\n\n // other options for Node.js client\n opts.extraHeaders = this.extraHeaders;\n\n return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n var isBinary = typeof data !== 'string' && data !== undefined;\n var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n var self = this;\n req.on('success', fn);\n req.on('error', function (err) {\n self.onError('xhr post error', err);\n });\n this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n debug('xhr poll');\n var req = this.request();\n var self = this;\n req.on('data', function (data) {\n self.onData(data);\n });\n req.on('error', function (err) {\n self.onError('xhr poll error', err);\n });\n this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n this.method = opts.method || 'GET';\n this.uri = opts.uri;\n this.xd = !!opts.xd;\n this.xs = !!opts.xs;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.agent = opts.agent;\n this.isBinary = opts.isBinary;\n this.supportsBinary = opts.supportsBinary;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n this.requestTimeout = opts.requestTimeout;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n\n this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n\n var xhr = this.xhr = new XMLHttpRequest(opts);\n var self = this;\n\n try {\n debug('xhr open %s: %s', this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (var i in this.extraHeaders) {\n if (this.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n\n if ('POST' === this.method) {\n try {\n if (this.isBinary) {\n xhr.setRequestHeader('Content-type', 'application/octet-stream');\n } else {\n xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n }\n } catch (e) {}\n }\n\n try {\n xhr.setRequestHeader('Accept', '*/*');\n } catch (e) {}\n\n // ie6 check\n if ('withCredentials' in xhr) {\n xhr.withCredentials = this.withCredentials;\n }\n\n if (this.requestTimeout) {\n xhr.timeout = this.requestTimeout;\n }\n\n if (this.hasXDR()) {\n xhr.onload = function () {\n self.onLoad();\n };\n xhr.onerror = function () {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n try {\n var contentType = xhr.getResponseHeader('Content-Type');\n if (self.supportsBinary && contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n xhr.responseType = 'arraybuffer';\n }\n } catch (e) {}\n }\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function () {\n self.onError(typeof xhr.status === 'number' ? xhr.status : 0);\n }, 0);\n }\n };\n }\n\n debug('xhr data %s', this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly fhrom the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function () {\n self.onError(e);\n }, 0);\n return;\n }\n\n if (typeof document !== 'undefined') {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n this.emit('success');\n this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n this.emit('data', data);\n this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n this.emit('error', err);\n this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n if ('undefined' === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n\n if (typeof document !== 'undefined') {\n delete Request.requests[this.index];\n }\n\n this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n var data;\n try {\n var contentType;\n try {\n contentType = this.xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n data = this.xhr.response || this.xhr.responseText;\n } else {\n data = this.xhr.responseText;\n }\n } catch (e) {\n this.onError(e);\n }\n if (null != data) {\n this.onData(data);\n }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n return typeof XDomainRequest !== 'undefined' && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (typeof document !== 'undefined') {\n if (typeof attachEvent === 'function') {\n attachEvent('onunload', unloadHandler);\n } else if (typeof addEventListener === 'function') {\n var terminationEvent = 'onpagehide' in globalThis ? 'pagehide' : 'unload';\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\n\nfunction unloadHandler () {\n for (var i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n var XMLHttpRequest = require('xmlhttprequest-ssl');\n var xhr = new XMLHttpRequest({ xdomain: false });\n return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (!hasXHR2 || forceBase64) {\n this.supportsBinary = false;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n var self = this;\n\n this.readyState = 'pausing';\n\n function pause () {\n debug('paused');\n self.readyState = 'paused';\n onPause();\n }\n\n if (this.polling || !this.writable) {\n var total = 0;\n\n if (this.polling) {\n debug('we are currently polling - waiting to pause');\n total++;\n this.once('pollComplete', function () {\n debug('pre-pause polling complete');\n --total || pause();\n });\n }\n\n if (!this.writable) {\n debug('we are currently writing - waiting to pause');\n total++;\n this.once('drain', function () {\n debug('pre-pause writing complete');\n --total || pause();\n });\n }\n } else {\n pause();\n }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n debug('polling');\n this.polling = true;\n this.doPoll();\n this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n var self = this;\n debug('polling got data %s', data);\n var callback = function (packet, index, total) {\n // if its the first message we consider the transport open\n if ('opening' === self.readyState && packet.type === 'open') {\n self.onOpen();\n }\n\n // if its a close packet, we close the ongoing requests\n if ('close' === packet.type) {\n self.onClose();\n return false;\n }\n\n // otherwise bypass onData and handle the message\n self.onPacket(packet);\n };\n\n // decode payload\n parser.decodePayload(data, this.socket.binaryType, callback);\n\n // if an event did not trigger closing\n if ('closed' !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit('pollComplete');\n\n if ('open' === this.readyState) {\n this.poll();\n } else {\n debug('ignoring poll - transport state \"%s\"', this.readyState);\n }\n }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n var self = this;\n\n function close () {\n debug('writing close packet');\n self.write([{ type: 'close' }]);\n }\n\n if ('open' === this.readyState) {\n debug('transport open - closing');\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n debug('transport not open - deferring close');\n this.once('open', close);\n }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n var callbackfn = function () {\n self.writable = true;\n self.emit('drain');\n };\n\n parser.encodePayload(packets, this.supportsBinary, function (data) {\n self.doWrite(data, callbackfn);\n });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'https' : 'http';\n var port = '';\n\n // cache busting is forced\n if (false !== this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // avoid port if default for schema\n if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n ('http' === schema && Number(this.port) !== 80))) {\n port = ':' + this.port;\n }\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n","\n/**\n * Module dependencies.\n */\n\nvar parseuri = require('parseuri');\nvar debug = require('debug')('socket.io-client:url');\n\n/**\n * Module exports.\n */\n\nmodule.exports = url;\n\n/**\n * URL parser.\n *\n * @param {String} url\n * @param {Object} An object meant to mimic window.location.\n * Defaults to window.location.\n * @api public\n */\n\nfunction url (uri, loc) {\n var obj = uri;\n\n // default to window.location\n loc = loc || (typeof location !== 'undefined' && location);\n if (null == uri) uri = loc.protocol + '//' + loc.host;\n\n // relative path support\n if ('string' === typeof uri) {\n if ('/' === uri.charAt(0)) {\n if ('/' === uri.charAt(1)) {\n uri = loc.protocol + uri;\n } else {\n uri = loc.host + uri;\n }\n }\n\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n debug('protocol-less url %s', uri);\n if ('undefined' !== typeof loc) {\n uri = loc.protocol + '//' + uri;\n } else {\n uri = 'https://' + uri;\n }\n }\n\n // parse\n debug('parse %s', uri);\n obj = parseuri(uri);\n }\n\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = '80';\n } else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = '443';\n }\n }\n\n obj.path = obj.path || '/';\n\n var ipv6 = obj.host.indexOf(':') !== -1;\n var host = ipv6 ? '[' + obj.host + ']' : obj.host;\n\n // define unique id\n obj.id = obj.protocol + '://' + host + ':' + obj.port;\n // define href\n obj.href = obj.protocol + '://' + host + (loc && loc.port === obj.port ? '' : (':' + obj.port));\n\n return obj;\n}\n","/**\n * Module dependencies.\n */\n\nvar keys = require('./keys');\nvar hasBinary = require('has-binary2');\nvar sliceBuffer = require('arraybuffer.slice');\nvar after = require('after');\nvar utf8 = require('./utf8');\n\nvar base64encoder;\nif (typeof ArrayBuffer !== 'undefined') {\n base64encoder = require('base64-arraybuffer');\n}\n\n/**\n * Check if we are running an android browser. That requires us to use\n * ArrayBuffer with polling transports...\n *\n * http://ghinda.net/jpeg-blob-ajax-android/\n */\n\nvar isAndroid = typeof navigator !== 'undefined' && /Android/i.test(navigator.userAgent);\n\n/**\n * Check if we are running in PhantomJS.\n * Uploading a Blob with PhantomJS does not work correctly, as reported here:\n * https://github.com/ariya/phantomjs/issues/11395\n * @type boolean\n */\nvar isPhantomJS = typeof navigator !== 'undefined' && /PhantomJS/i.test(navigator.userAgent);\n\n/**\n * When true, avoids using Blobs to encode payloads.\n * @type boolean\n */\nvar dontSendBlobs = isAndroid || isPhantomJS;\n\n/**\n * Current protocol version.\n */\n\nexports.protocol = 3;\n\n/**\n * Packet types.\n */\n\nvar packets = exports.packets = {\n open: 0 // non-ws\n , close: 1 // non-ws\n , ping: 2\n , pong: 3\n , message: 4\n , upgrade: 5\n , noop: 6\n};\n\nvar packetslist = keys(packets);\n\n/**\n * Premade error packet.\n */\n\nvar err = { type: 'error', data: 'parser error' };\n\n/**\n * Create a blob api even for blob builder when vendor prefixes exist\n */\n\nvar Blob = require('blob');\n\n/**\n * Encodes a packet.\n *\n * [ ]\n *\n * Example:\n *\n * 5hello world\n * 3\n * 4\n *\n * Binary is encoded in an identical principle\n *\n * @api private\n */\n\nexports.encodePacket = function (packet, supportsBinary, utf8encode, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = false;\n }\n\n if (typeof utf8encode === 'function') {\n callback = utf8encode;\n utf8encode = null;\n }\n\n var data = (packet.data === undefined)\n ? undefined\n : packet.data.buffer || packet.data;\n\n if (typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) {\n return encodeArrayBuffer(packet, supportsBinary, callback);\n } else if (typeof Blob !== 'undefined' && data instanceof Blob) {\n return encodeBlob(packet, supportsBinary, callback);\n }\n\n // might be an object with { base64: true, data: dataAsBase64String }\n if (data && data.base64) {\n return encodeBase64Object(packet, callback);\n }\n\n // Sending data as a utf-8 string\n var encoded = packets[packet.type];\n\n // data fragment is optional\n if (undefined !== packet.data) {\n encoded += utf8encode ? utf8.encode(String(packet.data), { strict: false }) : String(packet.data);\n }\n\n return callback('' + encoded);\n\n};\n\nfunction encodeBase64Object(packet, callback) {\n // packet data is an object { base64: true, data: dataAsBase64String }\n var message = 'b' + exports.packets[packet.type] + packet.data.data;\n return callback(message);\n}\n\n/**\n * Encode packet helpers for binary types\n */\n\nfunction encodeArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var data = packet.data;\n var contentArray = new Uint8Array(data);\n var resultBuffer = new Uint8Array(1 + data.byteLength);\n\n resultBuffer[0] = packets[packet.type];\n for (var i = 0; i < contentArray.length; i++) {\n resultBuffer[i+1] = contentArray[i];\n }\n\n return callback(resultBuffer.buffer);\n}\n\nfunction encodeBlobAsArrayBuffer(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n var fr = new FileReader();\n fr.onload = function() {\n exports.encodePacket({ type: packet.type, data: fr.result }, supportsBinary, true, callback);\n };\n return fr.readAsArrayBuffer(packet.data);\n}\n\nfunction encodeBlob(packet, supportsBinary, callback) {\n if (!supportsBinary) {\n return exports.encodeBase64Packet(packet, callback);\n }\n\n if (dontSendBlobs) {\n return encodeBlobAsArrayBuffer(packet, supportsBinary, callback);\n }\n\n var length = new Uint8Array(1);\n length[0] = packets[packet.type];\n var blob = new Blob([length.buffer, packet.data]);\n\n return callback(blob);\n}\n\n/**\n * Encodes a packet with binary data in a base64 string\n *\n * @param {Object} packet, has `type` and `data`\n * @return {String} base64 encoded message\n */\n\nexports.encodeBase64Packet = function(packet, callback) {\n var message = 'b' + exports.packets[packet.type];\n if (typeof Blob !== 'undefined' && packet.data instanceof Blob) {\n var fr = new FileReader();\n fr.onload = function() {\n var b64 = fr.result.split(',')[1];\n callback(message + b64);\n };\n return fr.readAsDataURL(packet.data);\n }\n\n var b64data;\n try {\n b64data = String.fromCharCode.apply(null, new Uint8Array(packet.data));\n } catch (e) {\n // iPhone Safari doesn't let you apply with typed arrays\n var typed = new Uint8Array(packet.data);\n var basic = new Array(typed.length);\n for (var i = 0; i < typed.length; i++) {\n basic[i] = typed[i];\n }\n b64data = String.fromCharCode.apply(null, basic);\n }\n message += btoa(b64data);\n return callback(message);\n};\n\n/**\n * Decodes a packet. Changes format to Blob if requested.\n *\n * @return {Object} with `type` and `data` (if any)\n * @api private\n */\n\nexports.decodePacket = function (data, binaryType, utf8decode) {\n if (data === undefined) {\n return err;\n }\n // String data\n if (typeof data === 'string') {\n if (data.charAt(0) === 'b') {\n return exports.decodeBase64Packet(data.substr(1), binaryType);\n }\n\n if (utf8decode) {\n data = tryDecode(data);\n if (data === false) {\n return err;\n }\n }\n var type = data.charAt(0);\n\n if (Number(type) != type || !packetslist[type]) {\n return err;\n }\n\n if (data.length > 1) {\n return { type: packetslist[type], data: data.substring(1) };\n } else {\n return { type: packetslist[type] };\n }\n }\n\n var asArray = new Uint8Array(data);\n var type = asArray[0];\n var rest = sliceBuffer(data, 1);\n if (Blob && binaryType === 'blob') {\n rest = new Blob([rest]);\n }\n return { type: packetslist[type], data: rest };\n};\n\nfunction tryDecode(data) {\n try {\n data = utf8.decode(data, { strict: false });\n } catch (e) {\n return false;\n }\n return data;\n}\n\n/**\n * Decodes a packet encoded in a base64 string\n *\n * @param {String} base64 encoded message\n * @return {Object} with `type` and `data` (if any)\n */\n\nexports.decodeBase64Packet = function(msg, binaryType) {\n var type = packetslist[msg.charAt(0)];\n if (!base64encoder) {\n return { type: type, data: { base64: true, data: msg.substr(1) } };\n }\n\n var data = base64encoder.decode(msg.substr(1));\n\n if (binaryType === 'blob' && Blob) {\n data = new Blob([data]);\n }\n\n return { type: type, data: data };\n};\n\n/**\n * Encodes multiple messages (payload).\n *\n * :data\n *\n * Example:\n *\n * 11:hello world2:hi\n *\n * If any contents are binary, they will be encoded as base64 strings. Base64\n * encoded strings are marked with a b before the length specifier\n *\n * @param {Array} packets\n * @api private\n */\n\nexports.encodePayload = function (packets, supportsBinary, callback) {\n if (typeof supportsBinary === 'function') {\n callback = supportsBinary;\n supportsBinary = null;\n }\n\n var isBinary = hasBinary(packets);\n\n if (supportsBinary && isBinary) {\n if (Blob && !dontSendBlobs) {\n return exports.encodePayloadAsBlob(packets, callback);\n }\n\n return exports.encodePayloadAsArrayBuffer(packets, callback);\n }\n\n if (!packets.length) {\n return callback('0:');\n }\n\n function setLengthHeader(message) {\n return message.length + ':' + message;\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, !isBinary ? false : supportsBinary, false, function(message) {\n doneCallback(null, setLengthHeader(message));\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(results.join(''));\n });\n};\n\n/**\n * Async array map using after\n */\n\nfunction map(ary, each, done) {\n var result = new Array(ary.length);\n var next = after(ary.length, done);\n\n var eachWithIndex = function(i, el, cb) {\n each(el, function(error, msg) {\n result[i] = msg;\n cb(error, result);\n });\n };\n\n for (var i = 0; i < ary.length; i++) {\n eachWithIndex(i, ary[i], next);\n }\n}\n\n/*\n * Decodes data when a payload is maybe expected. Possible binary contents are\n * decoded from their base64 representation\n *\n * @param {String} data, callback method\n * @api public\n */\n\nexports.decodePayload = function (data, binaryType, callback) {\n if (typeof data !== 'string') {\n return exports.decodePayloadAsBinary(data, binaryType, callback);\n }\n\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var packet;\n if (data === '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n var length = '', n, msg;\n\n for (var i = 0, l = data.length; i < l; i++) {\n var chr = data.charAt(i);\n\n if (chr !== ':') {\n length += chr;\n continue;\n }\n\n if (length === '' || (length != (n = Number(length)))) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n msg = data.substr(i + 1, n);\n\n if (length != msg.length) {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n if (msg.length) {\n packet = exports.decodePacket(msg, binaryType, false);\n\n if (err.type === packet.type && err.data === packet.data) {\n // parser error in individual packet - ignoring payload\n return callback(err, 0, 1);\n }\n\n var ret = callback(packet, i + n, l);\n if (false === ret) return;\n }\n\n // advance cursor\n i += n;\n length = '';\n }\n\n if (length !== '') {\n // parser error - ignoring payload\n return callback(err, 0, 1);\n }\n\n};\n\n/**\n * Encodes multiple messages (payload) as binary.\n *\n * <1 = binary, 0 = string>[...]\n *\n * Example:\n * 1 3 255 1 2 3, if the binary contents are interpreted as 8 bit integers\n *\n * @param {Array} packets\n * @return {ArrayBuffer} encoded payload\n * @api private\n */\n\nexports.encodePayloadAsArrayBuffer = function(packets, callback) {\n if (!packets.length) {\n return callback(new ArrayBuffer(0));\n }\n\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(data) {\n return doneCallback(null, data);\n });\n }\n\n map(packets, encodeOne, function(err, encodedPackets) {\n var totalLength = encodedPackets.reduce(function(acc, p) {\n var len;\n if (typeof p === 'string'){\n len = p.length;\n } else {\n len = p.byteLength;\n }\n return acc + len.toString().length + len + 2; // string/binary identifier + separator = 2\n }, 0);\n\n var resultArray = new Uint8Array(totalLength);\n\n var bufferIndex = 0;\n encodedPackets.forEach(function(p) {\n var isString = typeof p === 'string';\n var ab = p;\n if (isString) {\n var view = new Uint8Array(p.length);\n for (var i = 0; i < p.length; i++) {\n view[i] = p.charCodeAt(i);\n }\n ab = view.buffer;\n }\n\n if (isString) { // not true binary\n resultArray[bufferIndex++] = 0;\n } else { // true binary\n resultArray[bufferIndex++] = 1;\n }\n\n var lenStr = ab.byteLength.toString();\n for (var i = 0; i < lenStr.length; i++) {\n resultArray[bufferIndex++] = parseInt(lenStr[i]);\n }\n resultArray[bufferIndex++] = 255;\n\n var view = new Uint8Array(ab);\n for (var i = 0; i < view.length; i++) {\n resultArray[bufferIndex++] = view[i];\n }\n });\n\n return callback(resultArray.buffer);\n });\n};\n\n/**\n * Encode as Blob\n */\n\nexports.encodePayloadAsBlob = function(packets, callback) {\n function encodeOne(packet, doneCallback) {\n exports.encodePacket(packet, true, true, function(encoded) {\n var binaryIdentifier = new Uint8Array(1);\n binaryIdentifier[0] = 1;\n if (typeof encoded === 'string') {\n var view = new Uint8Array(encoded.length);\n for (var i = 0; i < encoded.length; i++) {\n view[i] = encoded.charCodeAt(i);\n }\n encoded = view.buffer;\n binaryIdentifier[0] = 0;\n }\n\n var len = (encoded instanceof ArrayBuffer)\n ? encoded.byteLength\n : encoded.size;\n\n var lenStr = len.toString();\n var lengthAry = new Uint8Array(lenStr.length + 1);\n for (var i = 0; i < lenStr.length; i++) {\n lengthAry[i] = parseInt(lenStr[i]);\n }\n lengthAry[lenStr.length] = 255;\n\n if (Blob) {\n var blob = new Blob([binaryIdentifier.buffer, lengthAry.buffer, encoded]);\n doneCallback(null, blob);\n }\n });\n }\n\n map(packets, encodeOne, function(err, results) {\n return callback(new Blob(results));\n });\n};\n\n/*\n * Decodes data when a payload is maybe expected. Strings are decoded by\n * interpreting each byte as a key code for entries marked to start with 0. See\n * description of encodePayloadAsBinary\n *\n * @param {ArrayBuffer} data, callback method\n * @api public\n */\n\nexports.decodePayloadAsBinary = function (data, binaryType, callback) {\n if (typeof binaryType === 'function') {\n callback = binaryType;\n binaryType = null;\n }\n\n var bufferTail = data;\n var buffers = [];\n\n while (bufferTail.byteLength > 0) {\n var tailArray = new Uint8Array(bufferTail);\n var isString = tailArray[0] === 0;\n var msgLength = '';\n\n for (var i = 1; ; i++) {\n if (tailArray[i] === 255) break;\n\n // 310 = char length of Number.MAX_VALUE\n if (msgLength.length > 310) {\n return callback(err, 0, 1);\n }\n\n msgLength += tailArray[i];\n }\n\n bufferTail = sliceBuffer(bufferTail, 2 + msgLength.length);\n msgLength = parseInt(msgLength);\n\n var msg = sliceBuffer(bufferTail, 0, msgLength);\n if (isString) {\n try {\n msg = String.fromCharCode.apply(null, new Uint8Array(msg));\n } catch (e) {\n // iPhone Safari doesn't let you apply to typed arrays\n var typed = new Uint8Array(msg);\n msg = '';\n for (var i = 0; i < typed.length; i++) {\n msg += String.fromCharCode(typed[i]);\n }\n }\n }\n\n buffers.push(msg);\n bufferTail = sliceBuffer(bufferTail, msgLength);\n }\n\n var total = buffers.length;\n buffers.forEach(function(buffer, i) {\n callback(exports.decodePacket(buffer, binaryType, true), i, total);\n });\n};\n","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(chars){\n \"use strict\";\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = chars.indexOf(base64[i]);\n encoded2 = chars.indexOf(base64[i+1]);\n encoded3 = chars.indexOf(base64[i+2]);\n encoded4 = chars.indexOf(base64[i+3]);\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\");\n","\n/**\n * Module dependencies.\n */\n\nvar parser = require('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar toArray = require('to-array');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:socket');\nvar parseqs = require('parseqs');\nvar hasBin = require('has-binary2');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = Socket;\n\n/**\n * Internal events (blacklisted).\n * These events can't be emitted by the user.\n *\n * @api private\n */\n\nvar events = {\n connect: 1,\n connect_error: 1,\n connect_timeout: 1,\n connecting: 1,\n disconnect: 1,\n error: 1,\n reconnect: 1,\n reconnect_attempt: 1,\n reconnect_failed: 1,\n reconnect_error: 1,\n reconnecting: 1,\n ping: 1,\n pong: 1\n};\n\n/**\n * Shortcut to `Emitter#emit`.\n */\n\nvar emit = Emitter.prototype.emit;\n\n/**\n * `Socket` constructor.\n *\n * @api public\n */\n\nfunction Socket (io, nsp, opts) {\n this.io = io;\n this.nsp = nsp;\n this.json = this; // compat\n this.ids = 0;\n this.acks = {};\n this.receiveBuffer = [];\n this.sendBuffer = [];\n this.connected = false;\n this.disconnected = true;\n this.flags = {};\n if (opts && opts.query) {\n this.query = opts.query;\n }\n if (this.io.autoConnect) this.open();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Subscribe to open, close and packet events\n *\n * @api private\n */\n\nSocket.prototype.subEvents = function () {\n if (this.subs) return;\n\n var io = this.io;\n this.subs = [\n on(io, 'open', bind(this, 'onopen')),\n on(io, 'packet', bind(this, 'onpacket')),\n on(io, 'close', bind(this, 'onclose'))\n ];\n};\n\n/**\n * \"Opens\" the socket.\n *\n * @api public\n */\n\nSocket.prototype.open =\nSocket.prototype.connect = function () {\n if (this.connected) return this;\n\n this.subEvents();\n if (!this.io.reconnecting) this.io.open(); // ensure open\n if ('open' === this.io.readyState) this.onopen();\n this.emit('connecting');\n return this;\n};\n\n/**\n * Sends a `message` event.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.send = function () {\n var args = toArray(arguments);\n args.unshift('message');\n this.emit.apply(this, args);\n return this;\n};\n\n/**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @param {String} event name\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.emit = function (ev) {\n if (events.hasOwnProperty(ev)) {\n emit.apply(this, arguments);\n return this;\n }\n\n var args = toArray(arguments);\n var packet = {\n type: (this.flags.binary !== undefined ? this.flags.binary : hasBin(args)) ? parser.BINARY_EVENT : parser.EVENT,\n data: args\n };\n\n packet.options = {};\n packet.options.compress = !this.flags || false !== this.flags.compress;\n\n // event ack callback\n if ('function' === typeof args[args.length - 1]) {\n debug('emitting packet with ack id %d', this.ids);\n this.acks[this.ids] = args.pop();\n packet.id = this.ids++;\n }\n\n if (this.connected) {\n this.packet(packet);\n } else {\n this.sendBuffer.push(packet);\n }\n\n this.flags = {};\n\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.packet = function (packet) {\n packet.nsp = this.nsp;\n this.io.packet(packet);\n};\n\n/**\n * Called upon engine `open`.\n *\n * @api private\n */\n\nSocket.prototype.onopen = function () {\n debug('transport is open - connecting');\n\n // write connect packet if necessary\n if ('/' !== this.nsp) {\n if (this.query) {\n var query = typeof this.query === 'object' ? parseqs.encode(this.query) : this.query;\n debug('sending connect packet with query %s', query);\n this.packet({type: parser.CONNECT, query: query});\n } else {\n this.packet({type: parser.CONNECT});\n }\n }\n};\n\n/**\n * Called upon engine `close`.\n *\n * @param {String} reason\n * @api private\n */\n\nSocket.prototype.onclose = function (reason) {\n debug('close (%s)', reason);\n this.connected = false;\n this.disconnected = true;\n delete this.id;\n this.emit('disconnect', reason);\n};\n\n/**\n * Called with socket packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onpacket = function (packet) {\n var sameNamespace = packet.nsp === this.nsp;\n var rootNamespaceError = packet.type === parser.ERROR && packet.nsp === '/';\n\n if (!sameNamespace && !rootNamespaceError) return;\n\n switch (packet.type) {\n case parser.CONNECT:\n this.onconnect();\n break;\n\n case parser.EVENT:\n this.onevent(packet);\n break;\n\n case parser.BINARY_EVENT:\n this.onevent(packet);\n break;\n\n case parser.ACK:\n this.onack(packet);\n break;\n\n case parser.BINARY_ACK:\n this.onack(packet);\n break;\n\n case parser.DISCONNECT:\n this.ondisconnect();\n break;\n\n case parser.ERROR:\n this.emit('error', packet.data);\n break;\n }\n};\n\n/**\n * Called upon a server event.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onevent = function (packet) {\n var args = packet.data || [];\n debug('emitting event %j', args);\n\n if (null != packet.id) {\n debug('attaching ack callback to event');\n args.push(this.ack(packet.id));\n }\n\n if (this.connected) {\n emit.apply(this, args);\n } else {\n this.receiveBuffer.push(args);\n }\n};\n\n/**\n * Produces an ack callback to emit with an event.\n *\n * @api private\n */\n\nSocket.prototype.ack = function (id) {\n var self = this;\n var sent = false;\n return function () {\n // prevent double callbacks\n if (sent) return;\n sent = true;\n var args = toArray(arguments);\n debug('sending ack %j', args);\n\n self.packet({\n type: hasBin(args) ? parser.BINARY_ACK : parser.ACK,\n id: id,\n data: args\n });\n };\n};\n\n/**\n * Called upon a server acknowlegement.\n *\n * @param {Object} packet\n * @api private\n */\n\nSocket.prototype.onack = function (packet) {\n var ack = this.acks[packet.id];\n if ('function' === typeof ack) {\n debug('calling ack %s with %j', packet.id, packet.data);\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n } else {\n debug('bad ack %s', packet.id);\n }\n};\n\n/**\n * Called upon server connect.\n *\n * @api private\n */\n\nSocket.prototype.onconnect = function () {\n this.connected = true;\n this.disconnected = false;\n this.emit('connect');\n this.emitBuffered();\n};\n\n/**\n * Emit buffered events (received and emitted).\n *\n * @api private\n */\n\nSocket.prototype.emitBuffered = function () {\n var i;\n for (i = 0; i < this.receiveBuffer.length; i++) {\n emit.apply(this, this.receiveBuffer[i]);\n }\n this.receiveBuffer = [];\n\n for (i = 0; i < this.sendBuffer.length; i++) {\n this.packet(this.sendBuffer[i]);\n }\n this.sendBuffer = [];\n};\n\n/**\n * Called upon server disconnect.\n *\n * @api private\n */\n\nSocket.prototype.ondisconnect = function () {\n debug('server disconnect (%s)', this.nsp);\n this.destroy();\n this.onclose('io server disconnect');\n};\n\n/**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @api private.\n */\n\nSocket.prototype.destroy = function () {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n for (var i = 0; i < this.subs.length; i++) {\n this.subs[i].destroy();\n }\n this.subs = null;\n }\n\n this.io.destroy(this);\n};\n\n/**\n * Disconnects the socket manually.\n *\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.close =\nSocket.prototype.disconnect = function () {\n if (this.connected) {\n debug('performing disconnect (%s)', this.nsp);\n this.packet({ type: parser.DISCONNECT });\n }\n\n // remove socket from pool\n this.destroy();\n\n if (this.connected) {\n // fire events\n this.onclose('io client disconnect');\n }\n return this;\n};\n\n/**\n * Sets the compress flag.\n *\n * @param {Boolean} if `true`, compresses the sending data\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.compress = function (compress) {\n this.flags.compress = compress;\n return this;\n};\n\n/**\n * Sets the binary flag\n *\n * @param {Boolean} whether the emitted data contains binary\n * @return {Socket} self\n * @api public\n */\n\nSocket.prototype.binary = function (binary) {\n this.flags.binary = binary;\n return this;\n};\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',\n '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',\n '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',\n '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',\n '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',\n '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',\n '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',\n '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',\n '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',\n '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',\n '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // Internet Explorer and Edge do not support colors.\n if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n return false;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * Active `debug` instances.\n */\nexports.instances = [];\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n var prevTime;\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n debug.destroy = destroy;\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n exports.instances.push(debug);\n\n return debug;\n}\n\nfunction destroy () {\n var index = exports.instances.indexOf(this);\n if (index !== -1) {\n exports.instances.splice(index, 1);\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var i;\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n\n for (i = 0; i < exports.instances.length; i++) {\n var instance = exports.instances[i];\n instance.enabled = exports.enabled(instance.namespace);\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n if (name[name.length - 1] === '*') {\n return true;\n }\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};","\nmodule.exports = function(a, b){\n var fn = function(){};\n fn.prototype = b.prototype;\n a.prototype = new fn;\n a.prototype.constructor = a;\n};","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\n(function() {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n var ce = new window.CustomEvent('test', { cancelable: true });\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n } catch (e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {};\n params.bubbles = !!params.bubbles;\n params.cancelable = !!params.cancelable;\n\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n origPrevent = evt.preventDefault;\n evt.preventDefault = function() {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n } catch (e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n }\n})();\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","module.exports = after\n\nfunction after(count, callback, err_cb) {\n var bail = false\n err_cb = err_cb || noop\n proxy.count = count\n\n return (count === 0) ? callback() : proxy\n\n function proxy(err, result) {\n if (proxy.count <= 0) {\n throw new Error('after called too many times')\n }\n --proxy.count\n\n // after first error, rest are passed to err_cb\n if (err) {\n bail = true\n callback(err)\n // future error callbacks will go to error handler\n callback = err_cb\n } else if (proxy.count === 0 && !bail) {\n callback(null, result)\n }\n }\n}\n\nfunction noop() {}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\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","/*global Blob,File*/\n\n/**\n * Module requirements\n */\n\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof Blob === 'function' || (typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]');\nvar withNativeFile = typeof File === 'function' || (typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]');\n\n/**\n * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder.\n * Anything with blobs or files should be fed through removeBlobs before coming\n * here.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @api public\n */\n\nexports.deconstructPacket = function(packet) {\n var buffers = [];\n var packetData = packet.data;\n var pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return {packet: pack, buffers: buffers};\n};\n\nfunction _deconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (isBuf(data)) {\n var placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n } else if (isArray(data)) {\n var newData = new Array(data.length);\n for (var i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n } else if (typeof data === 'object' && !(data instanceof Date)) {\n var newData = {};\n for (var key in data) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n return newData;\n }\n return data;\n}\n\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @api public\n */\n\nexports.reconstructPacket = function(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n};\n\nfunction _reconstructPacket(data, buffers) {\n if (!data) return data;\n\n if (data && data._placeholder) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n } else if (isArray(data)) {\n for (var i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n } else if (typeof data === 'object') {\n for (var key in data) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n\n return data;\n}\n\n/**\n * Asynchronously removes Blobs or Files from data via\n * FileReader's readAsArrayBuffer method. Used before encoding\n * data as msgpack. Calls callback with the blobless data.\n *\n * @param {Object} data\n * @param {Function} callback\n * @api private\n */\n\nexports.removeBlobs = function(data, callback) {\n function _removeBlobs(obj, curKey, containingObject) {\n if (!obj) return obj;\n\n // convert any blob\n if ((withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)) {\n pendingBlobs++;\n\n // async filereader\n var fileReader = new FileReader();\n fileReader.onload = function() { // this.result == arraybuffer\n if (containingObject) {\n containingObject[curKey] = this.result;\n }\n else {\n bloblessData = this.result;\n }\n\n // if nothing pending its callback time\n if(! --pendingBlobs) {\n callback(bloblessData);\n }\n };\n\n fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer\n } else if (isArray(obj)) { // handle array\n for (var i = 0; i < obj.length; i++) {\n _removeBlobs(obj[i], i, obj);\n }\n } else if (typeof obj === 'object' && !isBuf(obj)) { // and object\n for (var key in obj) {\n _removeBlobs(obj[key], key, obj);\n }\n }\n }\n\n var pendingBlobs = 0;\n var bloblessData = data;\n _removeBlobs(bloblessData);\n if (!pendingBlobs) {\n callback(bloblessData);\n }\n};\n","\n/**\n * Module dependencies.\n */\n\nvar url = require('./url');\nvar parser = require('socket.io-parser');\nvar Manager = require('./manager');\nvar debug = require('debug')('socket.io-client');\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports = lookup;\n\n/**\n * Managers cache.\n */\n\nvar cache = exports.managers = {};\n\n/**\n * Looks up an existing `Manager` for multiplexing.\n * If the user summons:\n *\n * `io('http://localhost/a');`\n * `io('http://localhost/b');`\n *\n * We reuse the existing instance based on same scheme/port/host,\n * and we initialize sockets for each namespace.\n *\n * @api public\n */\n\nfunction lookup (uri, opts) {\n if (typeof uri === 'object') {\n opts = uri;\n uri = undefined;\n }\n\n opts = opts || {};\n\n var parsed = url(uri);\n var source = parsed.source;\n var id = parsed.id;\n var path = parsed.path;\n var sameNamespace = cache[id] && path in cache[id].nsps;\n var newConnection = opts.forceNew || opts['force new connection'] ||\n false === opts.multiplex || sameNamespace;\n\n var io;\n\n if (newConnection) {\n debug('ignoring socket cache for %s', source);\n io = Manager(source, opts);\n } else {\n if (!cache[id]) {\n debug('new io instance for %s', source);\n cache[id] = Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.query;\n }\n return io.socket(parsed.path, opts);\n}\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = parser.protocol;\n\n/**\n * `connect`.\n *\n * @param {String} uri\n * @api public\n */\n\nexports.connect = lookup;\n\n/**\n * Expose constructors for standalone build.\n *\n * @api public\n */\n\nexports.Manager = require('./manager');\nexports.Socket = require('./socket');\n","\nmodule.exports = isBuf;\n\nvar withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function';\nvar withNativeArrayBuffer = typeof ArrayBuffer === 'function';\n\nvar isView = function (obj) {\n return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : (obj.buffer instanceof ArrayBuffer);\n};\n\n/**\n * Returns true if obj is a buffer or an arraybuffer.\n *\n * @api private\n */\n\nfunction isBuf(obj) {\n return (withNativeBuffer && Buffer.isBuffer(obj)) ||\n (withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj)));\n}\n","/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n Polling.call(this, opts);\n\n this.query = this.query || {};\n\n // define global callbacks array if not present\n // we do this here (lazily) to avoid unneeded global pollution\n if (!callbacks) {\n // we need to consider multiple engines in the same page\n callbacks = globalThis.___eio = (globalThis.___eio || []);\n }\n\n // callback identifier\n this.index = callbacks.length;\n\n // add callback to jsonp global\n var self = this;\n callbacks.push(function (msg) {\n self.onData(msg);\n });\n\n // append to query string\n this.query.j = this.index;\n\n // prevent spurious errors from being emitted when the window is unloaded\n if (typeof addEventListener === 'function') {\n addEventListener('beforeunload', function () {\n if (self.script) self.script.onerror = empty;\n }, false);\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n if (this.form) {\n this.form.parentNode.removeChild(this.form);\n this.form = null;\n this.iframe = null;\n }\n\n Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n var self = this;\n var script = document.createElement('script');\n\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n script.async = true;\n script.src = this.uri();\n script.onerror = function (e) {\n self.onError('jsonp poll error', e);\n };\n\n var insertAt = document.getElementsByTagName('script')[0];\n if (insertAt) {\n insertAt.parentNode.insertBefore(script, insertAt);\n } else {\n (document.head || document.body).appendChild(script);\n }\n this.script = script;\n\n var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n if (isUAgecko) {\n setTimeout(function () {\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n document.body.removeChild(iframe);\n }, 100);\n }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n var self = this;\n\n if (!this.form) {\n var form = document.createElement('form');\n var area = document.createElement('textarea');\n var id = this.iframeId = 'eio_iframe_' + this.index;\n var iframe;\n\n form.className = 'socketio';\n form.style.position = 'absolute';\n form.style.top = '-1000px';\n form.style.left = '-1000px';\n form.target = id;\n form.method = 'POST';\n form.setAttribute('accept-charset', 'utf-8');\n area.name = 'd';\n form.appendChild(area);\n document.body.appendChild(form);\n\n this.form = form;\n this.area = area;\n }\n\n this.form.action = this.uri();\n\n function complete () {\n initIframe();\n fn();\n }\n\n function initIframe () {\n if (self.iframe) {\n try {\n self.form.removeChild(self.iframe);\n } catch (e) {\n self.onError('jsonp polling iframe removal error', e);\n }\n }\n\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n var html = '