{"mappings":"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","sources":["node_modules/@parcel/runtime-browser-hmr/lib/runtime-08c80f7882480926.js","src/index.ts","src/linx-sdk-module/index.ts","node_modules/@parcel/transformer-js/src/esmodule-helpers.js","src/linx-sdk-module/utils.ts","src/linx-sdk-module/models.ts","node_modules/socket.io-client/lib/index.js","node_modules/socket.io-client/lib/url.js","node_modules/parseuri/index.js","node_modules/debug/src/browser.js","node_modules/process/browser.js","node_modules/debug/src/debug.js","node_modules/ms/index.js","node_modules/socket.io-parser/index.js","node_modules/component-emitter/index.js","node_modules/socket.io-parser/binary.js","node_modules/isarray/index.js","node_modules/socket.io-parser/is-buffer.js","node_modules/buffer/index.js","node_modules/base64-js/index.js","node_modules/ieee754/index.js","node_modules/socket.io-client/lib/manager.js","node_modules/engine.io-client/lib/index.js","node_modules/engine.io-client/lib/socket.js","node_modules/engine.io-client/lib/transports/index.js","node_modules/engine.io-client/lib/xmlhttprequest.js","node_modules/has-cors/index.js","node_modules/engine.io-client/lib/globalThis.browser.js","node_modules/engine.io-client/lib/transports/polling-xhr.js","node_modules/engine.io-client/lib/transports/polling.js","node_modules/engine.io-client/lib/transport.js","node_modules/engine.io-parser/lib/browser.js","node_modules/engine.io-parser/lib/keys.js","node_modules/has-binary2/index.js","node_modules/arraybuffer.slice/index.js","node_modules/after/index.js","node_modules/engine.io-parser/lib/utf8.js","node_modules/base64-arraybuffer/lib/base64-arraybuffer.js","node_modules/blob/index.js","node_modules/parseqs/index.js","node_modules/component-inherit/index.js","node_modules/yeast/index.js","node_modules/engine.io-client/lib/transports/polling-jsonp.js","node_modules/engine.io-client/lib/transports/websocket.js","node_modules/@parcel/node-resolver-core/lib/_empty.js","node_modules/indexof/index.js","node_modules/socket.io-client/lib/socket.js","node_modules/to-array/index.js","node_modules/socket.io-client/lib/on.js","node_modules/component-bind/index.js","node_modules/backo2/index.js"],"sourcesContent":["var HMR_HOST = null;var HMR_PORT = null;var HMR_SECURE = false;var HMR_ENV_HASH = \"d6ea1d42532a7575\";module.bundle.HMR_BUNDLE_ID = \"5c1b77e3b71e74eb\";\"use strict\";\n\n/* global HMR_HOST, HMR_PORT, HMR_ENV_HASH, HMR_SECURE, chrome, browser, __parcel__import__, __parcel__importScripts__, ServiceWorkerGlobalScope */\n/*::\nimport type {\n HMRAsset,\n HMRMessage,\n} from '@parcel/reporter-dev-server/src/HMRServer.js';\ninterface ParcelRequire {\n (string): mixed;\n cache: {|[string]: ParcelModule|};\n hotData: {|[string]: mixed|};\n Module: any;\n parent: ?ParcelRequire;\n isParcelRequire: true;\n modules: {|[string]: [Function, {|[string]: string|}]|};\n HMR_BUNDLE_ID: string;\n root: ParcelRequire;\n}\ninterface ParcelModule {\n hot: {|\n data: mixed,\n accept(cb: (Function) => void): void,\n dispose(cb: (mixed) => void): void,\n // accept(deps: Array | string, cb: (Function) => void): void,\n // decline(): void,\n _acceptCallbacks: Array<(Function) => void>,\n _disposeCallbacks: Array<(mixed) => void>,\n |};\n}\ninterface ExtensionContext {\n runtime: {|\n reload(): void,\n getURL(url: string): string;\n getManifest(): {manifest_version: number, ...};\n |};\n}\ndeclare var module: {bundle: ParcelRequire, ...};\ndeclare var HMR_HOST: string;\ndeclare var HMR_PORT: string;\ndeclare var HMR_ENV_HASH: string;\ndeclare var HMR_SECURE: boolean;\ndeclare var chrome: ExtensionContext;\ndeclare var browser: ExtensionContext;\ndeclare var __parcel__import__: (string) => Promise;\ndeclare var __parcel__importScripts__: (string) => Promise;\ndeclare var globalThis: typeof self;\ndeclare var ServiceWorkerGlobalScope: Object;\n*/\nvar OVERLAY_ID = '__parcel__error__overlay__';\nvar OldModule = module.bundle.Module;\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData[moduleName],\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n module.bundle.hotData[moduleName] = undefined;\n}\nmodule.bundle.Module = Module;\nmodule.bundle.hotData = {};\nvar checkedAssets /*: {|[string]: boolean|} */, assetsToDispose /*: Array<[ParcelRequire, string]> */, assetsToAccept /*: Array<[ParcelRequire, string]> */;\n\nfunction getHostname() {\n return HMR_HOST || (location.protocol.indexOf('http') === 0 ? location.hostname : 'localhost');\n}\nfunction getPort() {\n return HMR_PORT || location.port;\n}\n\n// eslint-disable-next-line no-redeclare\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = getHostname();\n var port = getPort();\n var protocol = HMR_SECURE || location.protocol == 'https:' && !/localhost|127.0.0.1|0.0.0.0/.test(hostname) ? 'wss' : 'ws';\n var ws;\n try {\n ws = new WebSocket(protocol + '://' + hostname + (port ? ':' + port : '') + '/');\n } catch (err) {\n if (err.message) {\n console.error(err.message);\n }\n ws = {};\n }\n\n // Web extension context\n var extCtx = typeof browser === 'undefined' ? typeof chrome === 'undefined' ? null : chrome : browser;\n\n // Safari doesn't support sourceURL in error stacks.\n // eval may also be disabled via CSP, so do a quick check.\n var supportsSourceURL = false;\n try {\n (0, eval)('throw new Error(\"test\"); //# sourceURL=test.js');\n } catch (err) {\n supportsSourceURL = err.stack.includes('test.js');\n }\n\n // $FlowFixMe\n ws.onmessage = async function (event /*: {data: string, ...} */) {\n checkedAssets = {} /*: {|[string]: boolean|} */;\n assetsToAccept = [];\n assetsToDispose = [];\n var data /*: HMRMessage */ = JSON.parse(event.data);\n if (data.type === 'update') {\n // Remove error overlay if there is one\n if (typeof document !== 'undefined') {\n removeErrorOverlay();\n }\n let assets = data.assets.filter(asset => asset.envHash === HMR_ENV_HASH);\n\n // Handle HMR Update\n let handled = assets.every(asset => {\n return asset.type === 'css' || asset.type === 'js' && hmrAcceptCheck(module.bundle.root, asset.id, asset.depsByBundle);\n });\n if (handled) {\n console.clear();\n\n // Dispatch custom event so other runtimes (e.g React Refresh) are aware.\n if (typeof window !== 'undefined' && typeof CustomEvent !== 'undefined') {\n window.dispatchEvent(new CustomEvent('parcelhmraccept'));\n }\n await hmrApplyUpdates(assets);\n\n // Dispose all old assets.\n let processedAssets = {} /*: {|[string]: boolean|} */;\n for (let i = 0; i < assetsToDispose.length; i++) {\n let id = assetsToDispose[i][1];\n if (!processedAssets[id]) {\n hmrDispose(assetsToDispose[i][0], id);\n processedAssets[id] = true;\n }\n }\n\n // Run accept callbacks. This will also re-execute other disposed assets in topological order.\n processedAssets = {};\n for (let i = 0; i < assetsToAccept.length; i++) {\n let id = assetsToAccept[i][1];\n if (!processedAssets[id]) {\n hmrAccept(assetsToAccept[i][0], id);\n processedAssets[id] = true;\n }\n }\n } else fullReload();\n }\n if (data.type === 'error') {\n // Log parcel errors to console\n for (let ansiDiagnostic of data.diagnostics.ansi) {\n let stack = ansiDiagnostic.codeframe ? ansiDiagnostic.codeframe : ansiDiagnostic.stack;\n console.error('🚨 [parcel]: ' + ansiDiagnostic.message + '\\n' + stack + '\\n\\n' + ansiDiagnostic.hints.join('\\n'));\n }\n if (typeof document !== 'undefined') {\n // Render the fancy html overlay\n removeErrorOverlay();\n var overlay = createErrorOverlay(data.diagnostics.html);\n // $FlowFixMe\n document.body.appendChild(overlay);\n }\n }\n };\n ws.onerror = function (e) {\n if (e.message) {\n console.error(e.message);\n }\n };\n ws.onclose = function () {\n console.warn('[parcel] 🚨 Connection to the HMR server was lost');\n };\n}\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n console.log('[parcel] ✨ Error resolved');\n }\n}\nfunction createErrorOverlay(diagnostics) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n let errorHTML = '
';\n for (let diagnostic of diagnostics) {\n let stack = diagnostic.frames.length ? diagnostic.frames.reduce((p, frame) => {\n return `${p}\n${frame.location}\n${frame.code}`;\n }, '') : diagnostic.stack;\n errorHTML += `\n
\n
\n 🚨 ${diagnostic.message}\n
\n
${stack}
\n
\n ${diagnostic.hints.map(hint => '
💡 ' + hint + '
').join('')}\n
\n ${diagnostic.documentation ? `` : ''}\n
\n `;\n }\n errorHTML += '
';\n overlay.innerHTML = errorHTML;\n return overlay;\n}\nfunction fullReload() {\n if ('reload' in location) {\n location.reload();\n } else if (extCtx && extCtx.runtime && extCtx.runtime.reload) {\n extCtx.runtime.reload();\n }\n}\nfunction getParents(bundle, id) /*: Array<[ParcelRequire, string]> */{\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n var parents = [];\n var k, d, dep;\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {\n parents.push([bundle, k]);\n }\n }\n }\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n return parents;\n}\nfunction updateLink(link) {\n var href = link.getAttribute('href');\n if (!href) {\n return;\n }\n var newLink = link.cloneNode();\n newLink.onload = function () {\n if (link.parentNode !== null) {\n // $FlowFixMe\n link.parentNode.removeChild(link);\n }\n };\n newLink.setAttribute('href',\n // $FlowFixMe\n href.split('?')[0] + '?' + Date.now());\n // $FlowFixMe\n link.parentNode.insertBefore(newLink, link.nextSibling);\n}\nvar cssTimeout = null;\nfunction reloadCSS() {\n if (cssTimeout) {\n return;\n }\n cssTimeout = setTimeout(function () {\n var links = document.querySelectorAll('link[rel=\"stylesheet\"]');\n for (var i = 0; i < links.length; i++) {\n // $FlowFixMe[incompatible-type]\n var href /*: string */ = links[i].getAttribute('href');\n var hostname = getHostname();\n var servedFromHMRServer = hostname === 'localhost' ? new RegExp('^(https?:\\\\/\\\\/(0.0.0.0|127.0.0.1)|localhost):' + getPort()).test(href) : href.indexOf(hostname + ':' + getPort());\n var absolute = /^https?:\\/\\//i.test(href) && href.indexOf(location.origin) !== 0 && !servedFromHMRServer;\n if (!absolute) {\n updateLink(links[i]);\n }\n }\n cssTimeout = null;\n }, 50);\n}\nfunction hmrDownload(asset) {\n if (asset.type === 'js') {\n if (typeof document !== 'undefined') {\n let script = document.createElement('script');\n script.src = asset.url + '?t=' + Date.now();\n if (asset.outputFormat === 'esmodule') {\n script.type = 'module';\n }\n return new Promise((resolve, reject) => {\n var _document$head;\n script.onload = () => resolve(script);\n script.onerror = reject;\n (_document$head = document.head) === null || _document$head === void 0 || _document$head.appendChild(script);\n });\n } else if (typeof importScripts === 'function') {\n // Worker scripts\n if (asset.outputFormat === 'esmodule') {\n return __parcel__import__(asset.url + '?t=' + Date.now());\n } else {\n return new Promise((resolve, reject) => {\n try {\n __parcel__importScripts__(asset.url + '?t=' + Date.now());\n resolve();\n } catch (err) {\n reject(err);\n }\n });\n }\n }\n }\n}\nasync function hmrApplyUpdates(assets) {\n global.parcelHotUpdate = Object.create(null);\n let scriptsToRemove;\n try {\n // If sourceURL comments aren't supported in eval, we need to load\n // the update from the dev server over HTTP so that stack traces\n // are correct in errors/logs. This is much slower than eval, so\n // we only do it if needed (currently just Safari).\n // https://bugs.webkit.org/show_bug.cgi?id=137297\n // This path is also taken if a CSP disallows eval.\n if (!supportsSourceURL) {\n let promises = assets.map(asset => {\n var _hmrDownload;\n return (_hmrDownload = hmrDownload(asset)) === null || _hmrDownload === void 0 ? void 0 : _hmrDownload.catch(err => {\n // Web extension fix\n if (extCtx && extCtx.runtime && extCtx.runtime.getManifest().manifest_version == 3 && typeof ServiceWorkerGlobalScope != 'undefined' && global instanceof ServiceWorkerGlobalScope) {\n extCtx.runtime.reload();\n return;\n }\n throw err;\n });\n });\n scriptsToRemove = await Promise.all(promises);\n }\n assets.forEach(function (asset) {\n hmrApply(module.bundle.root, asset);\n });\n } finally {\n delete global.parcelHotUpdate;\n if (scriptsToRemove) {\n scriptsToRemove.forEach(script => {\n if (script) {\n var _document$head2;\n (_document$head2 = document.head) === null || _document$head2 === void 0 || _document$head2.removeChild(script);\n }\n });\n }\n }\n}\nfunction hmrApply(bundle /*: ParcelRequire */, asset /*: HMRAsset */) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (asset.type === 'css') {\n reloadCSS();\n } else if (asset.type === 'js') {\n let deps = asset.depsByBundle[bundle.HMR_BUNDLE_ID];\n if (deps) {\n if (modules[asset.id]) {\n // Remove dependencies that are removed and will become orphaned.\n // This is necessary so that if the asset is added back again, the cache is gone, and we prevent a full page reload.\n let oldDeps = modules[asset.id][1];\n for (let dep in oldDeps) {\n if (!deps[dep] || deps[dep] !== oldDeps[dep]) {\n let id = oldDeps[dep];\n let parents = getParents(module.bundle.root, id);\n if (parents.length === 1) {\n hmrDelete(module.bundle.root, id);\n }\n }\n }\n }\n if (supportsSourceURL) {\n // Global eval. We would use `new Function` here but browser\n // support for source maps is better with eval.\n (0, eval)(asset.output);\n }\n\n // $FlowFixMe\n let fn = global.parcelHotUpdate[asset.id];\n modules[asset.id] = [fn, deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n }\n}\nfunction hmrDelete(bundle, id) {\n let modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (modules[id]) {\n // Collect dependencies that will become orphaned when this module is deleted.\n let deps = modules[id][1];\n let orphans = [];\n for (let dep in deps) {\n let parents = getParents(module.bundle.root, deps[dep]);\n if (parents.length === 1) {\n orphans.push(deps[dep]);\n }\n }\n\n // Delete the module. This must be done before deleting dependencies in case of circular dependencies.\n delete modules[id];\n delete bundle.cache[id];\n\n // Now delete the orphans.\n orphans.forEach(id => {\n hmrDelete(module.bundle.root, id);\n });\n } else if (bundle.parent) {\n hmrDelete(bundle.parent, id);\n }\n}\nfunction hmrAcceptCheck(bundle /*: ParcelRequire */, id /*: string */, depsByBundle /*: ?{ [string]: { [string]: string } }*/) {\n if (hmrAcceptCheckOne(bundle, id, depsByBundle)) {\n return true;\n }\n\n // Traverse parents breadth first. All possible ancestries must accept the HMR update, or we'll reload.\n let parents = getParents(module.bundle.root, id);\n let accepted = false;\n while (parents.length > 0) {\n let v = parents.shift();\n let a = hmrAcceptCheckOne(v[0], v[1], null);\n if (a) {\n // If this parent accepts, stop traversing upward, but still consider siblings.\n accepted = true;\n } else {\n // Otherwise, queue the parents in the next level upward.\n let p = getParents(module.bundle.root, v[1]);\n if (p.length === 0) {\n // If there are no parents, then we've reached an entry without accepting. Reload.\n accepted = false;\n break;\n }\n parents.push(...p);\n }\n }\n return accepted;\n}\nfunction hmrAcceptCheckOne(bundle /*: ParcelRequire */, id /*: string */, depsByBundle /*: ?{ [string]: { [string]: string } }*/) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n if (depsByBundle && !depsByBundle[bundle.HMR_BUNDLE_ID]) {\n // If we reached the root bundle without finding where the asset should go,\n // there's nothing to do. Mark as \"accepted\" so we don't reload the page.\n if (!bundle.parent) {\n return true;\n }\n return hmrAcceptCheck(bundle.parent, id, depsByBundle);\n }\n if (checkedAssets[id]) {\n return true;\n }\n checkedAssets[id] = true;\n var cached = bundle.cache[id];\n assetsToDispose.push([bundle, id]);\n if (!cached || cached.hot && cached.hot._acceptCallbacks.length) {\n assetsToAccept.push([bundle, id]);\n return true;\n }\n}\nfunction hmrDispose(bundle /*: ParcelRequire */, id /*: string */) {\n var cached = bundle.cache[id];\n bundle.hotData[id] = {};\n if (cached && cached.hot) {\n cached.hot.data = bundle.hotData[id];\n }\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData[id]);\n });\n }\n delete bundle.cache[id];\n}\nfunction hmrAccept(bundle /*: ParcelRequire */, id /*: string */) {\n // Execute the module.\n bundle(id);\n\n // Run the accept callbacks in the new version of the module.\n var cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n var assetsToAlsoAccept = cb(function () {\n return getParents(module.bundle.root, id);\n });\n if (assetsToAlsoAccept && assetsToAccept.length) {\n assetsToAlsoAccept.forEach(function (a) {\n hmrDispose(a[0], a[1]);\n });\n\n // $FlowFixMe[method-unbinding]\n assetsToAccept.push.apply(assetsToAccept, assetsToAlsoAccept);\n }\n });\n }\n}","import LinxSdkModule from \"./linx-sdk-module\";\n\n// @ts-ignore\nasync function start() {\n const linxSdk = new LinxSdkModule(\n \"24630a02-331d-4b67-993d-9590cd37093f\",\n \"https://dev.linx.safemobile.com\",\n );\n\n await linxSdk.init(\"AIRWizard-sergiu\", \"Safemobile123\");\n linxSdk.establishWsConnection();\n}\n\nstart();\n","import { LogLevel, Method, Route, UserData, UserResponse } from \"./models\";\nimport Utils from \"./utils\";\nimport io from \"socket.io-client\";\n\nexport default class LinxSdkModule {\n utils: Utils;\n user: UserData;\n socket: any;\n\n constructor(apiKey: string, host: string) {\n this.utils = new Utils(host);\n }\n\n async init(user, password): Promise {\n try {\n const login: UserResponse = await this.utils.request(Method.POST, Route.LOGIN, {\n login: user,\n password: password,\n });\n if (!login.success) {\n Utils.log(\"Failed to initialize SDK\", LogLevel.ERROR);\n return false;\n } else {\n this.user = login.data;\n Utils.log(\"The SDK initialized successfully\");\n this.getGroups();\n return true;\n }\n } catch (err) {\n Utils.log(JSON.stringify(err.message), LogLevel.ERROR);\n return false;\n }\n }\n\n establishWsConnection() {\n const hubAddress = this.user.account.configuration.hub_address;\n\n this.socket = io(hubAddress, { rejectUnauthorized: false, secure: true });\n\n this.socket.on(\"connect\", () => {\n this.sendArs(true);\n Utils.log(\"The connection with the WS server was successfully established\");\n });\n\n [\"connect_timeout\", \"connect_error\", \"disconnect\"].forEach((handler) => {\n this.socket.on(handler, (message: string) => {\n Utils.log(message, LogLevel.ERROR);\n });\n });\n }\n\n sendArs(ars: boolean) {\n this.socket.emit(\n \"ars\",\n JSON.stringify({\n ars,\n userAgent: \"Dispatcher\",\n asset_id: this.user.asset.id,\n account_id: this.user.account.id,\n asset_sip_id: this.user.asset.sip_id,\n fake: false,\n }),\n );\n }\n\n sendGroupMonitoring() {\n const monitoringObject = {\n asset_alias: this.user.asset.name,\n asset_id: this.user.asset.id,\n asset_sip_id: this.user.asset.sip_id,\n group_id: 1,\n group_sip_id: 100190001,\n request_ptt_groups_status: false,\n scan_group_ids: [],\n };\n this.socket.emit(\"group-monitoring\", JSON.stringify(monitoringObject));\n }\n\n async getGroups() {\n const getGroupsRoute = Route.GROUPS.replace(\"$1\", this.user.account.id.toString());\n const groups: UserResponse = await this.utils.request(Method.GET, getGroupsRoute);\n console.log(\"groups\", groups);\n }\n}\n","exports.interopDefault = function (a) {\n return a && a.__esModule ? a : {default: a};\n};\n\nexports.defineInteropFlag = function (a) {\n Object.defineProperty(a, '__esModule', {value: true});\n};\n\nexports.exportAll = function (source, dest) {\n Object.keys(source).forEach(function (key) {\n if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function () {\n return source[key];\n },\n });\n });\n\n return dest;\n};\n\nexports.export = function (dest, destName, get) {\n Object.defineProperty(dest, destName, {\n enumerable: true,\n get: get,\n });\n};\n","import { LogLevel, Method } from \"./models\";\n\nexport default class Utils {\n host: string;\n\n constructor(host: string) {\n this.host = host;\n }\n\n async request(method: Method, path: string, data?: unknown | null): Promise {\n const req: Response = await fetch(`${this.host}${path}`, {\n method: Method[method],\n mode: \"cors\",\n credentials: \"same-origin\",\n headers: { \"Content-Type\": \"application/json\" },\n redirect: \"follow\",\n referrerPolicy: \"no-referrer\",\n body: data ? JSON.stringify(data) : null,\n });\n return req.json();\n }\n\n static log(message: string, level = LogLevel.INFO) {\n switch (level) {\n case 0:\n console.log(`%cⓘ SDK INFO: ${message}`, \"background: #183fdb; color: #ffffff\");\n break;\n case 1:\n console.log(`%c❗SDK WARNING: ${message}`, \"background: #c46a10; color: #ffffff\");\n break;\n case 2:\n console.log(`%c⛔SDK ERROR: ${message}`, \"background: #c41010; color: #ffffff\");\n break;\n default:\n console.log(\"default\");\n }\n }\n}\n","export enum Route {\n LOGIN = \"/api/login\",\n GROUPS = \"/api/sdk/account/$1/groups\",\n}\n\nexport enum Method {\n GET,\n POST,\n}\n\nexport enum LogLevel {\n INFO,\n WARNING,\n ERROR,\n}\n\nexport interface UserResponse {\n success: boolean;\n data: UserData;\n}\n\nexport interface UserData {\n id: number;\n version: number;\n account_id: number;\n date_created: string;\n is_admin: boolean;\n is_deactivated: boolean;\n is_deleted: boolean;\n last_updated: string;\n login: string;\n user_settings_id: number;\n note: null | string;\n asset_id: number;\n role_id: number;\n is_latency_measurement: boolean;\n user_role: UserRole;\n user_setting: UserSetting;\n last_status: LastStatus;\n account: Account;\n asset: Asset;\n token: string;\n}\n\nexport interface UserRole {\n id: number;\n name: string;\n}\n\nexport interface UserSetting {\n id: number;\n version: string;\n last_tab: string;\n is_mph: boolean;\n opened_tabs: string;\n is_military_time: boolean;\n refresh_interval_sec: number;\n history_limit: number;\n report_limit: number;\n is_show_label_overlay: boolean;\n is_ars_timeout: boolean;\n is_show_speed: boolean;\n is_clustering: boolean;\n timezone_id: number;\n language_id: number;\n map_limit: number;\n old_gps_map_limit: number;\n is_cyrn_continue_play: boolean;\n is_video_upload: boolean;\n}\n\nexport interface LastStatus {\n id: number;\n address_id: null | number;\n ars_time: string;\n digital_in: null;\n digital_out: null;\n is_on: boolean;\n latitude: null | number;\n longitude: null | number;\n position_time: null;\n speed: null;\n asset_id: number;\n no_gps_fix_time: null;\n position_id: null;\n is_stolen: boolean;\n is_enabled: boolean;\n is_dnd: boolean;\n is_emergency: boolean;\n last_private_asset_id: number;\n is_emergency_action: boolean;\n beacon_id: null;\n distance_cm: null;\n beacon_info_json: null;\n battery_status_date: null;\n battery_percentage: null;\n is_charging_date: null;\n is_charging: boolean;\n}\n\nexport interface Account {\n id: number;\n version: string;\n parent: null;\n configuration_id: number;\n name: string;\n date_created: string;\n license_id: number;\n is_deactivated: boolean;\n last_updated: string;\n configuration: Configuration;\n license: License;\n video_configuration: VideoConfiguration;\n}\n\nexport interface Configuration {\n id: number;\n hub_address: string;\n api_address: string;\n voice_address: string;\n sip_id_prefix: number;\n logo_login_image_path: null | string;\n logo_account_image_path: null | string;\n voice_rtp_port: number;\n voice_ws_port: null | number;\n hub_port: null | number;\n custom_config: null | string;\n mobile_hub_address: null | string;\n mobile_api_address: null | string;\n mobile_voice_address: null | string;\n max_private_channels: number;\n is_mumble: boolean;\n mumble_voice_address: string;\n mumble_voice_proxy_address: string;\n map_address: null | string;\n mumble_username: string;\n mumble_password: string;\n geocoding_provider_id: number;\n master_license: null | string;\n is_latency_measurement: boolean;\n hangtime_ms: number;\n disconnect_timeout_ms: number;\n mumble_address: string;\n max_file_size_mb: number;\n}\n\nexport interface License {\n id: number;\n date_created: string;\n version: string;\n max_dispatch: number;\n max_assets: number;\n is_demo: boolean;\n max_talk_groups: number;\n expires_on: null | Date;\n maintenance_begin: null | Date;\n maintenance_end: null | Date;\n max_arcgis_licenses: number;\n system_id: null | string;\n is_suspended: boolean;\n modified_on: string;\n crc: string;\n expires_on_ISO: string;\n maintenance_end_ISO: string;\n}\n\nexport interface VideoConfiguration {\n id: number;\n account_id: number;\n video_server: string;\n missed_call_timeout: number;\n max_call_duration: number;\n}\n\nexport interface Asset {\n id: number;\n version: number;\n account_id: number;\n date_created: string;\n email_address: null | string;\n bridge_id: null | number;\n icon_id: number;\n imei: string;\n is_deactivated: boolean;\n last_updated: string;\n name: string;\n asset_type_id: number;\n sip_id: number;\n is_deleted: boolean;\n contact_id: number;\n profile_id: number;\n bridge_radio_id: null | number;\n radio_id: null | number;\n priority: number;\n asset_profile: AssetProfile;\n}\n\nexport interface AssetProfile {\n id: number;\n version: number;\n account_id: number;\n date_created: string;\n name: string;\n reporting_sec: number;\n is_default: boolean;\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","\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 * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\n\nvar re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\n\nvar parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\n\nmodule.exports = function parseuri(str) {\n var src = str,\n b = str.indexOf('['),\n e = str.indexOf(']');\n\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n\n var m = re.exec(str || ''),\n uri = {},\n i = 14;\n\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n\n return uri;\n};\n\nfunction pathNames(obj, path) {\n var regx = /\\/{2,9}/g,\n names = path.replace(regx, \"/\").split(\"/\");\n\n if (path.substr(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.substr(path.length - 1, 1) == '/') {\n names.splice(names.length - 1, 1);\n }\n\n return names;\n}\n\nfunction queryKey(uri, query) {\n var data = {};\n\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n\n return data;\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","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","\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 * 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/**\n * Module dependencies.\n */\n\nvar debug = require('debug')('socket.io-parser');\nvar Emitter = require('component-emitter');\nvar binary = require('./binary');\nvar isArray = require('isarray');\nvar isBuf = require('./is-buffer');\n\n/**\n * Protocol version.\n *\n * @api public\n */\n\nexports.protocol = 4;\n\n/**\n * Packet types.\n *\n * @api public\n */\n\nexports.types = [\n 'CONNECT',\n 'DISCONNECT',\n 'EVENT',\n 'ACK',\n 'ERROR',\n 'BINARY_EVENT',\n 'BINARY_ACK'\n];\n\n/**\n * Packet type `connect`.\n *\n * @api public\n */\n\nexports.CONNECT = 0;\n\n/**\n * Packet type `disconnect`.\n *\n * @api public\n */\n\nexports.DISCONNECT = 1;\n\n/**\n * Packet type `event`.\n *\n * @api public\n */\n\nexports.EVENT = 2;\n\n/**\n * Packet type `ack`.\n *\n * @api public\n */\n\nexports.ACK = 3;\n\n/**\n * Packet type `error`.\n *\n * @api public\n */\n\nexports.ERROR = 4;\n\n/**\n * Packet type 'binary event'\n *\n * @api public\n */\n\nexports.BINARY_EVENT = 5;\n\n/**\n * Packet type `binary ack`. For acks with binary arguments.\n *\n * @api public\n */\n\nexports.BINARY_ACK = 6;\n\n/**\n * Encoder constructor.\n *\n * @api public\n */\n\nexports.Encoder = Encoder;\n\n/**\n * Decoder constructor.\n *\n * @api public\n */\n\nexports.Decoder = Decoder;\n\n/**\n * A socket.io Encoder instance\n *\n * @api public\n */\n\nfunction Encoder() {}\n\nvar ERROR_PACKET = exports.ERROR + '\"encode error\"';\n\n/**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n * @param {Function} callback - function to handle encodings (likely engine.write)\n * @return Calls callback with Array of encodings\n * @api public\n */\n\nEncoder.prototype.encode = function(obj, callback){\n debug('encoding packet %j', obj);\n\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n encodeAsBinary(obj, callback);\n } else {\n var encoding = encodeAsString(obj);\n callback([encoding]);\n }\n};\n\n/**\n * Encode packet as string.\n *\n * @param {Object} packet\n * @return {String} encoded\n * @api private\n */\n\nfunction encodeAsString(obj) {\n\n // first is type\n var str = '' + obj.type;\n\n // attachments if we have them\n if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) {\n str += obj.attachments + '-';\n }\n\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && '/' !== obj.nsp) {\n str += obj.nsp + ',';\n }\n\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n\n // json data\n if (null != obj.data) {\n var payload = tryStringify(obj.data);\n if (payload !== false) {\n str += payload;\n } else {\n return ERROR_PACKET;\n }\n }\n\n debug('encoded %j as %s', obj, str);\n return str;\n}\n\nfunction tryStringify(str) {\n try {\n return JSON.stringify(str);\n } catch(e){\n return false;\n }\n}\n\n/**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n *\n * @param {Object} packet\n * @return {Buffer} encoded\n * @api private\n */\n\nfunction encodeAsBinary(obj, callback) {\n\n function writeEncoding(bloblessData) {\n var deconstruction = binary.deconstructPacket(bloblessData);\n var pack = encodeAsString(deconstruction.packet);\n var buffers = deconstruction.buffers;\n\n buffers.unshift(pack); // add packet info to beginning of data list\n callback(buffers); // write all the buffers\n }\n\n binary.removeBlobs(obj, writeEncoding);\n}\n\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n * @api public\n */\n\nfunction Decoder() {\n this.reconstructor = null;\n}\n\n/**\n * Mix in `Emitter` with Decoder.\n */\n\nEmitter(Decoder.prototype);\n\n/**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n * @return {Object} packet\n * @api public\n */\n\nDecoder.prototype.add = function(obj) {\n var packet;\n if (typeof obj === 'string') {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = decodeString(obj);\n if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n\n // no attachments, labeled binary but no binary data to follow\n if (this.reconstructor.reconPack.attachments === 0) {\n this.emit('decoded', packet);\n }\n } else { // non-binary full packet\n this.emit('decoded', packet);\n }\n } else if (isBuf(obj) || obj.base64) { // raw binary data\n if (!this.reconstructor) {\n throw new Error('got binary data when not reconstructing a packet');\n } else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) { // received final buffer\n this.reconstructor = null;\n this.emit('decoded', packet);\n }\n }\n } else {\n throw new Error('Unknown type: ' + obj);\n }\n};\n\n/**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n * @api private\n */\n\nfunction decodeString(str) {\n var i = 0;\n // look up type\n var p = {\n type: Number(str.charAt(0))\n };\n\n if (null == exports.types[p.type]) {\n return error('unknown packet type ' + p.type);\n }\n\n // look up attachments if type binary\n if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) {\n var start = i + 1;\n while (str.charAt(++i) !== '-' && i != str.length) {}\n var buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== '-') {\n throw new Error('Illegal attachments');\n }\n p.attachments = Number(buf);\n }\n\n // look up namespace (if any)\n if ('/' === str.charAt(i + 1)) {\n var start = i + 1;\n while (++i) {\n var c = str.charAt(i);\n if (',' === c) break;\n if (i === str.length) break;\n }\n p.nsp = str.substring(start, i);\n } else {\n p.nsp = '/';\n }\n\n // look up id\n var next = str.charAt(i + 1);\n if ('' !== next && Number(next) == next) {\n var start = i + 1;\n while (++i) {\n var c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length) break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n\n // look up json data\n if (str.charAt(++i)) {\n var payload = tryParse(str.substr(i));\n var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload));\n if (isPayloadValid) {\n p.data = payload;\n } else {\n return error('invalid payload');\n }\n }\n\n debug('decoded %s as %j', str, p);\n return p;\n}\n\nfunction tryParse(str) {\n try {\n return JSON.parse(str);\n } catch(e){\n return false;\n }\n}\n\n/**\n * Deallocates a parser's resources\n *\n * @api public\n */\n\nDecoder.prototype.destroy = function() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n};\n\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n * @api private\n */\n\nfunction BinaryReconstructor(packet) {\n this.reconPack = packet;\n this.buffers = [];\n}\n\n/**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n * @api private\n */\n\nBinaryReconstructor.prototype.takeBinaryData = function(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) { // done with buffer list\n var packet = binary.reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n};\n\n/**\n * Cleans up binary packet reconstruction variables.\n *\n * @api private\n */\n\nBinaryReconstructor.prototype.finishedReconstruction = function() {\n this.reconPack = null;\n this.buffers = [];\n};\n\nfunction error(msg) {\n return {\n type: exports.ERROR,\n data: 'parser error: ' + msg\n };\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\r\n // Remove event specific arrays for event types that no\r\n // one is subscribed for to avoid memory leak.\r\n if (callbacks.length === 0) {\r\n delete this._callbacks['$' + event];\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\r\n var args = new Array(arguments.length - 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n for (var i = 1; i < arguments.length; i++) {\r\n args[i - 1] = arguments[i];\r\n }\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","/*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 === true) {\n var isIndexValid =\n typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n } else {\n throw new Error(\"illegal attachments\");\n }\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","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\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 * 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\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * 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 * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\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 // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\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(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(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 interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(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(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\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(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(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.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 buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.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 === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let 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 (!Array.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 let 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 const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\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 (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let 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 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) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let 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 coercion 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// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let 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 const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let 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 const length = this.length\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.toLocaleString = Buffer.prototype.toString\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 let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\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 let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let 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 (numberIsNaN(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 (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 let indexSize = 1\n let arrLength = arr.length\n let 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 let i\n if (dir) {\n let 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 let found = true\n for (let 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 const 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 const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(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 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 } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const 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 let 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 case 'latin1':\n case 'binary':\n return asciiWrite(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 const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let 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\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const 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 let res = ''\n let 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 let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; 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 const 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 const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\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 =\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 let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\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 let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\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.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\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 let val = this[offset]\n let mul = 1\n let 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 let i = byteLength\n let mul = 1\n let 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 offset = offset >>> 0\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 offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let 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 =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let 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 =\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 this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\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 this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let 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 const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let 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 (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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\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 value = +value\n offset = offset >>> 0\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 value = +value\n offset = offset >>> 0\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 (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\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('Index out of range')\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 const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\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 (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 if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\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 let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().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 utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let 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 const byteArray = []\n for (let 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 let c, hi, lo\n const byteArray = []\n for (let 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 let i\n for (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\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! 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","\n/**\n * Module dependencies.\n */\n\nvar eio = require('engine.io-client');\nvar Socket = require('./socket');\nvar Emitter = require('component-emitter');\nvar parser = require('socket.io-parser');\nvar on = require('./on');\nvar bind = require('component-bind');\nvar debug = require('debug')('socket.io-client:manager');\nvar indexOf = require('indexof');\nvar Backoff = require('backo2');\n\n/**\n * IE6+ hasOwnProperty\n */\n\nvar has = Object.prototype.hasOwnProperty;\n\n/**\n * Module exports\n */\n\nmodule.exports = Manager;\n\n/**\n * `Manager` constructor.\n *\n * @param {String} engine instance or engine uri/opts\n * @param {Object} options\n * @api public\n */\n\nfunction Manager (uri, opts) {\n if (!(this instanceof Manager)) return new Manager(uri, opts);\n if (uri && ('object' === typeof uri)) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n\n opts.path = opts.path || '/socket.io';\n this.nsps = {};\n this.subs = [];\n this.opts = opts;\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor(opts.randomizationFactor || 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor()\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this.readyState = 'closed';\n this.uri = uri;\n this.connecting = [];\n this.lastPing = null;\n this.encoding = false;\n this.packetBuffer = [];\n var _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this.autoConnect = opts.autoConnect !== false;\n if (this.autoConnect) this.open();\n}\n\n/**\n * Propagate given event to sockets and emit on `this`\n *\n * @api private\n */\n\nManager.prototype.emitAll = function () {\n this.emit.apply(this, arguments);\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].emit.apply(this.nsps[nsp], arguments);\n }\n }\n};\n\n/**\n * Update `socket.id` of all sockets\n *\n * @api private\n */\n\nManager.prototype.updateSocketIds = function () {\n for (var nsp in this.nsps) {\n if (has.call(this.nsps, nsp)) {\n this.nsps[nsp].id = this.generateId(nsp);\n }\n }\n};\n\n/**\n * generate `socket.id` for the given `nsp`\n *\n * @param {String} nsp\n * @return {String}\n * @api private\n */\n\nManager.prototype.generateId = function (nsp) {\n return (nsp === '/' ? '' : (nsp + '#')) + this.engine.id;\n};\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Manager.prototype);\n\n/**\n * Sets the `reconnection` config.\n *\n * @param {Boolean} true/false if it should automatically reconnect\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnection = function (v) {\n if (!arguments.length) return this._reconnection;\n this._reconnection = !!v;\n return this;\n};\n\n/**\n * Sets the reconnection attempts config.\n *\n * @param {Number} max reconnection attempts before giving up\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionAttempts = function (v) {\n if (!arguments.length) return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n};\n\n/**\n * Sets the delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelay = function (v) {\n if (!arguments.length) return this._reconnectionDelay;\n this._reconnectionDelay = v;\n this.backoff && this.backoff.setMin(v);\n return this;\n};\n\nManager.prototype.randomizationFactor = function (v) {\n if (!arguments.length) return this._randomizationFactor;\n this._randomizationFactor = v;\n this.backoff && this.backoff.setJitter(v);\n return this;\n};\n\n/**\n * Sets the maximum delay between reconnections.\n *\n * @param {Number} delay\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.reconnectionDelayMax = function (v) {\n if (!arguments.length) return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n this.backoff && this.backoff.setMax(v);\n return this;\n};\n\n/**\n * Sets the connection timeout. `false` to disable\n *\n * @return {Manager} self or value\n * @api public\n */\n\nManager.prototype.timeout = function (v) {\n if (!arguments.length) return this._timeout;\n this._timeout = v;\n return this;\n};\n\n/**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @api private\n */\n\nManager.prototype.maybeReconnectOnOpen = function () {\n // Only try to reconnect if it's the first time we're connecting\n if (!this.reconnecting && this._reconnection && this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n};\n\n/**\n * Sets the current transport `socket`.\n *\n * @param {Function} optional, callback\n * @return {Manager} self\n * @api public\n */\n\nManager.prototype.open =\nManager.prototype.connect = function (fn, opts) {\n debug('readyState %s', this.readyState);\n if (~this.readyState.indexOf('open')) return this;\n\n debug('opening %s', this.uri);\n this.engine = eio(this.uri, this.opts);\n var socket = this.engine;\n var self = this;\n this.readyState = 'opening';\n this.skipReconnect = false;\n\n // emit `open`\n var openSub = on(socket, 'open', function () {\n self.onopen();\n fn && fn();\n });\n\n // emit `connect_error`\n var errorSub = on(socket, 'error', function (data) {\n debug('connect_error');\n self.cleanup();\n self.readyState = 'closed';\n self.emitAll('connect_error', data);\n if (fn) {\n var err = new Error('Connection error');\n err.data = data;\n fn(err);\n } else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n\n // emit `connect_timeout`\n if (false !== this._timeout) {\n var timeout = this._timeout;\n debug('connect attempt will timeout after %d', timeout);\n\n if (timeout === 0) {\n openSub.destroy(); // prevents a race condition with the 'open' event\n }\n\n // set timer\n var timer = setTimeout(function () {\n debug('connect attempt timed out after %d', timeout);\n openSub.destroy();\n socket.close();\n socket.emit('error', 'timeout');\n self.emitAll('connect_timeout', timeout);\n }, timeout);\n\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n\n this.subs.push(openSub);\n this.subs.push(errorSub);\n\n return this;\n};\n\n/**\n * Called upon transport open.\n *\n * @api private\n */\n\nManager.prototype.onopen = function () {\n debug('open');\n\n // clear old subs\n this.cleanup();\n\n // mark as open\n this.readyState = 'open';\n this.emit('open');\n\n // add new subs\n var socket = this.engine;\n this.subs.push(on(socket, 'data', bind(this, 'ondata')));\n this.subs.push(on(socket, 'ping', bind(this, 'onping')));\n this.subs.push(on(socket, 'pong', bind(this, 'onpong')));\n this.subs.push(on(socket, 'error', bind(this, 'onerror')));\n this.subs.push(on(socket, 'close', bind(this, 'onclose')));\n this.subs.push(on(this.decoder, 'decoded', bind(this, 'ondecoded')));\n};\n\n/**\n * Called upon a ping.\n *\n * @api private\n */\n\nManager.prototype.onping = function () {\n this.lastPing = new Date();\n this.emitAll('ping');\n};\n\n/**\n * Called upon a packet.\n *\n * @api private\n */\n\nManager.prototype.onpong = function () {\n this.emitAll('pong', new Date() - this.lastPing);\n};\n\n/**\n * Called with data.\n *\n * @api private\n */\n\nManager.prototype.ondata = function (data) {\n this.decoder.add(data);\n};\n\n/**\n * Called when parser fully decodes a packet.\n *\n * @api private\n */\n\nManager.prototype.ondecoded = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon socket error.\n *\n * @api private\n */\n\nManager.prototype.onerror = function (err) {\n debug('error', err);\n this.emitAll('error', err);\n};\n\n/**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @api public\n */\n\nManager.prototype.socket = function (nsp, opts) {\n var socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n var self = this;\n socket.on('connecting', onConnecting);\n socket.on('connect', function () {\n socket.id = self.generateId(nsp);\n });\n\n if (this.autoConnect) {\n // manually call here since connecting event is fired before listening\n onConnecting();\n }\n }\n\n function onConnecting () {\n if (!~indexOf(self.connecting, socket)) {\n self.connecting.push(socket);\n }\n }\n\n return socket;\n};\n\n/**\n * Called upon a socket close.\n *\n * @param {Socket} socket\n */\n\nManager.prototype.destroy = function (socket) {\n var index = indexOf(this.connecting, socket);\n if (~index) this.connecting.splice(index, 1);\n if (this.connecting.length) return;\n\n this.close();\n};\n\n/**\n * Writes a packet.\n *\n * @param {Object} packet\n * @api private\n */\n\nManager.prototype.packet = function (packet) {\n debug('writing packet %j', packet);\n var self = this;\n if (packet.query && packet.type === 0) packet.nsp += '?' + packet.query;\n\n if (!self.encoding) {\n // encode, then write to engine with result\n self.encoding = true;\n this.encoder.encode(packet, function (encodedPackets) {\n for (var i = 0; i < encodedPackets.length; i++) {\n self.engine.write(encodedPackets[i], packet.options);\n }\n self.encoding = false;\n self.processPacketQueue();\n });\n } else { // add packet to the queue\n self.packetBuffer.push(packet);\n }\n};\n\n/**\n * If packet buffer is non-empty, begins encoding the\n * next packet in line.\n *\n * @api private\n */\n\nManager.prototype.processPacketQueue = function () {\n if (this.packetBuffer.length > 0 && !this.encoding) {\n var pack = this.packetBuffer.shift();\n this.packet(pack);\n }\n};\n\n/**\n * Clean up transport subscriptions and packet buffer.\n *\n * @api private\n */\n\nManager.prototype.cleanup = function () {\n debug('cleanup');\n\n var subsLength = this.subs.length;\n for (var i = 0; i < subsLength; i++) {\n var sub = this.subs.shift();\n sub.destroy();\n }\n\n this.packetBuffer = [];\n this.encoding = false;\n this.lastPing = null;\n\n this.decoder.destroy();\n};\n\n/**\n * Close the current socket.\n *\n * @api private\n */\n\nManager.prototype.close =\nManager.prototype.disconnect = function () {\n debug('disconnect');\n this.skipReconnect = true;\n this.reconnecting = false;\n if ('opening' === this.readyState) {\n // `onclose` will not fire because\n // an open event never happened\n this.cleanup();\n }\n this.backoff.reset();\n this.readyState = 'closed';\n if (this.engine) this.engine.close();\n};\n\n/**\n * Called upon engine close.\n *\n * @api private\n */\n\nManager.prototype.onclose = function (reason) {\n debug('onclose');\n\n this.cleanup();\n this.backoff.reset();\n this.readyState = 'closed';\n this.emit('close', reason);\n\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n};\n\n/**\n * Attempt a reconnection.\n *\n * @api private\n */\n\nManager.prototype.reconnect = function () {\n if (this.reconnecting || this.skipReconnect) return this;\n\n var self = this;\n\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n debug('reconnect failed');\n this.backoff.reset();\n this.emitAll('reconnect_failed');\n this.reconnecting = false;\n } else {\n var delay = this.backoff.duration();\n debug('will wait %dms before reconnect attempt', delay);\n\n this.reconnecting = true;\n var timer = setTimeout(function () {\n if (self.skipReconnect) return;\n\n debug('attempting reconnect');\n self.emitAll('reconnect_attempt', self.backoff.attempts);\n self.emitAll('reconnecting', self.backoff.attempts);\n\n // check again for the case socket closed in above events\n if (self.skipReconnect) return;\n\n self.open(function (err) {\n if (err) {\n debug('reconnect attempt error');\n self.reconnecting = false;\n self.reconnect();\n self.emitAll('reconnect_error', err.data);\n } else {\n debug('reconnect success');\n self.onreconnect();\n }\n });\n }, delay);\n\n this.subs.push({\n destroy: function () {\n clearTimeout(timer);\n }\n });\n }\n};\n\n/**\n * Called upon successful reconnect.\n *\n * @api private\n */\n\nManager.prototype.onreconnect = function () {\n var attempt = this.backoff.attempts;\n this.reconnecting = false;\n this.backoff.reset();\n this.updateSocketIds();\n this.emitAll('reconnect', attempt);\n};\n","\nmodule.exports = require('./socket');\n\n/**\n * Exports parser\n *\n * @api public\n *\n */\nmodule.exports.parser = require('engine.io-parser');\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 || null;\n this.key = opts.key || null;\n this.passphrase = opts.passphrase || null;\n this.cert = opts.cert || null;\n this.ca = opts.ca || null;\n this.ciphers = opts.ciphers || null;\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 * Module dependencies\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar XHR = require('./polling-xhr');\nvar JSONP = require('./polling-jsonp');\nvar websocket = require('./websocket');\n\n/**\n * Export transports.\n */\n\nexports.polling = polling;\nexports.websocket = websocket;\n\n/**\n * Polling transport polymorphic constructor.\n * Decides on xhr vs jsonp based on feature detection.\n *\n * @api private\n */\n\nfunction polling (opts) {\n var xhr;\n var xd = false;\n var xs = false;\n var jsonp = false !== opts.jsonp;\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 xd = opts.hostname !== location.hostname || port !== opts.port;\n xs = opts.secure !== isSSL;\n }\n\n opts.xdomain = xd;\n opts.xscheme = xs;\n xhr = new XMLHttpRequest(opts);\n\n if ('open' in xhr && !opts.forceJSONP) {\n return new XHR(opts);\n } else {\n if (!jsonp) throw new Error('JSONP disabled');\n return new JSONP(opts);\n }\n}\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","\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","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","/* global attachEvent */\n\n/**\n * Module requirements.\n */\n\nvar XMLHttpRequest = require('xmlhttprequest-ssl');\nvar Polling = require('./polling');\nvar Emitter = require('component-emitter');\nvar inherit = require('component-inherit');\nvar debug = require('debug')('engine.io-client:polling-xhr');\nvar globalThis = require('../globalThis');\n\n/**\n * Module exports.\n */\n\nmodule.exports = XHR;\nmodule.exports.Request = Request;\n\n/**\n * Empty function\n */\n\nfunction empty () {}\n\n/**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction XHR (opts) {\n Polling.call(this, opts);\n this.requestTimeout = opts.requestTimeout;\n this.extraHeaders = opts.extraHeaders;\n\n if (typeof location !== 'undefined') {\n var isSSL = 'https:' === location.protocol;\n var port = location.port;\n\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? 443 : 80;\n }\n\n this.xd = (typeof location !== 'undefined' && opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n}\n\n/**\n * Inherits from Polling.\n */\n\ninherit(XHR, Polling);\n\n/**\n * XHR supports binary\n */\n\nXHR.prototype.supportsBinary = true;\n\n/**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n\nXHR.prototype.request = function (opts) {\n opts = opts || {};\n opts.uri = this.uri();\n opts.xd = this.xd;\n opts.xs = this.xs;\n opts.agent = this.agent || false;\n opts.supportsBinary = this.supportsBinary;\n opts.enablesXDR = this.enablesXDR;\n opts.withCredentials = this.withCredentials;\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n opts.requestTimeout = this.requestTimeout;\n\n // other options for Node.js client\n opts.extraHeaders = this.extraHeaders;\n\n return new Request(opts);\n};\n\n/**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n\nXHR.prototype.doWrite = function (data, fn) {\n var isBinary = typeof data !== 'string' && data !== undefined;\n var req = this.request({ method: 'POST', data: data, isBinary: isBinary });\n var self = this;\n req.on('success', fn);\n req.on('error', function (err) {\n self.onError('xhr post error', err);\n });\n this.sendXhr = req;\n};\n\n/**\n * Starts a poll cycle.\n *\n * @api private\n */\n\nXHR.prototype.doPoll = function () {\n debug('xhr poll');\n var req = this.request();\n var self = this;\n req.on('data', function (data) {\n self.onData(data);\n });\n req.on('error', function (err) {\n self.onError('xhr poll error', err);\n });\n this.pollXhr = req;\n};\n\n/**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n\nfunction Request (opts) {\n this.method = opts.method || 'GET';\n this.uri = opts.uri;\n this.xd = !!opts.xd;\n this.xs = !!opts.xs;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.agent = opts.agent;\n this.isBinary = opts.isBinary;\n this.supportsBinary = opts.supportsBinary;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\n this.requestTimeout = opts.requestTimeout;\n\n // SSL options for Node.js client\n this.pfx = opts.pfx;\n this.key = opts.key;\n this.passphrase = opts.passphrase;\n this.cert = opts.cert;\n this.ca = opts.ca;\n this.ciphers = opts.ciphers;\n this.rejectUnauthorized = opts.rejectUnauthorized;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n\n this.create();\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Request.prototype);\n\n/**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n\nRequest.prototype.create = function () {\n var opts = { agent: this.agent, xdomain: this.xd, xscheme: this.xs, enablesXDR: this.enablesXDR };\n\n // SSL options for Node.js client\n opts.pfx = this.pfx;\n opts.key = this.key;\n opts.passphrase = this.passphrase;\n opts.cert = this.cert;\n opts.ca = this.ca;\n opts.ciphers = this.ciphers;\n opts.rejectUnauthorized = this.rejectUnauthorized;\n\n var xhr = this.xhr = new XMLHttpRequest(opts);\n var self = this;\n\n try {\n debug('xhr open %s: %s', this.method, this.uri);\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (var i in this.extraHeaders) {\n if (this.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.extraHeaders[i]);\n }\n }\n }\n } catch (e) {}\n\n if ('POST' === this.method) {\n try {\n if (this.isBinary) {\n xhr.setRequestHeader('Content-type', 'application/octet-stream');\n } else {\n xhr.setRequestHeader('Content-type', 'text/plain;charset=UTF-8');\n }\n } catch (e) {}\n }\n\n try {\n xhr.setRequestHeader('Accept', '*/*');\n } catch (e) {}\n\n // ie6 check\n if ('withCredentials' in xhr) {\n xhr.withCredentials = this.withCredentials;\n }\n\n if (this.requestTimeout) {\n xhr.timeout = this.requestTimeout;\n }\n\n if (this.hasXDR()) {\n xhr.onload = function () {\n self.onLoad();\n };\n xhr.onerror = function () {\n self.onError(xhr.responseText);\n };\n } else {\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 2) {\n try {\n var contentType = xhr.getResponseHeader('Content-Type');\n if (self.supportsBinary && contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n xhr.responseType = 'arraybuffer';\n }\n } catch (e) {}\n }\n if (4 !== xhr.readyState) return;\n if (200 === xhr.status || 1223 === xhr.status) {\n self.onLoad();\n } else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n setTimeout(function () {\n self.onError(typeof xhr.status === 'number' ? xhr.status : 0);\n }, 0);\n }\n };\n }\n\n debug('xhr data %s', this.data);\n xhr.send(this.data);\n } catch (e) {\n // Need to defer since .create() is called directly fhrom the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n setTimeout(function () {\n self.onError(e);\n }, 0);\n return;\n }\n\n if (typeof document !== 'undefined') {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n};\n\n/**\n * Called upon successful response.\n *\n * @api private\n */\n\nRequest.prototype.onSuccess = function () {\n this.emit('success');\n this.cleanup();\n};\n\n/**\n * Called if we have data.\n *\n * @api private\n */\n\nRequest.prototype.onData = function (data) {\n this.emit('data', data);\n this.onSuccess();\n};\n\n/**\n * Called upon error.\n *\n * @api private\n */\n\nRequest.prototype.onError = function (err) {\n this.emit('error', err);\n this.cleanup(true);\n};\n\n/**\n * Cleans up house.\n *\n * @api private\n */\n\nRequest.prototype.cleanup = function (fromError) {\n if ('undefined' === typeof this.xhr || null === this.xhr) {\n return;\n }\n // xmlhttprequest\n if (this.hasXDR()) {\n this.xhr.onload = this.xhr.onerror = empty;\n } else {\n this.xhr.onreadystatechange = empty;\n }\n\n if (fromError) {\n try {\n this.xhr.abort();\n } catch (e) {}\n }\n\n if (typeof document !== 'undefined') {\n delete Request.requests[this.index];\n }\n\n this.xhr = null;\n};\n\n/**\n * Called upon load.\n *\n * @api private\n */\n\nRequest.prototype.onLoad = function () {\n var data;\n try {\n var contentType;\n try {\n contentType = this.xhr.getResponseHeader('Content-Type');\n } catch (e) {}\n if (contentType === 'application/octet-stream' || contentType === 'application/octet-stream; charset=UTF-8') {\n data = this.xhr.response || this.xhr.responseText;\n } else {\n data = this.xhr.responseText;\n }\n } catch (e) {\n this.onError(e);\n }\n if (null != data) {\n this.onData(data);\n }\n};\n\n/**\n * Check if it has XDomainRequest.\n *\n * @api private\n */\n\nRequest.prototype.hasXDR = function () {\n return typeof XDomainRequest !== 'undefined' && !this.xs && this.enablesXDR;\n};\n\n/**\n * Aborts the request.\n *\n * @api public\n */\n\nRequest.prototype.abort = function () {\n this.cleanup();\n};\n\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\n\nRequest.requestsCount = 0;\nRequest.requests = {};\n\nif (typeof document !== 'undefined') {\n if (typeof attachEvent === 'function') {\n attachEvent('onunload', unloadHandler);\n } else if (typeof addEventListener === 'function') {\n var terminationEvent = 'onpagehide' in globalThis ? 'pagehide' : 'unload';\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\n\nfunction unloadHandler () {\n for (var i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","/**\n * Module dependencies.\n */\n\nvar Transport = require('../transport');\nvar parseqs = require('parseqs');\nvar parser = require('engine.io-parser');\nvar inherit = require('component-inherit');\nvar yeast = require('yeast');\nvar debug = require('debug')('engine.io-client:polling');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Polling;\n\n/**\n * Is XHR2 supported?\n */\n\nvar hasXHR2 = (function () {\n var XMLHttpRequest = require('xmlhttprequest-ssl');\n var xhr = new XMLHttpRequest({ xdomain: false });\n return null != xhr.responseType;\n})();\n\n/**\n * Polling interface.\n *\n * @param {Object} opts\n * @api private\n */\n\nfunction Polling (opts) {\n var forceBase64 = (opts && opts.forceBase64);\n if (!hasXHR2 || forceBase64) {\n this.supportsBinary = false;\n }\n Transport.call(this, opts);\n}\n\n/**\n * Inherits from Transport.\n */\n\ninherit(Polling, Transport);\n\n/**\n * Transport name.\n */\n\nPolling.prototype.name = 'polling';\n\n/**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n\nPolling.prototype.doOpen = function () {\n this.poll();\n};\n\n/**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n\nPolling.prototype.pause = function (onPause) {\n var self = this;\n\n this.readyState = 'pausing';\n\n function pause () {\n debug('paused');\n self.readyState = 'paused';\n onPause();\n }\n\n if (this.polling || !this.writable) {\n var total = 0;\n\n if (this.polling) {\n debug('we are currently polling - waiting to pause');\n total++;\n this.once('pollComplete', function () {\n debug('pre-pause polling complete');\n --total || pause();\n });\n }\n\n if (!this.writable) {\n debug('we are currently writing - waiting to pause');\n total++;\n this.once('drain', function () {\n debug('pre-pause writing complete');\n --total || pause();\n });\n }\n } else {\n pause();\n }\n};\n\n/**\n * Starts polling cycle.\n *\n * @api public\n */\n\nPolling.prototype.poll = function () {\n debug('polling');\n this.polling = true;\n this.doPoll();\n this.emit('poll');\n};\n\n/**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n\nPolling.prototype.onData = function (data) {\n var self = this;\n debug('polling got data %s', data);\n var callback = function (packet, index, total) {\n // if its the first message we consider the transport open\n if ('opening' === self.readyState) {\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 dependencies.\n */\n\nvar parser = require('engine.io-parser');\nvar Emitter = require('component-emitter');\n\n/**\n * Module exports.\n */\n\nmodule.exports = Transport;\n\n/**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n\nfunction Transport (opts) {\n this.path = opts.path;\n this.hostname = opts.hostname;\n this.port = opts.port;\n this.secure = opts.secure;\n this.query = opts.query;\n this.timestampParam = opts.timestampParam;\n this.timestampRequests = opts.timestampRequests;\n this.readyState = '';\n this.agent = opts.agent || false;\n this.socket = opts.socket;\n this.enablesXDR = opts.enablesXDR;\n this.withCredentials = opts.withCredentials;\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 this.forceNode = opts.forceNode;\n\n // results of ReactNative environment detection\n this.isReactNative = opts.isReactNative;\n\n // other options for Node.js client\n this.extraHeaders = opts.extraHeaders;\n this.localAddress = opts.localAddress;\n}\n\n/**\n * Mix in `Emitter`.\n */\n\nEmitter(Transport.prototype);\n\n/**\n * Emits an error.\n *\n * @param {String} str\n * @return {Transport} for chaining\n * @api public\n */\n\nTransport.prototype.onError = function (msg, desc) {\n var err = new Error(msg);\n err.type = 'TransportError';\n err.description = desc;\n this.emit('error', err);\n return this;\n};\n\n/**\n * Opens the transport.\n *\n * @api public\n */\n\nTransport.prototype.open = function () {\n if ('closed' === this.readyState || '' === this.readyState) {\n this.readyState = 'opening';\n this.doOpen();\n }\n\n return this;\n};\n\n/**\n * Closes the transport.\n *\n * @api private\n */\n\nTransport.prototype.close = function () {\n if ('opening' === this.readyState || 'open' === this.readyState) {\n this.doClose();\n this.onClose();\n }\n\n return this;\n};\n\n/**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api private\n */\n\nTransport.prototype.send = function (packets) {\n if ('open' === this.readyState) {\n this.write(packets);\n } else {\n throw new Error('Transport not open');\n }\n};\n\n/**\n * Called upon open\n *\n * @api private\n */\n\nTransport.prototype.onOpen = function () {\n this.readyState = 'open';\n this.writable = true;\n this.emit('open');\n};\n\n/**\n * Called with data.\n *\n * @param {String} data\n * @api private\n */\n\nTransport.prototype.onData = function (data) {\n var packet = parser.decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n};\n\n/**\n * Called with a decoded packet.\n */\n\nTransport.prototype.onPacket = function (packet) {\n this.emit('packet', packet);\n};\n\n/**\n * Called upon close.\n *\n * @api private\n */\n\nTransport.prototype.onClose = function () {\n this.readyState = 'closed';\n this.emit('close');\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/**\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","/* global Blob File */\n\n/*\n * Module requirements.\n */\n\nvar isArray = require('isarray');\n\nvar toString = Object.prototype.toString;\nvar withNativeBlob = typeof Blob === 'function' ||\n typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]';\nvar withNativeFile = typeof File === 'function' ||\n typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]';\n\n/**\n * Module exports.\n */\n\nmodule.exports = hasBinary;\n\n/**\n * Checks for binary data.\n *\n * Supports Buffer, ArrayBuffer, Blob and File.\n *\n * @param {Object} anything\n * @api public\n */\n\nfunction hasBinary (obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n if (isArray(obj)) {\n for (var i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n\n if ((typeof Buffer === 'function' && Buffer.isBuffer && Buffer.isBuffer(obj)) ||\n (typeof ArrayBuffer === 'function' && obj instanceof ArrayBuffer) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File)\n ) {\n return true;\n }\n\n // see: https://github.com/Automattic/has-binary/pull/4\n if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n\n return false;\n}\n","/**\n * An abstraction for slicing an arraybuffer even when\n * ArrayBuffer.prototype.slice is not supported\n *\n * @api public\n */\n\nmodule.exports = function(arraybuffer, start, end) {\n var bytes = arraybuffer.byteLength;\n start = start || 0;\n end = end || bytes;\n\n if (arraybuffer.slice) { return arraybuffer.slice(start, end); }\n\n if (start < 0) { start += bytes; }\n if (end < 0) { end += bytes; }\n if (end > bytes) { end = bytes; }\n\n if (start >= bytes || start >= end || bytes === 0) {\n return new ArrayBuffer(0);\n }\n\n var abv = new Uint8Array(arraybuffer);\n var result = new Uint8Array(end - start);\n for (var i = start, ii = 0; i < end; i++, ii++) {\n result[ii] = abv[i];\n }\n return result.buffer;\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","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n\nvar stringFromCharCode = String.fromCharCode;\n\n// Taken from https://mths.be/punycode\nfunction ucs2decode(string) {\n\tvar output = [];\n\tvar counter = 0;\n\tvar length = string.length;\n\tvar value;\n\tvar extra;\n\twhile (counter < length) {\n\t\tvalue = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// high surrogate, and there is a next character\n\t\t\textra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n// Taken from https://mths.be/punycode\nfunction ucs2encode(array) {\n\tvar length = array.length;\n\tvar index = -1;\n\tvar value;\n\tvar output = '';\n\twhile (++index < length) {\n\t\tvalue = array[index];\n\t\tif (value > 0xFFFF) {\n\t\t\tvalue -= 0x10000;\n\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t}\n\t\toutput += stringFromCharCode(value);\n\t}\n\treturn output;\n}\n\nfunction checkScalarValue(codePoint, strict) {\n\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\tif (strict) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t}\n\treturn true;\n}\n/*--------------------------------------------------------------------------*/\n\nfunction createByte(codePoint, shift) {\n\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n}\n\nfunction encodeCodePoint(codePoint, strict) {\n\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\treturn stringFromCharCode(codePoint);\n\t}\n\tvar symbol = '';\n\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t}\n\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\tif (!checkScalarValue(codePoint, strict)) {\n\t\t\tcodePoint = 0xFFFD;\n\t\t}\n\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\tsymbol += createByte(codePoint, 6);\n\t}\n\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\tsymbol += createByte(codePoint, 12);\n\t\tsymbol += createByte(codePoint, 6);\n\t}\n\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\treturn symbol;\n}\n\nfunction utf8encode(string, opts) {\n\topts = opts || {};\n\tvar strict = false !== opts.strict;\n\n\tvar codePoints = ucs2decode(string);\n\tvar length = codePoints.length;\n\tvar index = -1;\n\tvar codePoint;\n\tvar byteString = '';\n\twhile (++index < length) {\n\t\tcodePoint = codePoints[index];\n\t\tbyteString += encodeCodePoint(codePoint, strict);\n\t}\n\treturn byteString;\n}\n\n/*--------------------------------------------------------------------------*/\n\nfunction readContinuationByte() {\n\tif (byteIndex >= byteCount) {\n\t\tthrow Error('Invalid byte index');\n\t}\n\n\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\tbyteIndex++;\n\n\tif ((continuationByte & 0xC0) == 0x80) {\n\t\treturn continuationByte & 0x3F;\n\t}\n\n\t// If we end up here, it’s not a continuation byte\n\tthrow Error('Invalid continuation byte');\n}\n\nfunction decodeSymbol(strict) {\n\tvar byte1;\n\tvar byte2;\n\tvar byte3;\n\tvar byte4;\n\tvar codePoint;\n\n\tif (byteIndex > byteCount) {\n\t\tthrow Error('Invalid byte index');\n\t}\n\n\tif (byteIndex == byteCount) {\n\t\treturn false;\n\t}\n\n\t// Read first byte\n\tbyte1 = byteArray[byteIndex] & 0xFF;\n\tbyteIndex++;\n\n\t// 1-byte sequence (no continuation bytes)\n\tif ((byte1 & 0x80) == 0) {\n\t\treturn byte1;\n\t}\n\n\t// 2-byte sequence\n\tif ((byte1 & 0xE0) == 0xC0) {\n\t\tbyte2 = readContinuationByte();\n\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\tif (codePoint >= 0x80) {\n\t\t\treturn codePoint;\n\t\t} else {\n\t\t\tthrow Error('Invalid continuation byte');\n\t\t}\n\t}\n\n\t// 3-byte sequence (may include unpaired surrogates)\n\tif ((byte1 & 0xF0) == 0xE0) {\n\t\tbyte2 = readContinuationByte();\n\t\tbyte3 = readContinuationByte();\n\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\tif (codePoint >= 0x0800) {\n\t\t\treturn checkScalarValue(codePoint, strict) ? codePoint : 0xFFFD;\n\t\t} else {\n\t\t\tthrow Error('Invalid continuation byte');\n\t\t}\n\t}\n\n\t// 4-byte sequence\n\tif ((byte1 & 0xF8) == 0xF0) {\n\t\tbyte2 = readContinuationByte();\n\t\tbyte3 = readContinuationByte();\n\t\tbyte4 = readContinuationByte();\n\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t(byte3 << 0x06) | byte4;\n\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\treturn codePoint;\n\t\t}\n\t}\n\n\tthrow Error('Invalid UTF-8 detected');\n}\n\nvar byteArray;\nvar byteCount;\nvar byteIndex;\nfunction utf8decode(byteString, opts) {\n\topts = opts || {};\n\tvar strict = false !== opts.strict;\n\n\tbyteArray = ucs2decode(byteString);\n\tbyteCount = byteArray.length;\n\tbyteIndex = 0;\n\tvar codePoints = [];\n\tvar tmp;\n\twhile ((tmp = decodeSymbol(strict)) !== false) {\n\t\tcodePoints.push(tmp);\n\t}\n\treturn ucs2encode(codePoints);\n}\n\nmodule.exports = {\n\tversion: '2.1.2',\n\tencode: utf8encode,\n\tdecode: utf8decode\n};\n","/*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n(function(chars){\n \"use strict\";\n\n exports.encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer),\n i, len = bytes.length, base64 = \"\";\n\n for (i = 0; i < len; i+=3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if ((len % 3) === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n\n return base64;\n };\n\n exports.decode = function(base64) {\n var bufferLength = base64.length * 0.75,\n len = base64.length, i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i+=4) {\n encoded1 = chars.indexOf(base64[i]);\n encoded2 = chars.indexOf(base64[i+1]);\n encoded3 = chars.indexOf(base64[i+2]);\n encoded4 = chars.indexOf(base64[i+3]);\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n };\n})(\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\");\n","/**\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 * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\n\nexports.encode = function (obj) {\n var str = '';\n\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length) str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n\n return str;\n};\n\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\n\nexports.decode = function(qs){\n var qry = {};\n var pairs = qs.split('&');\n for (var i = 0, l = pairs.length; i < l; i++) {\n var pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n};\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};","'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 * 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 = '