{"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/engine.io-client/node_modules/component-emitter/index.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/@babel/runtime-corejs3/core-js-stable/instance/splice.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/core-js-pure/es/instance/splice.js","webpack:///./node_modules/indexof/index.js","webpack:///./node_modules/core-js-pure/es/function/virtual/bind.js","webpack:///./node_modules/component-inherit/index.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/socket.io-client/node_modules/component-emitter/index.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/engine.io-parser/lib/utf8.js","webpack:///./node_modules/parseqs/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/spin/spin.js","webpack:///./node_modules/core-js-pure/es/array/virtual/splice.js","webpack:///./node_modules/core-js-pure/stable/instance/splice.js","webpack:///./node_modules/socket.io-parser/index.js","webpack:///./node_modules/arraybuffer.slice/index.js","webpack:///./node_modules/core-js-pure/stable/instance/bind.js","webpack:///./node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.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/core-js-pure/modules/es.array.splice.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/core-js-pure/modules/es.function.bind.js","webpack:///./node_modules/engine.io-client/node_modules/debug/src/browser.js","webpack:///./node_modules/component-emitter/index.js","webpack:///./node_modules/core-js-pure/es/instance/bind.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","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","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","create","request","doWrite","fn","req","on","onError","sendXhr","doPoll","onData","pollXhr","xhr","open","setDisableHeaderCheck","setRequestHeader","withCredentials","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","terminationEvent","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","mixin","event","_callbacks","off","removeListener","removeAllListeners","removeEventListener","cb","callbacks","slice","listeners","hasListeners","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","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","lookup","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","ArrayPrototype","it","own","entryVirtual","a","b","constructor","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","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","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","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","defineProperty","configurable","fill","allocUnsafeSlow","_isBuffer","compare","x","y","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","packetData","pack","_deconstructPacket","placeholder","_placeholder","num","newData","attachments","reconstructPacket","_reconstructPacket","removeBlobs","pendingBlobs","bloblessData","_removeBlobs","curKey","containingObject","fileReader","url","Manager","cache","managers","source","nsps","forceNew","multiplex","withNativeBuffer","withNativeArrayBuffer","JSONPPolling","rNewline","rEscapedNewline","glob","___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","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","onDrain","probe","failed","onTransportOpen","upgradeLosesBinary","upgrading","flush","freezeTransport","onTransportClose","onupgrade","to","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","byteCount","byteIndex","stringFromCharCode","ucs2decode","extra","output","counter","checkScalarValue","toUpperCase","createByte","encodeCodePoint","symbol","readContinuationByte","continuationByte","decodeSymbol","byte1","version","byteString","tmp","ucs2encode","encodeURIComponent","qs","qry","pairs","pair","decodeURIComponent","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","useCssAnimations","prefixes","animations","createEl","tag","prop","ins","parent","sheet","styleSheet","addAnimation","alpha","trail","lines","z","prefix","pre","insertRule","vendor","pp","css","merge","def","offsetLeft","offsetTop","offsetParent","defaults","width","radius","rotate","speed","opacity","fps","zIndex","Spinner","spin","stop","ep","tp","mid","firstChild","offsetWidth","offsetHeight","f","ostep","astep","anim","seg","shadow","height","background","boxShadow","transformOrigin","transform","borderRadius","hwaccel","animation","childNodes","vml","attr","behavior","adj","addRule","grp","coordsize","coordorigin","margin","g","dx","filter","rotation","arcsize","types","ERROR_PACKET","encodeAsString","payload","tryStringify","reconstructor","BinaryReconstructor","reconPack","deconstruction","encodeAsBinary","tryParse","decodeString","takeBinaryData","finishedReconstruction","binData","abv","ii","alphabet","seed","now","decoded","$","toAbsoluteIndex","toInteger","toLength","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","ACCESSORS","0","1","proto","forced","deleteCount","insertCount","actualDeleteCount","A","k","O","actualStart","argumentsLength","description","FunctionPrototype","factor","rand","random","deviation"],"mappings":"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","file":"script/chunks/chunk.vendors~basic~bidding~bin-form~campaigns~cart-checkout~cart-overview~category-results~checkout-selec~efc4b694.9ad2dbadc7.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');\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 self[['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');\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\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.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 = true;\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') {\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(xhr.status);\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') {\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 self ? '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) {\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","\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n var args = [].slice.call(arguments, 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\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(){\n \"use strict\";\n\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n // Use a lookup table to find the index.\n var lookup = new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\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 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i+1)];\n encoded3 = lookup[base64.charCodeAt(i+2)];\n encoded4 = lookup[base64.charCodeAt(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})();\n","module.exports = require(\"core-js-pure/stable/instance/splice\");","\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 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","var splice = require('../array/virtual/splice');\n\nvar ArrayPrototype = Array.prototype;\n\nmodule.exports = function (it) {\n var own = it.splice;\n return it === ArrayPrototype || (it instanceof Array && own === ArrayPrototype.splice) ? splice : own;\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};","require('../../../modules/es.function.bind');\nvar entryVirtual = require('../../../internals/entry-virtual');\n\nmodule.exports = entryVirtual('Function').bind;\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};","/*! 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');\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 * Until https://github.com/tc39/proposal-global is shipped.\n */\nfunction glob () {\n return typeof self !== 'undefined' ? self\n : typeof window !== 'undefined' ? window\n : typeof global !== 'undefined' ? global : {};\n}\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 var global = glob();\n callbacks = global.___eio = (global.___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 = '