{"version":3,"sources":["webpack:///./node_modules/socket.io-parser/is-buffer.js","webpack:///./node_modules/engine.io-client/lib/transports/polling-xhr.js","webpack:///./node_modules/blob/index.js","webpack:///./node_modules/socket.io-client/lib/on.js","webpack:///./node_modules/engine.io-client/lib/globalThis.browser.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-parser/node_modules/debug/src/browser.js","webpack:///./node_modules/has-binary2/node_modules/isarray/index.js","webpack:///./node_modules/indexof/index.js","webpack:///./node_modules/engine.io-client/lib/xmlhttprequest.js","webpack:///./node_modules/yeast/index.js","webpack:///./node_modules/backo2/index.js","webpack:///./node_modules/engine.io-client/lib/transports/websocket.js","webpack:///./node_modules/engine.io-client/lib/transports/polling.js","webpack:///./node_modules/engine.io-client/lib/transports/polling-jsonp.js","webpack:///./node_modules/engine.io-client/lib/transport.js","webpack:///./node_modules/engine.io-client/node_modules/debug/src/browser.js","webpack:///./node_modules/socket.io-client/lib/socket.js","webpack:///./node_modules/socket.io-parser/node_modules/debug/src/debug.js","webpack:///./node_modules/socket.io-client/node_modules/debug/src/debug.js","webpack:///./node_modules/component-bind/index.js","webpack:///./node_modules/parseqs/index.js","webpack:///./node_modules/custom-event-polyfill/polyfill.js","webpack:///./node_modules/parseuri/index.js","webpack:///./node_modules/socket.io-parser/index.js","webpack:///./node_modules/has-binary2/index.js","webpack:///./node_modules/engine.io-client/node_modules/ms/index.js","webpack:///./node_modules/engine.io-parser/lib/browser.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/component-inherit/index.js","webpack:///./node_modules/engine.io-client/lib/transports/index.js","webpack:///./node_modules/whatwg-fetch/fetch.js","webpack:///./node_modules/socket.io-parser/binary.js","webpack:///./node_modules/component-emitter/index.js","webpack:///./node_modules/engine.io-parser/lib/keys.js","webpack:///./node_modules/socket.io-client/lib/manager.js","webpack:///./node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","webpack:///./node_modules/socket.io-client/lib/index.js","webpack:///./node_modules/to-array/index.js","webpack:///./node_modules/engine.io-client/lib/index.js","webpack:///./node_modules/engine.io-client/node_modules/debug/src/debug.js","webpack:///./node_modules/engine.io-parser/lib/utf8.js","webpack:///./node_modules/socket.io-parser/node_modules/isarray/index.js","webpack:///./node_modules/socket.io-parser/node_modules/ms/index.js","webpack:///./node_modules/socket.io-client/node_modules/debug/src/browser.js","webpack:///./node_modules/has-cors/index.js","webpack:///./node_modules/arraybuffer.slice/index.js","webpack:///./node_modules/socket.io-client/lib/url.js","webpack:///./node_modules/after/index.js"],"names":["module","exports","obj","withNativeBuffer","Buffer","isBuffer","withNativeArrayBuffer","ArrayBuffer","isView","buffer","XMLHttpRequest","Polling","Emitter","inherit","debug","globalThis","empty","XHR","opts","call","this","requestTimeout","extraHeaders","location","isSSL","protocol","port","xd","hostname","xs","secure","Request","method","uri","async","data","undefined","agent","isBinary","supportsBinary","enablesXDR","withCredentials","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","create","prototype","request","doWrite","fn","req","self","on","err","onError","sendXhr","doPoll","onData","pollXhr","xdomain","xscheme","xhr","open","i","setDisableHeaderCheck","hasOwnProperty","setRequestHeader","e","timeout","hasXDR","onload","onLoad","onerror","responseText","onreadystatechange","readyState","contentType","getResponseHeader","responseType","status","setTimeout","send","document","index","requestsCount","requests","onSuccess","emit","cleanup","fromError","abort","response","XDomainRequest","attachEvent","unloadHandler","addEventListener","BlobBuilder","WebKitBlobBuilder","MSBlobBuilder","MozBlobBuilder","blobSupported","Blob","size","blobSupportsArrayBufferView","Uint8Array","blobBuilderSupported","append","getBlob","mapArrayBufferViews","ary","map","chunk","buf","byteLength","copy","set","byteOffset","BlobBuilderConstructor","options","bb","forEach","part","type","BlobConstructor","ev","destroy","removeListener","window","Function","transports","parser","parseuri","parseqs","Socket","host","query","decode","upgrade","path","replace","forceJSONP","jsonp","forceBase64","timestampParam","timestampRequests","transportOptions","writeBuffer","prevBufferLen","policyPort","rememberUpgrade","binaryType","onlyBinaryUpgrades","perMessageDeflate","threshold","forceNode","isReactNative","navigator","product","toLowerCase","Object","keys","length","localAddress","id","upgrades","pingInterval","pingTimeout","pingIntervalTimer","pingTimeoutTimer","priorWebsocketSuccess","Transport","createTransport","name","o","clone","EIO","transport","sid","socket","protocols","indexOf","shift","setTransport","removeAllListeners","onDrain","packet","onPacket","onClose","probe","failed","onTransportOpen","upgradeLosesBinary","once","msg","upgrading","pause","flush","Error","freezeTransport","close","error","onTransportClose","onclose","onupgrade","to","onOpen","l","onHandshake","JSON","parse","setPing","code","filterUpgrades","onHeartbeat","clearTimeout","ping","sendPacket","splice","writable","write","compress","push","waitForUpgrade","cleanupAndClose","reason","desc","filteredUpgrades","j","s","m","h","d","y","plural","ms","n","Math","floor","ceil","val","str","String","match","exec","parseFloat","isNaN","long","round","fmtShort","stringify","load","r","storage","process","DEBUG","log","console","apply","arguments","formatArgs","args","useColors","namespace","humanize","diff","c","color","lastC","save","namespaces","removeItem","userAgent","documentElement","style","WebkitAppearance","firebug","exception","table","parseInt","RegExp","$1","chrome","local","localStorage","localstorage","colors","formatters","v","message","enable","toString","Array","isArray","arr","hasCORS","concat","join","prev","alphabet","split","seed","encode","num","encoded","yeast","now","Date","decoded","charAt","Backoff","min","max","factor","jitter","attempts","duration","pow","rand","random","deviation","reset","setMin","setMax","setJitter","BrowserWebSocket","NodeWebSocket","WebSocket","MozWebSocket","WebSocketImpl","WS","usingBrowserWebSocket","doOpen","check","headers","ws","supports","binary","addEventListeners","onopen","onmessage","packets","total","encodePacket","done","doClose","schema","Number","b64","hasXHR2","poll","onPause","polling","decodePayload","callbackfn","encodePayload","JSONPPolling","callbacks","rNewline","rEscapedNewline","___eio","script","parentNode","removeChild","form","iframe","createElement","src","insertAt","getElementsByTagName","insertBefore","head","body","appendChild","test","area","iframeId","className","position","top","left","target","setAttribute","complete","initIframe","html","action","value","submit","description","decodePacket","toArray","bind","hasBin","events","connect","connect_error","connect_timeout","connecting","disconnect","reconnect","reconnect_attempt","reconnect_failed","reconnect_error","reconnecting","pong","io","nsp","json","ids","acks","receiveBuffer","sendBuffer","connected","disconnected","flags","autoConnect","subEvents","subs","unshift","BINARY_EVENT","EVENT","pop","CONNECT","onpacket","sameNamespace","rootNamespaceError","ERROR","onconnect","onevent","ACK","BINARY_ACK","onack","DISCONNECT","ondisconnect","ack","sent","emitBuffered","createDebug","prevTime","enabled","curr","coerce","format","formatter","logFn","hash","charCodeAt","abs","selectColor","init","instances","stack","disable","names","skips","len","substr","instance","slice","encodeURIComponent","qs","qry","pairs","pair","decodeURIComponent","ce","CustomEvent","cancelable","preventDefault","defaultPrevented","event","params","evt","origPrevent","bubbles","createEvent","initCustomEvent","detail","defineProperty","get","Event","re","parts","b","substring","source","authority","ipv6uri","pathNames","regx","queryKey","$0","$2","isBuf","Encoder","types","Decoder","ERROR_PACKET","encodeAsString","attachments","payload","tryStringify","reconstructor","BinaryReconstructor","reconPack","buffers","callback","writeEncoding","bloblessData","deconstruction","deconstructPacket","pack","removeBlobs","encodeAsBinary","add","p","start","next","tryParse","decodeString","base64","takeBinaryData","finishedReconstruction","binData","reconstructPacket","withNativeBlob","withNativeFile","File","hasBinary","toJSON","base64encoder","sliceBuffer","after","utf8","isAndroid","isPhantomJS","dontSendBlobs","noop","packetslist","each","result","eachWithIndex","el","cb","utf8encode","encodeBase64Packet","contentArray","resultBuffer","encodeArrayBuffer","fr","FileReader","readAsArrayBuffer","encodeBlobAsArrayBuffer","blob","encodeBlob","encodeBase64Object","strict","b64data","readAsDataURL","fromCharCode","typed","basic","btoa","utf8decode","decodeBase64Packet","tryDecode","rest","encodePayloadAsBlob","encodePayloadAsArrayBuffer","doneCallback","setLengthHeader","results","decodePayloadAsBinary","chr","encodedPackets","totalLength","reduce","acc","resultArray","bufferIndex","isString","ab","view","lenStr","binaryIdentifier","lengthAry","bufferTail","tailArray","msgLength","IntersectionObserverEntry","intersectionRatio","startDoc","doc","frame","getFrameElement","ownerDocument","registry","crossOriginUpdater","crossOriginRect","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","boundingClientRect","intersectionRect","convertFromParentRect","bottom","right","width","height","observer","_checkForIntersections","_resetCrossOriginUpdater","observe","_observationTargets","some","item","element","nodeType","_registerInstance","entry","_monitorIntersections","unobserve","filter","_unmonitorIntersections","_unregisterInstance","_unmonitorAllIntersections","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","sort","t","a","_parseRootMargin","opt_rootMargin","margins","margin","unit","win","defaultView","_monitoringDocuments","monitoringInterval","domObserver","setInterval","addEvent","MutationObserver","attributes","childList","characterData","subtree","_monitoringUnsubscribes","clearInterval","removeEvent","rootDoc","root","hasDependentTargets","itemDoc","unsubscribe","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","rootBounds","newEntry","time","performance","_hasCrossedThreshold","isIntersecting","_callback","getComputedStyle","display","rect1","rect2","parent","getParentNode","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","overflow","isDoc","clientWidth","clientHeight","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","frameElement","ensureDOMRect","targetArea","intersectionArea","toFixed","opt_options","timer","rootMargin","node","opt_useCapture","removeEventListener","detachEvent","x","parentBoundingRect","parentIntersectionRect","child","assignedSlot","constructor","JSONP","websocket","global","support","Symbol","viewClasses","isArrayBufferView","normalizeName","TypeError","normalizeValue","iteratorFor","items","iterator","Headers","header","getOwnPropertyNames","consumed","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","readBlobAsArrayBuffer","promise","bufferClone","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","rejected","arrayBuffer","isConsumed","then","text","readAsText","chars","readArrayBufferAsText","formData","oldValue","has","thisArg","values","entries","methods","input","upcased","url","credentials","mode","signal","toUpperCase","referrer","cache","reParamSearch","getTime","trim","bytes","Response","bodyInit","ok","statusText","redirectStatuses","redirect","RangeError","DOMException","fetch","aborted","abortXhr","rawHeaders","getAllResponseHeaders","line","responseURL","ontimeout","onabort","href","fixUrl","polyfill","_deconstructPacket","placeholder","_placeholder","newData","_reconstructPacket","packetData","pendingBlobs","_removeBlobs","curKey","containingObject","fileReader","mixin","_callbacks","off","listeners","hasListeners","eio","Manager","nsps","reconnection","reconnectionAttempts","Infinity","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","lastPing","encoding","packetBuffer","_parser","encoder","decoder","emitAll","updateSocketIds","generateId","engine","_reconnection","_reconnectionAttempts","_reconnectionDelay","_randomizationFactor","_reconnectionDelayMax","_timeout","maybeReconnectOnOpen","skipReconnect","openSub","errorSub","onping","onpong","ondata","ondecoded","onConnecting","processPacketQueue","subsLength","delay","onreconnect","attempt","arraybuffer","encoded1","encoded2","encoded3","encoded4","bufferLength","lookup","managers","parsed","forceNew","multiplex","list","array","byteArray","byteCount","byteIndex","stringFromCharCode","ucs2decode","string","extra","output","counter","checkScalarValue","codePoint","createByte","encodeCodePoint","symbol","readContinuationByte","continuationByte","decodeSymbol","byte1","version","codePoints","byteString","tmp","ucs2encode","end","abv","ii","loc","count","err_cb","bail","proxy"],"mappings":"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","file":"script/chunks/chunk.vendors~campaigns~default~login~mytradera~resolution~selling.05e410b1f2.js","sourcesContent":["\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","/* global attachEvent */\n\n/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n Polling.call(this, opts);\n this.requestTimeout = opts.requestTimeout;\n this.extraHeaders = opts.extraHeaders;\n\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n this.xd = (typeof location !== 'undefined' && opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n opts = opts || {};\n opts.uri = this.uri();\n opts.xd = this.xd;\n opts.xs = this.xs;\n opts.agent = this.agent || false;\n opts.supportsBinary = this.supportsBinary;\n opts.enablesXDR = this.enablesXDR;\n opts.withCredentials = this.withCredentials;\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n opts.requestTimeout = this.requestTimeout;\n\n // other options for Node.js client\n opts.extraHeaders = this.extraHeaders;\n\n return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n var isBinary = typeof data !== 'string' && data !== undefined;\n var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n var self = this;\n req.on('success', fn);\n req.on('error', function (err) {\n self.onError('xhr post error', err);\n });\n this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n debug('xhr poll');\n var req = this.request();\n var self = this;\n req.on('data', function (data) {\n self.onData(data);\n });\n req.on('error', function (err) {\n self.onError('xhr poll error', err);\n });\n this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n this.method = opts.method || 'GET';\n this.uri = opts.uri;\n this.xd = !!opts.xd;\n this.xs = !!opts.xs;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.agent = opts.agent;\n this.isBinary = opts.isBinary;\n this.supportsBinary = opts.supportsBinary;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n this.requestTimeout = opts.requestTimeout;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n\n this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n\n var xhr = this.xhr = new XMLHttpRequest(opts);\n var self = this;\n\n try {\n debug('xhr open %s: %s', this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (var i in this.extraHeaders) {\n if (this.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n\n if ('POST' === this.method) {\n try {\n if (this.isBinary) {\n xhr.setRequestHeader('Content-type', 'application/octet-stream');\n } else {\n xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n }\n } catch (e) {}\n }\n\n try {\n xhr.setRequestHeader('Accept', '*/*');\n } catch (e) {}\n\n // ie6 check\n if ('withCredentials' in xhr) {\n xhr.withCredentials = this.withCredentials;\n }\n\n if (this.requestTimeout) {\n xhr.timeout = this.requestTimeout;\n }\n\n if (this.hasXDR()) {\n xhr.onload = function () {\n self.onLoad();\n };\n xhr.onerror = function () {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n try {\n var contentType = xhr.getResponseHeader('Content-Type');\n if (self.supportsBinary && contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n xhr.responseType = 'arraybuffer';\n }\n } catch (e) {}\n }\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function () {\n self.onError(typeof xhr.status === 'number' ? xhr.status : 0);\n }, 0);\n }\n };\n }\n\n debug('xhr data %s', this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly fhrom the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function () {\n self.onError(e);\n }, 0);\n return;\n }\n\n if (typeof document !== 'undefined') {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n this.emit('success');\n this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n this.emit('data', data);\n this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n this.emit('error', err);\n this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n if ('undefined' === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n\n if (typeof document !== 'undefined') {\n delete Request.requests[this.index];\n }\n\n this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n var data;\n try {\n var contentType;\n try {\n contentType = this.xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n data = this.xhr.response || this.xhr.responseText;\n } else {\n data = this.xhr.responseText;\n }\n } catch (e) {\n this.onError(e);\n }\n if (null != data) {\n this.onData(data);\n }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n return typeof XDomainRequest !== 'undefined' && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (typeof document !== 'undefined') {\n if (typeof attachEvent === 'function') {\n attachEvent('onunload', unloadHandler);\n } else if (typeof addEventListener === 'function') {\n var terminationEvent = 'onpagehide' in globalThis ? 'pagehide' : 'unload';\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\n\nfunction unloadHandler () {\n for (var i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","/**\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","\n/**\n * Module exports.\n */\n\nmodule.exports = on;\n\n/**\n * Helper for subscriptions.\n *\n * @param {Object|EventEmitter} obj with `Emitter` mixin or `EventEmitter`\n * @param {String} event name\n * @param {Function} callback\n * @api public\n */\n\nfunction on (obj, ev, fn) {\n obj.on(ev, fn);\n return {\n destroy: function () {\n obj.removeListener(ev, fn);\n }\n };\n}\n","module.exports = (function () {\n if (typeof self !== 'undefined') {\n return self;\n } else if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this')(); // eslint-disable-line no-new-func\n }\n})();\n","/**\n * Module dependencies.\n */\n\nvar transports = require('./transports/index');\nvar Emitter = require('component-emitter');\nvar debug = require('debug')('engine.io-client:socket');\nvar index = require('indexof');\nvar parser = require('engine.io-parser');\nvar parseuri = require('parseuri');\nvar parseqs = require('parseqs');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Socket;\n\n/**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} options\n * @api public\n */\n\nfunction Socket (uri, opts) {\n if (!(this instanceof Socket)) return new Socket(uri, opts);\n\n opts = opts || {};\n\n if (uri && 'object' === typeof uri) {\n opts = uri;\n uri = null;\n }\n\n if (uri) {\n uri = parseuri(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === 'https' || uri.protocol === 'wss';\n opts.port = uri.port;\n if (uri.query) opts.query = uri.query;\n } else if (opts.host) {\n opts.hostname = parseuri(opts.host).host;\n }\n\n this.secure = null != opts.secure ? opts.secure\n : (typeof location !== 'undefined' && 'https:' === location.protocol);\n\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? '443' : '80';\n }\n\n this.agent = opts.agent || false;\n this.hostname = opts.hostname ||\n (typeof location !== 'undefined' ? location.hostname : 'localhost');\n this.port = opts.port || (typeof location !== 'undefined' && location.port\n ? location.port\n : (this.secure ? 443 : 80));\n this.query = opts.query || {};\n if ('string' === typeof this.query) this.query = parseqs.decode(this.query);\n this.upgrade = false !== opts.upgrade;\n this.path = (opts.path || '/engine.io').replace(/\\/$/, '') + '/';\n this.forceJSONP = !!opts.forceJSONP;\n this.jsonp = false !== opts.jsonp;\n this.forceBase64 = !!opts.forceBase64;\n this.enablesXDR = !!opts.enablesXDR;\n this.withCredentials = false !== opts.withCredentials;\n this.timestampParam = opts.timestampParam || 't';\n this.timestampRequests = opts.timestampRequests;\n this.transports = opts.transports || ['polling', 'websocket'];\n this.transportOptions = opts.transportOptions || {};\n this.readyState = '';\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.policyPort = opts.policyPort || 843;\n this.rememberUpgrade = opts.rememberUpgrade || false;\n this.binaryType = null;\n this.onlyBinaryUpgrades = opts.onlyBinaryUpgrades;\n this.perMessageDeflate = false !== opts.perMessageDeflate ? (opts.perMessageDeflate || {}) : false;\n\n if (true === this.perMessageDeflate) this.perMessageDeflate = {};\n if (this.perMessageDeflate && null == this.perMessageDeflate.threshold) {\n this.perMessageDeflate.threshold = 1024;\n }\n\n // SSL options for Node.js client\n this.pfx = opts.pfx || undefined;\n this.key = opts.key || undefined;\n this.passphrase = opts.passphrase || undefined;\n this.cert = opts.cert || undefined;\n this.ca = opts.ca || undefined;\n this.ciphers = opts.ciphers || undefined;\n this.rejectUnauthorized = opts.rejectUnauthorized === undefined ? true : opts.rejectUnauthorized;\n this.forceNode = !!opts.forceNode;\n\n // detect ReactNative environment\n this.isReactNative = (typeof navigator !== 'undefined' && typeof navigator.product === 'string' && navigator.product.toLowerCase() === 'reactnative');\n\n // other options for Node.js or ReactNative client\n if (typeof self === 'undefined' || this.isReactNative) {\n if (opts.extraHeaders && Object.keys(opts.extraHeaders).length > 0) {\n this.extraHeaders = opts.extraHeaders;\n }\n\n if (opts.localAddress) {\n this.localAddress = opts.localAddress;\n }\n }\n\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n\n // set on heartbeat\n this.pingIntervalTimer = null;\n this.pingTimeoutTimer = null;\n\n this.open();\n}\n\nSocket.priorWebsocketSuccess = false;\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Socket.prototype);\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nSocket.protocol = parser.protocol; // this is an int\n\n/**\n * Expose deps for legacy compatibility\n * and standalone browser access.\n */\n\nSocket.Socket = Socket;\nSocket.Transport = require('./transport');\nSocket.transports = require('./transports/index');\nSocket.parser = require('engine.io-parser');\n\n/**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n\nSocket.prototype.createTransport = function (name) {\n debug('creating transport \"%s\"', name);\n var query = clone(this.query);\n\n // append engine.io protocol identifier\n query.EIO = parser.protocol;\n\n // transport name\n query.transport = name;\n\n // per-transport options\n var options = this.transportOptions[name] || {};\n\n // session id if we already have one\n if (this.id) query.sid = this.id;\n\n var transport = new transports[name]({\n query: query,\n socket: this,\n agent: options.agent || this.agent,\n hostname: options.hostname || this.hostname,\n port: options.port || this.port,\n secure: options.secure || this.secure,\n path: options.path || this.path,\n forceJSONP: options.forceJSONP || this.forceJSONP,\n jsonp: options.jsonp || this.jsonp,\n forceBase64: options.forceBase64 || this.forceBase64,\n enablesXDR: options.enablesXDR || this.enablesXDR,\n withCredentials: options.withCredentials || this.withCredentials,\n timestampRequests: options.timestampRequests || this.timestampRequests,\n timestampParam: options.timestampParam || this.timestampParam,\n policyPort: options.policyPort || this.policyPort,\n pfx: options.pfx || this.pfx,\n key: options.key || this.key,\n passphrase: options.passphrase || this.passphrase,\n cert: options.cert || this.cert,\n ca: options.ca || this.ca,\n ciphers: options.ciphers || this.ciphers,\n rejectUnauthorized: options.rejectUnauthorized || this.rejectUnauthorized,\n perMessageDeflate: options.perMessageDeflate || this.perMessageDeflate,\n extraHeaders: options.extraHeaders || this.extraHeaders,\n forceNode: options.forceNode || this.forceNode,\n localAddress: options.localAddress || this.localAddress,\n requestTimeout: options.requestTimeout || this.requestTimeout,\n protocols: options.protocols || void (0),\n isReactNative: this.isReactNative\n });\n\n return transport;\n};\n\nfunction clone (obj) {\n var o = {};\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n o[i] = obj[i];\n }\n }\n return o;\n}\n\n/**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\nSocket.prototype.open = function () {\n var transport;\n if (this.rememberUpgrade && Socket.priorWebsocketSuccess && this.transports.indexOf('websocket') !== -1) {\n transport = 'websocket';\n } else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n var self = this;\n setTimeout(function () {\n self.emit('error', 'No transports available');\n }, 0);\n return;\n } else {\n transport = this.transports[0];\n }\n this.readyState = 'opening';\n\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n } catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n\n transport.open();\n this.setTransport(transport);\n};\n\n/**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n\nSocket.prototype.setTransport = function (transport) {\n debug('setting transport %s', transport.name);\n var self = this;\n\n if (this.transport) {\n debug('clearing existing transport %s', this.transport.name);\n this.transport.removeAllListeners();\n }\n\n // set up transport\n this.transport = transport;\n\n // set up transport listeners\n transport\n .on('drain', function () {\n self.onDrain();\n })\n .on('packet', function (packet) {\n self.onPacket(packet);\n })\n .on('error', function (e) {\n self.onError(e);\n })\n .on('close', function () {\n self.onClose('transport close');\n });\n};\n\n/**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n\nSocket.prototype.probe = function (name) {\n debug('probing transport \"%s\"', name);\n var transport = this.createTransport(name, { probe: 1 });\n var failed = false;\n var self = this;\n\n Socket.priorWebsocketSuccess = false;\n\n function onTransportOpen () {\n if (self.onlyBinaryUpgrades) {\n var upgradeLosesBinary = !this.supportsBinary && self.transport.supportsBinary;\n failed = failed || upgradeLosesBinary;\n }\n if (failed) return;\n\n debug('probe transport \"%s\" opened', name);\n transport.send([{ type: 'ping', data: 'probe' }]);\n transport.once('packet', function (msg) {\n if (failed) return;\n if ('pong' === msg.type && 'probe' === msg.data) {\n debug('probe transport \"%s\" pong', name);\n self.upgrading = true;\n self.emit('upgrading', transport);\n if (!transport) return;\n Socket.priorWebsocketSuccess = 'websocket' === transport.name;\n\n debug('pausing current transport \"%s\"', self.transport.name);\n self.transport.pause(function () {\n if (failed) return;\n if ('closed' === self.readyState) return;\n debug('changing transport and sending upgrade packet');\n\n cleanup();\n\n self.setTransport(transport);\n transport.send([{ type: 'upgrade' }]);\n self.emit('upgrade', transport);\n transport = null;\n self.upgrading = false;\n self.flush();\n });\n } else {\n debug('probe transport \"%s\" failed', name);\n var err = new Error('probe error');\n err.transport = transport.name;\n self.emit('upgradeError', err);\n }\n });\n }\n\n function freezeTransport () {\n if (failed) return;\n\n // Any callback called by transport should be ignored since now\n failed = true;\n\n cleanup();\n\n transport.close();\n transport = null;\n }\n\n // Handle any error that happens while probing\n function onerror (err) {\n var error = new Error('probe error: ' + err);\n error.transport = transport.name;\n\n freezeTransport();\n\n debug('probe transport \"%s\" failed because of error: %s', name, err);\n\n self.emit('upgradeError', error);\n }\n\n function onTransportClose () {\n onerror('transport closed');\n }\n\n // When the socket is closed while we're probing\n function onclose () {\n onerror('socket closed');\n }\n\n // When the socket is upgraded while we're probing\n function onupgrade (to) {\n if (transport && to.name !== transport.name) {\n debug('\"%s\" works - aborting \"%s\"', to.name, transport.name);\n freezeTransport();\n }\n }\n\n // Remove all listeners on the transport and on self\n function cleanup () {\n transport.removeListener('open', onTransportOpen);\n transport.removeListener('error', onerror);\n transport.removeListener('close', onTransportClose);\n self.removeListener('close', onclose);\n self.removeListener('upgrading', onupgrade);\n }\n\n transport.once('open', onTransportOpen);\n transport.once('error', onerror);\n transport.once('close', onTransportClose);\n\n this.once('close', onclose);\n this.once('upgrading', onupgrade);\n\n transport.open();\n};\n\n/**\n * Called when connection is deemed open.\n *\n * @api public\n */\n\nSocket.prototype.onOpen = function () {\n debug('socket open');\n this.readyState = 'open';\n Socket.priorWebsocketSuccess = 'websocket' === this.transport.name;\n this.emit('open');\n this.flush();\n\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if ('open' === this.readyState && this.upgrade && this.transport.pause) {\n debug('starting upgrade probes');\n for (var i = 0, l = this.upgrades.length; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n};\n\n/**\n * Handles a packet.\n *\n * @api private\n */\n\nSocket.prototype.onPacket = function (packet) {\n if ('opening' === this.readyState || 'open' === this.readyState ||\n 'closing' === this.readyState) {\n debug('socket receive: type \"%s\", data \"%s\"', packet.type, packet.data);\n\n this.emit('packet', packet);\n\n // Socket is live - any packet counts\n this.emit('heartbeat');\n\n switch (packet.type) {\n case 'open':\n this.onHandshake(JSON.parse(packet.data));\n break;\n\n case 'pong':\n this.setPing();\n this.emit('pong');\n break;\n\n case 'error':\n var err = new Error('server error');\n err.code = packet.data;\n this.onError(err);\n break;\n\n case 'message':\n this.emit('data', packet.data);\n this.emit('message', packet.data);\n break;\n }\n } else {\n debug('packet received with socket readyState \"%s\"', this.readyState);\n }\n};\n\n/**\n * Called upon handshake completion.\n *\n * @param {Object} handshake obj\n * @api private\n */\n\nSocket.prototype.onHandshake = function (data) {\n this.emit('handshake', data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.onOpen();\n // In case open handler closes socket\n if ('closed' === this.readyState) return;\n this.setPing();\n\n // Prolong liveness of socket on heartbeat\n this.removeListener('heartbeat', this.onHeartbeat);\n this.on('heartbeat', this.onHeartbeat);\n};\n\n/**\n * Resets ping timeout.\n *\n * @api private\n */\n\nSocket.prototype.onHeartbeat = function (timeout) {\n clearTimeout(this.pingTimeoutTimer);\n var self = this;\n self.pingTimeoutTimer = setTimeout(function () {\n if ('closed' === self.readyState) return;\n self.onClose('ping timeout');\n }, timeout || (self.pingInterval + self.pingTimeout));\n};\n\n/**\n * Pings server every `this.pingInterval` and expects response\n * within `this.pingTimeout` or closes connection.\n *\n * @api private\n */\n\nSocket.prototype.setPing = function () {\n var self = this;\n clearTimeout(self.pingIntervalTimer);\n self.pingIntervalTimer = setTimeout(function () {\n debug('writing ping packet - expecting pong within %sms', self.pingTimeout);\n self.ping();\n self.onHeartbeat(self.pingTimeout);\n }, self.pingInterval);\n};\n\n/**\n* Sends a ping packet.\n*\n* @api private\n*/\n\nSocket.prototype.ping = function () {\n var self = this;\n this.sendPacket('ping', function () {\n self.emit('ping');\n });\n};\n\n/**\n * Called on `drain` event\n *\n * @api private\n */\n\nSocket.prototype.onDrain = function () {\n this.writeBuffer.splice(0, this.prevBufferLen);\n\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n\n if (0 === this.writeBuffer.length) {\n this.emit('drain');\n } else {\n this.flush();\n }\n};\n\n/**\n * Flush write buffers.\n *\n * @api private\n */\n\nSocket.prototype.flush = function () {\n if ('closed' !== this.readyState && this.transport.writable &&\n !this.upgrading && this.writeBuffer.length) {\n debug('flushing %d packets in socket', this.writeBuffer.length);\n this.transport.send(this.writeBuffer);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = this.writeBuffer.length;\n this.emit('flush');\n }\n};\n\n/**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n\nSocket.prototype.write =\nSocket.prototype.send = function (msg, options, fn) {\n this.sendPacket('message', msg, options, fn);\n return this;\n};\n\n/**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n\nSocket.prototype.sendPacket = function (type, data, options, fn) {\n if ('function' === typeof data) {\n fn = data;\n data = undefined;\n }\n\n if ('function' === typeof options) {\n fn = options;\n options = null;\n }\n\n if ('closing' === this.readyState || 'closed' === this.readyState) {\n return;\n }\n\n options = options || {};\n options.compress = false !== options.compress;\n\n var packet = {\n type: type,\n data: data,\n options: options\n };\n this.emit('packetCreate', packet);\n this.writeBuffer.push(packet);\n if (fn) this.once('flush', fn);\n this.flush();\n};\n\n/**\n * Closes the connection.\n *\n * @api private\n */\n\nSocket.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.readyState = 'closing';\n\n var self = this;\n\n if (this.writeBuffer.length) {\n this.once('drain', function () {\n if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n });\n } else if (this.upgrading) {\n waitForUpgrade();\n } else {\n close();\n }\n }\n\n function close () {\n self.onClose('forced close');\n debug('socket closing - telling transport to close');\n self.transport.close();\n }\n\n function cleanupAndClose () {\n self.removeListener('upgrade', cleanupAndClose);\n self.removeListener('upgradeError', cleanupAndClose);\n close();\n }\n\n function waitForUpgrade () {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n self.once('upgrade', cleanupAndClose);\n self.once('upgradeError', cleanupAndClose);\n }\n\n return this;\n};\n\n/**\n * Called upon transport error\n *\n * @api private\n */\n\nSocket.prototype.onError = function (err) {\n debug('socket error %j', err);\n Socket.priorWebsocketSuccess = false;\n this.emit('error', err);\n this.onClose('transport error', err);\n};\n\n/**\n * Called upon transport close.\n *\n * @api private\n */\n\nSocket.prototype.onClose = function (reason, desc) {\n if ('opening' === this.readyState || 'open' === this.readyState || 'closing' === this.readyState) {\n debug('socket close with reason: \"%s\"', reason);\n var self = this;\n\n // clear timers\n clearTimeout(this.pingIntervalTimer);\n clearTimeout(this.pingTimeoutTimer);\n\n // stop event from firing again for transport\n this.transport.removeAllListeners('close');\n\n // ensure transport won't stay open\n this.transport.close();\n\n // ignore further transport communication\n this.transport.removeAllListeners();\n\n // set ready state\n this.readyState = 'closed';\n\n // clear session id\n this.id = null;\n\n // emit close event\n this.emit('close', reason, desc);\n\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n self.writeBuffer = [];\n self.prevBufferLen = 0;\n }\n};\n\n/**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n\nSocket.prototype.filterUpgrades = function (upgrades) {\n var filteredUpgrades = [];\n for (var i = 0, j = upgrades.length; i < j; i++) {\n if (~index(this.transports, upgrades[i])) filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n};\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 * 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","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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};","// browser shim for xmlhttprequest module\n\nvar hasCORS = require('has-cors');\nvar globalThis = require('./globalThis');\n\nmodule.exports = function (opts) {\n var xdomain = opts.xdomain;\n\n // scheme must be same when usign XDomainRequest\n // http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx\n var xscheme = opts.xscheme;\n\n // XDomainRequest has a flow of not sending cookie, therefore it should be disabled as a default.\n // https://github.com/Automattic/engine.io-client/pull/217\n var enablesXDR = opts.enablesXDR;\n\n // XMLHttpRequest can be disabled on IE\n try {\n if ('undefined' !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n } catch (e) { }\n\n // Use XDomainRequest for IE8 if enablesXDR is true\n // because loading bar keeps flashing when using jsonp-polling\n // https://github.com/yujiosaka/socke.io-ie8-loading-example\n try {\n if ('undefined' !== typeof XDomainRequest && !xscheme && enablesXDR) {\n return new XDomainRequest();\n }\n } catch (e) { }\n\n if (!xdomain) {\n try {\n return new globalThis[['Active'].concat('Object').join('X')]('Microsoft.XMLHTTP');\n } catch (e) { }\n }\n};\n","'use strict';\n\nvar alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('')\n , length = 64\n , map = {}\n , seed = 0\n , i = 0\n , prev;\n\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nfunction encode(num) {\n var encoded = '';\n\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n\n return encoded;\n}\n\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nfunction decode(str) {\n var decoded = 0;\n\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n\n return decoded;\n}\n\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nfunction yeast() {\n var now = encode(+new Date());\n\n if (now !== prev) return seed = 0, prev = now;\n return now +'.'+ encode(seed++);\n}\n\n//\n// Map each character to its index.\n//\nfor (; i < length; i++) map[alphabet[i]] = i;\n\n//\n// Expose the `yeast`, `encode` and `decode` functions.\n//\nyeast.encode = encode;\nyeast.decode = decode;\nmodule.exports = yeast;\n","\n/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function(){\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function(){\n this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function(min){\n this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function(max){\n this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function(jitter){\n this.jitter = jitter;\n};\n\n","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parser = require('engine.io-parser');\nvar parseqs = require('parseqs');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:websocket');\n\nvar BrowserWebSocket, NodeWebSocket;\n\nif (typeof WebSocket !== 'undefined') {\n BrowserWebSocket = WebSocket;\n} else if (typeof self !== 'undefined') {\n BrowserWebSocket = self.WebSocket || self.MozWebSocket;\n}\n\nif (typeof window === 'undefined') {\n try {\n NodeWebSocket = require('ws');\n } catch (e) { }\n}\n\n/**\n * Get either the `WebSocket` or `MozWebSocket` globals\n * in the browser or try to resolve WebSocket-compatible\n * interface exposed by `ws` for Node-like environment.\n */\n\nvar WebSocketImpl = BrowserWebSocket || NodeWebSocket;\n\n/**\n * Module exports.\n */\n\nmodule.exports = WS;\n\n/**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n\nfunction WS (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (forceBase64) {\n this.supportsBinary = false;\n }\n this.perMessageDeflate = opts.perMessageDeflate;\n this.usingBrowserWebSocket = BrowserWebSocket && !opts.forceNode;\n this.protocols = opts.protocols;\n if (!this.usingBrowserWebSocket) {\n WebSocketImpl = NodeWebSocket;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(WS, Transport);\n\n/**\n * Transport name.\n *\n * @api public\n */\n\nWS.prototype.name = 'websocket';\n\n/*\n * WebSockets support binary\n */\n\nWS.prototype.supportsBinary = true;\n\n/**\n * Opens socket.\n *\n * @api private\n */\n\nWS.prototype.doOpen = function () {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n\n var uri = this.uri();\n var protocols = this.protocols;\n\n var opts = {};\n\n if (!this.isReactNative) {\n opts.agent = this.agent;\n opts.perMessageDeflate = this.perMessageDeflate;\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\n if (this.extraHeaders) {\n opts.headers = this.extraHeaders;\n }\n if (this.localAddress) {\n opts.localAddress = this.localAddress;\n }\n\n try {\n this.ws =\n this.usingBrowserWebSocket && !this.isReactNative\n ? protocols\n ? new WebSocketImpl(uri, protocols)\n : new WebSocketImpl(uri)\n : new WebSocketImpl(uri, protocols, opts);\n } catch (err) {\n return this.emit('error', err);\n }\n\n if (this.ws.binaryType === undefined) {\n this.supportsBinary = false;\n }\n\n if (this.ws.supports && this.ws.supports.binary) {\n this.supportsBinary = true;\n this.ws.binaryType = 'nodebuffer';\n } else {\n this.ws.binaryType = 'arraybuffer';\n }\n\n this.addEventListeners();\n};\n\n/**\n * Adds event listeners to the socket\n *\n * @api private\n */\n\nWS.prototype.addEventListeners = function () {\n var self = this;\n\n this.ws.onopen = function () {\n self.onOpen();\n };\n this.ws.onclose = function () {\n self.onClose();\n };\n this.ws.onmessage = function (ev) {\n self.onData(ev.data);\n };\n this.ws.onerror = function (e) {\n self.onError('websocket error', e);\n };\n};\n\n/**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n\nWS.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n var total = packets.length;\n for (var i = 0, l = total; i < l; i++) {\n (function (packet) {\n parser.encodePacket(packet, self.supportsBinary, function (data) {\n if (!self.usingBrowserWebSocket) {\n // always create a new object (GH-437)\n var opts = {};\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n\n if (self.perMessageDeflate) {\n var len = 'string' === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < self.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (self.usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n self.ws.send(data);\n } else {\n self.ws.send(data, opts);\n }\n } catch (e) {\n debug('websocket closed before onclose event');\n }\n\n --total || done();\n });\n })(packets[i]);\n }\n\n function done () {\n self.emit('flush');\n\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n setTimeout(function () {\n self.writable = true;\n self.emit('drain');\n }, 0);\n }\n};\n\n/**\n * Called upon close\n *\n * @api private\n */\n\nWS.prototype.onClose = function () {\n Transport.prototype.onClose.call(this);\n};\n\n/**\n * Closes socket.\n *\n * @api private\n */\n\nWS.prototype.doClose = function () {\n if (typeof this.ws !== 'undefined') {\n this.ws.close();\n }\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nWS.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'wss' : 'ws';\n var port = '';\n\n // avoid port if default for schema\n if (this.port && (('wss' === schema && Number(this.port) !== 443) ||\n ('ws' === schema && Number(this.port) !== 80))) {\n port = ':' + this.port;\n }\n\n // append timestamp to URI\n if (this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n\n/**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n\nWS.prototype.check = function () {\n return !!WebSocketImpl && !('__initialize' in WebSocketImpl && this.name === WS.prototype.name);\n};\n","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n var XMLHttpRequest = require('xmlhttprequest-ssl');\n var xhr = new XMLHttpRequest({ xdomain: false });\n return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (!hasXHR2 || forceBase64) {\n this.supportsBinary = false;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n var self = this;\n\n this.readyState = 'pausing';\n\n function pause () {\n debug('paused');\n self.readyState = 'paused';\n onPause();\n }\n\n if (this.polling || !this.writable) {\n var total = 0;\n\n if (this.polling) {\n debug('we are currently polling - waiting to pause');\n total++;\n this.once('pollComplete', function () {\n debug('pre-pause polling complete');\n --total || pause();\n });\n }\n\n if (!this.writable) {\n debug('we are currently writing - waiting to pause');\n total++;\n this.once('drain', function () {\n debug('pre-pause writing complete');\n --total || pause();\n });\n }\n } else {\n pause();\n }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n debug('polling');\n this.polling = true;\n this.doPoll();\n this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n var self = this;\n debug('polling got data %s', data);\n var callback = function (packet, index, total) {\n // if its the first message we consider the transport open\n if ('opening' === self.readyState && packet.type === 'open') {\n self.onOpen();\n }\n\n // if its a close packet, we close the ongoing requests\n if ('close' === packet.type) {\n self.onClose();\n return false;\n }\n\n // otherwise bypass onData and handle the message\n self.onPacket(packet);\n };\n\n // decode payload\n parser.decodePayload(data, this.socket.binaryType, callback);\n\n // if an event did not trigger closing\n if ('closed' !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emit('pollComplete');\n\n if ('open' === this.readyState) {\n this.poll();\n } else {\n debug('ignoring poll - transport state \"%s\"', this.readyState);\n }\n }\n};\n\n/**\n * For polling, send a close packet.\n *\n * @api private\n */\n\nPolling.prototype.doClose = function () {\n var self = this;\n\n function close () {\n debug('writing close packet');\n self.write([{ type: 'close' }]);\n }\n\n if ('open' === this.readyState) {\n debug('transport open - closing');\n close();\n } else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n debug('transport not open - deferring close');\n this.once('open', close);\n }\n};\n\n/**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n\nPolling.prototype.write = function (packets) {\n var self = this;\n this.writable = false;\n var callbackfn = function () {\n self.writable = true;\n self.emit('drain');\n };\n\n parser.encodePayload(packets, this.supportsBinary, function (data) {\n self.doWrite(data, callbackfn);\n });\n};\n\n/**\n * Generates uri for connection.\n *\n * @api private\n */\n\nPolling.prototype.uri = function () {\n var query = this.query || {};\n var schema = this.secure ? 'https' : 'http';\n var port = '';\n\n // cache busting is forced\n if (false !== this.timestampRequests) {\n query[this.timestampParam] = yeast();\n }\n\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n\n query = parseqs.encode(query);\n\n // avoid port if default for schema\n if (this.port && (('https' === schema && Number(this.port) !== 443) ||\n ('http' === schema && Number(this.port) !== 80))) {\n port = ':' + this.port;\n }\n\n // prepend ? to query\n if (query.length) {\n query = '?' + query;\n }\n\n var ipv6 = this.hostname.indexOf(':') !== -1;\n return schema + '://' + (ipv6 ? '[' + this.hostname + ']' : this.hostname) + port + this.path + query;\n};\n","/**\n * Module requirements.\n */\n\nvar Polling = require('./polling');\nvar inherit = require('component-inherit');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = JSONPPolling;\n\n/**\n * Cached regular expressions.\n */\n\nvar rNewline = /\\n/g;\nvar rEscapedNewline = /\\\\n/g;\n\n/**\n * Global JSONP callbacks.\n */\n\nvar callbacks;\n\n/**\n * Noop.\n */\n\nfunction empty () { }\n\n/**\n * JSONP Polling constructor.\n *\n * @param {Object} opts.\n * @api public\n */\n\nfunction JSONPPolling (opts) {\n Polling.call(this, opts);\n\n this.query = this.query || {};\n\n // define global callbacks array if not present\n // we do this here (lazily) to avoid unneeded global pollution\n if (!callbacks) {\n // we need to consider multiple engines in the same page\n callbacks = globalThis.___eio = (globalThis.___eio || []);\n }\n\n // callback identifier\n this.index = callbacks.length;\n\n // add callback to jsonp global\n var self = this;\n callbacks.push(function (msg) {\n self.onData(msg);\n });\n\n // append to query string\n this.query.j = this.index;\n\n // prevent spurious errors from being emitted when the window is unloaded\n if (typeof addEventListener === 'function') {\n addEventListener('beforeunload', function () {\n if (self.script) self.script.onerror = empty;\n }, false);\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(JSONPPolling, Polling);\n\n/*\n * JSONP only supports binary as base64 encoded strings\n */\n\nJSONPPolling.prototype.supportsBinary = false;\n\n/**\n * Closes the socket.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doClose = function () {\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n if (this.form) {\n this.form.parentNode.removeChild(this.form);\n this.form = null;\n this.iframe = null;\n }\n\n Polling.prototype.doClose.call(this);\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nJSONPPolling.prototype.doPoll = function () {\n var self = this;\n var script = document.createElement('script');\n\n if (this.script) {\n this.script.parentNode.removeChild(this.script);\n this.script = null;\n }\n\n script.async = true;\n script.src = this.uri();\n script.onerror = function (e) {\n self.onError('jsonp poll error', e);\n };\n\n var insertAt = document.getElementsByTagName('script')[0];\n if (insertAt) {\n insertAt.parentNode.insertBefore(script, insertAt);\n } else {\n (document.head || document.body).appendChild(script);\n }\n this.script = script;\n\n var isUAgecko = 'undefined' !== typeof navigator && /gecko/i.test(navigator.userAgent);\n\n if (isUAgecko) {\n setTimeout(function () {\n var iframe = document.createElement('iframe');\n document.body.appendChild(iframe);\n document.body.removeChild(iframe);\n }, 100);\n }\n};\n\n/**\n * Writes with a hidden iframe.\n *\n * @param {String} data to send\n * @param {Function} called upon flush.\n * @api private\n */\n\nJSONPPolling.prototype.doWrite = function (data, fn) {\n var self = this;\n\n if (!this.form) {\n var form = document.createElement('form');\n var area = document.createElement('textarea');\n var id = this.iframeId = 'eio_iframe_' + this.index;\n var iframe;\n\n form.className = 'socketio';\n form.style.position = 'absolute';\n form.style.top = '-1000px';\n form.style.left = '-1000px';\n form.target = id;\n form.method = 'POST';\n form.setAttribute('accept-charset', 'utf-8');\n area.name = 'd';\n form.appendChild(area);\n document.body.appendChild(form);\n\n this.form = form;\n this.area = area;\n }\n\n this.form.action = this.uri();\n\n function complete () {\n initIframe();\n fn();\n }\n\n function initIframe () {\n if (self.iframe) {\n try {\n self.form.removeChild(self.iframe);\n } catch (e) {\n self.onError('jsonp polling iframe removal error', e);\n }\n }\n\n try {\n // ie6 dynamic iframes with target=\"\" support (thanks Chris Lambacher)\n var html = '