livekit-client 0.18.4-RC4 → 0.18.4-RC5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"livekit-client.esm.mjs","sources":["../node_modules/.pnpm/loglevel@1.8.0/node_modules/loglevel/lib/loglevel.js","../src/logger.ts","../node_modules/long/src/long.js","../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js","../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js","../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js","../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js","../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js","../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js","../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/longbits.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc/service.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/roots.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/index-minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/minimal.js","../src/proto/google/protobuf/timestamp.ts","../src/proto/livekit_models.ts","../src/proto/livekit_rtc.ts","../src/room/errors.ts","../src/room/events.ts","../src/room/stats.ts","../src/room/DeviceManager.ts","../src/version.ts","../src/room/utils.ts","../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","../src/room/track/Track.ts","../src/room/track/LocalTrack.ts","../src/room/track/utils.ts","../src/room/track/LocalAudioTrack.ts","../src/room/track/LocalVideoTrack.ts","../src/room/track/RemoteTrack.ts","../src/room/track/RemoteAudioTrack.ts","../node_modules/.pnpm/ts-debounce@3.0.0/node_modules/ts-debounce/dist/src/index.esm.js","../src/room/track/RemoteVideoTrack.ts","../src/room/track/TrackPublication.ts","../src/room/track/LocalTrackPublication.ts","../src/room/track/options.ts","../src/room/participant/Participant.ts","../src/room/participant/ParticipantTrackPermission.ts","../src/room/participant/publishUtils.ts","../src/room/track/RemoteTrackPublication.ts","../src/room/participant/RemoteParticipant.ts","../src/room/participant/LocalParticipant.ts","../src/api/RequestQueue.ts","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/utils.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/.pnpm/sdp@3.0.3/node_modules/sdp/sdp.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_core.js","../src/api/SignalClient.ts","../src/room/PCTransport.ts","../src/room/RTCEngine.ts","../src/room/track/defaults.ts","../src/room/Room.ts","../src/connect.ts","../src/room/track/create.ts"],"sourcesContent":["/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n",null,"module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.<number>} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.<number>} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.<number>} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.<number>} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.<number>} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.<number>} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n",null,null,null,null,null,null,null,null,null,"// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n",null,null,null,null,null,null,null,"function r(r,e,n){var i,t,o;void 0===e&&(e=50),void 0===n&&(n={});var a=null!=(i=n.isImmediate)&&i,u=null!=(t=n.callback)&&t,c=n.maxWait,v=Date.now(),l=[];function f(){if(void 0!==c){var r=Date.now()-v;if(r+e>=c)return c-r}return e}var d=function(){var e=[].slice.call(arguments),n=this;return new Promise(function(i,t){var c=a&&void 0===o;if(void 0!==o&&clearTimeout(o),o=setTimeout(function(){if(o=void 0,v=Date.now(),!a){var i=r.apply(n,e);u&&u(i),l.forEach(function(r){return(0,r.resolve)(i)}),l=[]}},f()),c){var d=r.apply(n,e);return u&&u(d),i(d)}l.push({resolve:i,reject:t})})};return d.cancel=function(r){void 0!==o&&clearTimeout(o),l.forEach(function(e){return(0,e.reject)(r)}),l=[]},d}export{r as debounce};\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {exact: dev.deviceId} :\n {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nexport function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== 'function') {\n console.error('shimGetDisplayMedia: getSourceId argument is not ' +\n 'a function');\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n return getSourceId(constraints)\n .then(sourceId => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video &&\n constraints.video.height;\n const frameRateSpecified = constraints.video &&\n constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: 'desktop',\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === 'function') {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (origGetStats.length === 0 && (arguments.length === 0 ||\n typeof selector !== 'function')) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function(response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach(report => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type: {\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[report.type] || report.type\n };\n report.names().forEach(name => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function(stats) {\n return new Map(Object.keys(stats).map(key => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_,\n selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function(response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck = initParameters &&\n 'sendEncodings' in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty('urls') &&\n server.hasOwnProperty('url')) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nconst SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substr(2, 10);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ?\n 'm=' + part : part).trim() + '\\r\\n');\n};\n\n// Returns the session description.\nSDPUtils.getDescription = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// Returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\n// Input can be prefixed with a=.\nSDPUtils.parseCandidate = function(line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n const candidate = {\n foundation: parts[0],\n component: {1: 'rtp', 2: 'rtcp'}[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\n// This does not include the a= prefix!\nSDPUtils.writeCandidate = function(candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// Sample input:\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substr(14).split(' ');\n};\n\n// Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n let parts = line.substr(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generates a rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses a extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n };\n};\n\n// Generates an extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri + '\\r\\n';\n};\n\n// Parses a fmtp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\nSDPUtils.parseFmtp = function(line) {\n const parsed = {};\n let kv;\n const parts = line.substr(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n const parts = line.substr(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' '),\n };\n};\n\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses a RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10),\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n};\n\n// Parse a ssrc-group line (see RFC 5576). Sample input:\n// a=ssrc-group:semantics 12 34\nSDPUtils.parseSsrcGroup = function(line) {\n const parts = line.substr(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// Returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substr(6);\n }\n};\n\n// Parses a fingerprint line for DTLS-SRTP.\nSDPUtils.parseFingerprint = function(line) {\n const parts = line.substr(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase(), // the definition is upper-case in RFC 4572.\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substr(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES parameters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' UDP/TLS/RTP/SAVPF ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(line => {\n const parts = line.substr(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red',\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\nSDPUtils.writeRtcpParameters = function(rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc +\n ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n};\n\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize,\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0]\n .substr(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize,\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n',\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n',\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 21);\n};\n\n// Write boiler plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substr(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substr(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substr(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' '),\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substr(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(nativeCandidate,\n parsedCandidate);\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n // Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimGetStats(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n",null,null,null,null,null,null,null],"names":["root","definition","module","exports","log","this","noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","trace","realMethod","undefined","replaceLoggingMethods","level","loggerName","i","length","methodFactory","debug","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","name","defaultLevel","factory","self","currentLevel","storageKey","persistLevelIfPossible","levelNum","levelName","toUpperCase","localStorage","ignore","document","cookie","encodeURIComponent","getPersistedLevel","storedLevel","location","indexOf","exec","slice","levels","clearPersistedLevel","removeItem","getLevel","setLevel","persist","SILENT","setDefaultLevel","resetLevel","enableAll","TRACE","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","TypeError","logger","_log","noConflict","getLoggers","log.getLogger","long","Long","wasm","WebAssembly","Instance","Module","Uint8Array","low","high","unsigned","__isLong__","Object","defineProperty","value","isLong","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","isNaN","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","Math","pow","fromString","str","radix","Error","RangeError","p","substring","radixToPower","result","size","min","parseInt","power","mul","add","fromValue","val","TWO_PWR_16_DBL","TWO_PWR_24_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","toNumber","toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","intval","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","eqz","isPositive","isOdd","isEven","equals","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","compare","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","b00","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","get_high","divide","divisor","div_u","div_s","approx","res","halfThis","shr","shl","toUnsigned","shru","max","floor","log2","ceil","LN2","delta","approxRes","approxRem","modulo","rem_u","rem_s","mod","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytes","toBytesLE","toBytesBE","hi","lo","fromBytes","bytes","fromBytesLE","fromBytesBE","aspromise","asPromise","fn","ctx","params","Array","offset","index","pending","Promise","executor","resolve","reject","callback","err","base64","string","n","charAt","b64","s64","encode","buffer","start","end","parts","chunk","j","t","b","push","String","fromCharCode","join","invalidEncoding","decode","c","charCodeAt","eventemitter","EventEmitter","_listeners","on","evt","off","listeners","splice","emit","args","float","Float32Array","f32","f8b","writeFloat_f32_cpy","buf","pos","writeFloat_f32_rev","writeFloatLE","writeFloatBE","readFloat_f32_cpy","readFloat_f32_rev","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","round","exponent","mantissa","writeUintLE","writeUintBE","readFloat_ieee754","readUint","uint","NaN","Infinity","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDouble_f64_cpy","readDouble_f64_rev","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","inquire_1","inquire","moduleName","eval","keys","utf8","utf8_length","len","read","utf8_read","write","utf8_write","c1","c2","pool_1","pool","alloc","SIZE","MAX","slab","pool_alloc","longbits","LongBits","util","require$$0","zero","zzEncode","zzDecode","zeroHash","from","isString","toLong","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","isNode","global","process","versions","node","emptyArray","freeze","emptyObject","isInteger","Number","isFinite","isObject","isset","isSet","prop","hasOwnProperty","isArray","Buffer","utf8Write","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","bits","merge","dst","src","ifNotSet","lcFirst","toLowerCase","newError","CustomError","message","properties","get","captureStackTrace","stack","create","constructor","ProtocolError","oneOfGetter","getOneOf","fieldNames","fieldMap","oneOfSetter","setOneOf","toJSONOptions","longs","enums","json","_configure","Buffer_from","encoding","allocUnsafe","Buffer_allocUnsafe","writer","Writer","BufferWriter","Op","next","State","head","tail","states","create_buffer_setup","create_buffer","create_array","subarray","_push","writeByte","writeVarint32","VarintOp","uint32","write_uint32","int32","write_int32","writeVarint64","sint32","write_sint32","uint64","write_uint64","int64","sint64","write_sint64","bool","write_bool","writeFixed32","fixed32","write_fixed32","sfixed32","fixed64","write_fixed64","sfixed64","write_float","double","write_double","writeBytes","set","writeBytes_set","writeBytes_for","write_bytes","write_string","fork","reset","ldelim","finish","BufferWriter_","writer_buffer","writeBytesBuffer","writeBytesBuffer_set","writeBytesBuffer_copy","copy","write_bytes_buffer","writeStringBuffer","write_string_buffer","byteLength","reader","Reader","BufferReader","indexOutOfRange","writeLength","create_typed_array","isBuffer","_slice","read_uint32_setup","read_uint32","read_int32","read_sint32","readLongVarint","read_bool","readFixed32_end","read_fixed32","read_sfixed32","readFixed64","read_float","read_double","read_bytes","read_string","skip","skipType","wireType","BufferReader_","read_int64","read_uint64","read_sint64","read_fixed64","read_sfixed64","reader_buffer","read_string_buffer","utf8Slice","service","Service","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","setTimeout","rpcCallback","response","endedByRPC","rpc","roots","protobuf","build","configure","minimal","globalThis","_m0.util","_m0.configure","ConnectionQuality","Room","_m0.Writer","_m0.Reader","R","Reflect","ReflectApply","target","receiver","ReflectOwnKeys","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","ProcessEmitWarning","warning","warn","NumberIsNaN","init","eventsModule","events","once","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","enumerable","arg","getPrototypeOf","setMaxListeners","_getMaxListeners","that","getMaxListeners","type","doError","error","er","context","handler","arrayClone","_addListener","prepend","m","existing","newListener","unshift","warned","w","emitter","count","addListener","prependListener","onceWrapper","fired","removeListener","wrapFn","_onceWrap","state","wrapped","prependOnceListener","list","position","originalListener","shift","spliceOne","removeAllListeners","key","unwrap","evlistener","unwrapListeners","rawListeners","listenerCount","eventNames","arr","pop","ret","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","addEventListener","wrapListener","removeEventListener","StreamState","ProtoStreamState","debounce","func","waitMilliseconds","options","timeoutId","isImmediate","maxWait","lastInvokeTime","Date","now","promises","nextInvokeTimeout","timeSinceLastInvocation","debouncedFunction","shouldCallNow","clearTimeout","forEach","cancel","reason","ProtoQuality","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","match","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","nativeAddEventListener","nativeEventName","cb","wrappedCallback","modifiedEvent","handleEvent","_eventMap","Map","nativeRemoveEventListener","has","unwrappedCb","delete","configurable","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","browser","version","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","supportsUnifiedPlan","RTCRtpTransceiver","compactObject","data","reduce","accumulator","isObj","isEmptyObject","assign","walkStats","stats","base","resultSet","id","endsWith","filterStats","track","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","logging","utils","shimGetUserMedia","browserDetails","mediaDevices","constraintsToChrome_","mandatory","optional","cc","r","ideal","exact","oldname_","prefix","oc","mix","advanced","shimConstraints_","constraints","JSON","parse","stringify","audio","remap","a","video","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","enumerateDevices","then","devices","filter","d","kind","dev","find","some","label","includes","deviceId","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","getUserMedia_","onSuccess","onError","getUserMedia","origGetUserMedia","cs","stream","getAudioTracks","getVideoTracks","getTracks","stop","DOMException","shimGetDisplayMedia","getSourceId","getDisplayMedia","sourceId","widthSpecified","width","heightSpecified","height","frameRateSpecified","frameRate","chromeMediaSource","chromeMediaSourceId","maxFrameRate","maxWidth","maxHeight","shimMediaStream","MediaStream","webkitMediaStream","shimOnTrack","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","getReceivers","event","Event","transceiver","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","pc","dtmf","_dtmf","createDTMFSender","_pc","getSenders","_senders","origAddTrack","addTrack","sender","origRemoveTrack","removeTrack","idx","origAddStream","addStream","origRemoveStream","removeStream","s","RTCRtpSender","origGetSenders","senders","shimGetStats","origGetStats","getStats","selector","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","timestamp","localcandidate","remotecandidate","names","stat","makeMapStats","map","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","MediaStreamTrack","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","streamId","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","signalingState","oldStream","replaceInternalStreamId","description","sdp","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","nativeMethod","methodObj","isLegacyCall","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","isLocal","streamid","hasTrack","shimPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","nativeGetUserMedia","getSettings","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","code","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","addTransceiver","setParametersPromises","initParameters","shouldPerformCheck","sendEncodings","encodingParam","ridRegex","rid","parseFloat","scaleResolutionDownBy","maxFramerate","getParameters","encodings","setParameters","catch","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","all","finally","shimCreateAnswer","origCreateAnswer","createAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","tracks","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","promise","withCallback","candidate","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","iceServers","newIceServers","server","urls","url","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","direction","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","AudioContext","webkitAudioContext","SDPUtils","generateIdentifier","random","substr","localCName","splitLines","blob","trim","split","line","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","foundation","component","protocol","priority","ip","address","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","codec","pt","preferredPayloadType","parseExtmap","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","ssrc","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","mid","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","tag","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","iceLite","parseRtpParameters","codecs","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","extension","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","maxBitrate","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","writeRtcpParameters","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","user","getDirection","getKind","isRejected","parseOLine","username","sessionVersion","netType","addressType","isValidSDP","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","toJSON","sdpMid","sdpMLineIndex","writable","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","isFirefox","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","dc","origDataChannelSend","send","readyState","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","completed","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimParameterlessSetLocalDescription","nativeSetLocalDescription","adapterFactory","shimChrome","shimFirefox","shimSafari","adapter","commonShim","chromeShim","browserShim","firefoxShim","safariShim"],"mappings":"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yI,CADzI,EAC4I,CAD5I,EAC+I,CAD/I,EACkJ,GADlJ,EACuJ,GADvJ,EAC4J,GAD5J,EACiK,EADjK,EACqK,GADrK,EAC0K,CAD1K,EAC6K,CAD7K,EACgL,CADhL,EACmL,GADnL,EACwL,GADxL,EAC6L,GAD7L,EACkM,EADlM,EACsM,GADtM,EAC2M,CAD3M,EAC8M,CAD9M,EACiN,CADjN,EACoN,GADpN,EACyN,GADzN,EAC8N,GAD9N,EACmO,EADnO,EACuO,GADvO,EAC4O,CAD5O,EAC+O,CAD/O,EACkP,CADlP,EACqP,GADrP,EAC0P,GAD1P,EAC+P,GAD/P,EACoQ,EADpQ,EACwQ,GADxQ,EAC6Q,GAD7Q,EACkR,GADlR,EACuR,GADvR,EAC4R,CAD5R,EAC+R,CAD/R,EACkS,EADlS,EACsS,GADtS,EAC2S,CAD3S,EAC8S,CAD9S,EACiT,CADjT,EACoT,CADpT,EACuT,EADvT,EAC2T,CAD3T,EAC8T,EAD9T,EACkU,EADlU,EACsU,CADtU,EACyU,CADzU,EAC4U,GAD5U,EACiV,EADjV,EACqV,CADrV,EACwV,GADxV,EAC6V,EAD7V,EACiW,CADjW,EACoW,GADpW,EACyW,EADzW,EAC6W,EAD7W,EACiX,GADjX,EACsX,GADtX,EAC2X,EAD3X,EAC+X,CAD/X,EACkY,GADlY,EACuY,EADvY,EAC2Y,CAD3Y,EAC8Y,GAD9Y,EACmZ,EADnZ,EACuZ,EADvZ,EAC2Z,GAD3Z,EACga,GADha,EACqa,GADra,EAC0a,EAD1a,EAC8a,CAD9a,EACib,EADjb,EACqb,EADrb,EACyb,GADzb,EAC8b,GAD9b,EACmc,EADnc,EACuc,CADvc,EAC0c,EAD1c,EAC8c,CAD9c,EACid,GADjd,EACsd,EADtd,EAC0d,EAD1d,EAC8d,CAD9d,EACie,CADje,EACoe,GADpe,EACye,EADze,EAC6e,CAD7e,EACgf,GADhf,EACqf,EADrf,EACyf,CADzf,EAC4f,GAD5f,EACigB,EADjgB,EACqgB,EADrgB,EACygB,GADzgB,EAC8gB,GAD9gB,EACmhB,EADnhB,EACuhB,CADvhB,EAC0hB,GAD1hB,EAC+hB,EAD/hB,EACmiB,CADniB,EACsiB,GADtiB,EAC2iB,EAD3iB,EAC+iB,EAD/iB,EACmjB,GADnjB,EACwjB,GADxjB,EAC6jB,GAD7jB,EACkkB,EADlkB,EACskB,CADtkB,EACykB,EADzkB,EAC6kB,EAD7kB,EACilB,GADjlB,EACslB,GADtlB,EAC2lB,EAD3lB,EAC+lB,CAD/lB,EACkmB,EADlmB,EACsmB,CADtmB,EACymB,GADzmB,EAC8mB,EAD9mB,EACknB,EADlnB,EACsnB,CADtnB,EACynB,CADznB,EAC4nB,GAD5nB,EACioB,EADjoB,EACqoB,CADroB,EACwoB,GADxoB,EAC6oB,EAD7oB,EACipB,CADjpB,EACopB,GADppB,EACypB,EADzpB,EAC6pB,EAD7pB,EACiqB,GADjqB,EACsqB,GADtqB,EAC2qB,EAD3qB,EAC+qB,CAD/qB,EACkrB,GADlrB,EACurB,EADvrB,EAC2rB,CAD3rB,EAC8rB,GAD9rB,EACmsB,EADnsB,EACusB,EADvsB,EAC2sB,GAD3sB,EACgtB,GADhtB,EACqtB,GADrtB,EAC0tB,EAD1tB,EAC8tB,CAD9tB,EACiuB,EADjuB,EACquB,EADruB,EACyuB,GADzuB,EAC8uB,GAD9uB,EACmvB,EADnvB,EACuvB,CADvvB,EAC0vB,EAD1vB,EAC8vB,CAD9vB,EACiwB,GADjwB,EACswB,EADtwB,EAC0wB,EAD1wB,EAC8wB,CAD9wB,EACixB,CADjxB,EACoxB,GADpxB,EACyxB,EADzxB,EAC6xB,CAD7xB,EACgyB,GADhyB,EACqyB,EADryB,EACyyB,CADzyB,EAC4yB,GAD5yB,EACizB,EADjzB,EACqzB,EADrzB,EACyzB,GADzzB,EAC8zB,GAD9zB,EACm0B,EADn0B,EACu0B,CADv0B,EAC00B,GAD10B,EAC+0B,EAD/0B,EACm1B,CADn1B,EACs1B,GADt1B,EAC21B,EAD31B,EAC+1B,EAD/1B,EACm2B,GADn2B,EACw2B,GADx2B,EAC62B,GAD72B,EACk3B,EADl3B,EACs3B,CADt3B,EACy3B,EADz3B,EAC63B,EAD73B,EACi4B,GADj4B,EACs4B,GADt4B,EAC24B,EAD34B,EAC+4B,CAD/4B,EACk5B,EADl5B,EACs5B,CADt5B,EACy5B,GADz5B,EAC85B,EAD95B,EACk6B,EADl6B,EACs6B,CADt6B,EACy6B,CADz6B,EAC46B,GAD56B,EACi7B,EADj7B,EACq7B,CADr7B,EACw7B,GADx7B,EAC67B,EAD77B,EACi8B,CADj8B,EACo8B,GADp8B,EACy8B,EADz8B,EAC68B,EAD78B,EACi9B,GADj9B,EACs9B,GADt9B,EAC29B,EAD39B,EAC+9B,CAD/9B,EACk+B,GADl+B,EACu+B,EADv+B,EAC2+B,CAD3+B,EAC8+B,GAD9+B,EACm/B,EADn/B,EACu/B,EADv/B,EAC2/B,GAD3/B,EACggC,GADhgC,EACqgC,GADrgC,EAC0gC,EAD1gC,EAC8gC,CAD9gC,EACihC,EADjhC,EACqhC,EADrhC,EACyhC,GADzhC,EAC8hC,GAD9hC,EACmiC,EADniC,EACuiC,CADviC,EAC0iC,EAD1iC,EAC8iC,CAD9iC,EACijC,GADjjC,EACsjC,EADtjC,CAAf,CAAvB,CAAzB,EAEF,EAFE,EAEEtF,OAFT,CAAA;AAGD,CAJD,CAIE,OAAOmB,CAAP,EAAU;AAEX,CAAA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8D,IAAT,CAAcM,GAAd,EAAmBC,IAAnB,EAAyBC,QAAzB,EAAmC;AAEnC;AACA;AACA;AACA;AACI,EAAA,IAAA,CAAKF,GAAL,GAAWA,GAAG,GAAG,CAAjB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,IAAL,GAAYA,IAAI,GAAG,CAAnB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,QAAL,GAAgB,CAAC,CAACA,QAAlB,CAAA;AACH;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AACAR,IAAI,CAAChE,SAA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"}
1
+ {"version":3,"file":"livekit-client.esm.mjs","sources":["../node_modules/.pnpm/loglevel@1.8.0/node_modules/loglevel/lib/loglevel.js","../src/logger.ts","../node_modules/long/src/long.js","../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js","../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js","../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js","../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js","../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js","../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js","../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/longbits.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc/service.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/roots.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/index-minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/minimal.js","../src/proto/google/protobuf/timestamp.ts","../src/proto/livekit_models.ts","../src/proto/livekit_rtc.ts","../src/room/errors.ts","../src/room/events.ts","../src/room/stats.ts","../src/room/DeviceManager.ts","../src/version.ts","../src/room/utils.ts","../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","../src/room/track/Track.ts","../src/room/track/LocalTrack.ts","../src/room/track/utils.ts","../src/room/track/LocalAudioTrack.ts","../src/room/track/LocalVideoTrack.ts","../src/room/track/RemoteTrack.ts","../src/room/track/RemoteAudioTrack.ts","../node_modules/.pnpm/ts-debounce@3.0.0/node_modules/ts-debounce/dist/src/index.esm.js","../src/room/track/RemoteVideoTrack.ts","../src/room/track/TrackPublication.ts","../src/room/track/LocalTrackPublication.ts","../src/room/track/options.ts","../src/room/participant/Participant.ts","../src/room/participant/ParticipantTrackPermission.ts","../src/room/participant/publishUtils.ts","../src/room/track/RemoteTrackPublication.ts","../src/room/participant/RemoteParticipant.ts","../src/room/participant/LocalParticipant.ts","../src/api/RequestQueue.ts","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/utils.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/.pnpm/sdp@3.0.3/node_modules/sdp/sdp.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_core.js","../src/api/SignalClient.ts","../src/room/PCTransport.ts","../src/room/RTCEngine.ts","../src/room/track/defaults.ts","../src/room/Room.ts","../src/connect.ts","../src/room/track/create.ts"],"sourcesContent":["/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n",null,"module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.<number>} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.<number>} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.<number>} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.<number>} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.<number>} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.<number>} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n",null,null,null,null,null,null,null,null,null,"// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n",null,null,null,null,null,null,null,"function r(r,e,n){var i,t,o;void 0===e&&(e=50),void 0===n&&(n={});var a=null!=(i=n.isImmediate)&&i,u=null!=(t=n.callback)&&t,c=n.maxWait,v=Date.now(),l=[];function f(){if(void 0!==c){var r=Date.now()-v;if(r+e>=c)return c-r}return e}var d=function(){var e=[].slice.call(arguments),n=this;return new Promise(function(i,t){var c=a&&void 0===o;if(void 0!==o&&clearTimeout(o),o=setTimeout(function(){if(o=void 0,v=Date.now(),!a){var i=r.apply(n,e);u&&u(i),l.forEach(function(r){return(0,r.resolve)(i)}),l=[]}},f()),c){var d=r.apply(n,e);return u&&u(d),i(d)}l.push({resolve:i,reject:t})})};return d.cancel=function(r){void 0!==o&&clearTimeout(o),l.forEach(function(e){return(0,e.reject)(r)}),l=[]},d}export{r as debounce};\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {exact: dev.deviceId} :\n {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nexport function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== 'function') {\n console.error('shimGetDisplayMedia: getSourceId argument is not ' +\n 'a function');\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n return getSourceId(constraints)\n .then(sourceId => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video &&\n constraints.video.height;\n const frameRateSpecified = constraints.video &&\n constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: 'desktop',\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === 'function') {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (origGetStats.length === 0 && (arguments.length === 0 ||\n typeof selector !== 'function')) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function(response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach(report => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type: {\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[report.type] || report.type\n };\n report.names().forEach(name => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function(stats) {\n return new Map(Object.keys(stats).map(key => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_,\n selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function(response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck = initParameters &&\n 'sendEncodings' in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty('urls') &&\n server.hasOwnProperty('url')) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nconst SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substr(2, 10);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ?\n 'm=' + part : part).trim() + '\\r\\n');\n};\n\n// Returns the session description.\nSDPUtils.getDescription = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// Returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\n// Input can be prefixed with a=.\nSDPUtils.parseCandidate = function(line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n const candidate = {\n foundation: parts[0],\n component: {1: 'rtp', 2: 'rtcp'}[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\n// This does not include the a= prefix!\nSDPUtils.writeCandidate = function(candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// Sample input:\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substr(14).split(' ');\n};\n\n// Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n let parts = line.substr(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generates a rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses a extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n };\n};\n\n// Generates an extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri + '\\r\\n';\n};\n\n// Parses a fmtp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\nSDPUtils.parseFmtp = function(line) {\n const parsed = {};\n let kv;\n const parts = line.substr(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n const parts = line.substr(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' '),\n };\n};\n\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses a RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10),\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n};\n\n// Parse a ssrc-group line (see RFC 5576). Sample input:\n// a=ssrc-group:semantics 12 34\nSDPUtils.parseSsrcGroup = function(line) {\n const parts = line.substr(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// Returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substr(6);\n }\n};\n\n// Parses a fingerprint line for DTLS-SRTP.\nSDPUtils.parseFingerprint = function(line) {\n const parts = line.substr(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase(), // the definition is upper-case in RFC 4572.\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substr(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES parameters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' UDP/TLS/RTP/SAVPF ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(line => {\n const parts = line.substr(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red',\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\nSDPUtils.writeRtcpParameters = function(rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc +\n ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n};\n\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize,\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0]\n .substr(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize,\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n',\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n',\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 21);\n};\n\n// Write boiler plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substr(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substr(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substr(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' '),\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substr(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(nativeCandidate,\n parsedCandidate);\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n // Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimGetStats(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n",null,null,null,null,null,null,null],"names":["root","definition","module","exports","log","this","noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","trace","realMethod","undefined","replaceLoggingMethods","level","loggerName","i","length","methodFactory","debug","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","name","defaultLevel","factory","self","currentLevel","storageKey","persistLevelIfPossible","levelNum","levelName","toUpperCase","localStorage","ignore","document","cookie","encodeURIComponent","getPersistedLevel","storedLevel","location","indexOf","exec","slice","levels","clearPersistedLevel","removeItem","getLevel","setLevel","persist","SILENT","setDefaultLevel","resetLevel","enableAll","TRACE","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","TypeError","logger","_log","noConflict","getLoggers","LogLevel","livekitLogger","info","setLogLevel","setLogExtension","extension","originalFactory","logLevel","rawMethod","configLevel","needLog","silent","msg","context","long","Long","wasm","WebAssembly","Instance","Module","Uint8Array","low","high","unsigned","__isLong__","Object","defineProperty","value","isLong","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","isNaN","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","Math","pow","fromString","str","radix","Error","RangeError","p","substring","radixToPower","result","size","min","parseInt","power","mul","add","fromValue","val","TWO_PWR_16_DBL","TWO_PWR_24_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","toNumber","toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","intval","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","eqz","isPositive","isOdd","isEven","equals","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","compare","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","b00","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","get_high","divide","divisor","div_u","div_s","approx","res","halfThis","shr","shl","toUnsigned","shru","max","floor","log2","ceil","LN2","delta","approxRes","approxRem","modulo","rem_u","rem_s","mod","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytes","toBytesLE","toBytesBE","hi","lo","fromBytes","bytes","fromBytesLE","fromBytesBE","aspromise","asPromise","fn","ctx","params","Array","offset","index","pending","Promise","executor","resolve","reject","callback","err","base64","string","n","charAt","b64","s64","encode","buffer","start","end","parts","chunk","j","t","b","push","String","fromCharCode","join","invalidEncoding","decode","c","charCodeAt","eventemitter","EventEmitter","_listeners","on","evt","off","listeners","splice","emit","args","float","Float32Array","f32","f8b","writeFloat_f32_cpy","buf","pos","writeFloat_f32_rev","writeFloatLE","writeFloatBE","readFloat_f32_cpy","readFloat_f32_rev","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","round","exponent","mantissa","writeUintLE","writeUintBE","readFloat_ieee754","readUint","uint","NaN","Infinity","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDouble_f64_cpy","readDouble_f64_rev","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","inquire_1","inquire","moduleName","eval","keys","utf8","utf8_length","len","read","utf8_read","write","utf8_write","c1","c2","pool_1","pool","alloc","SIZE","MAX","slab","pool_alloc","longbits","LongBits","util","require$$0","zero","zzEncode","zzDecode","zeroHash","from","isString","toLong","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","isNode","global","process","versions","node","emptyArray","freeze","emptyObject","isInteger","Number","isFinite","isObject","isset","isSet","prop","hasOwnProperty","isArray","Buffer","utf8Write","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","bits","merge","dst","src","ifNotSet","lcFirst","toLowerCase","newError","CustomError","message","properties","get","captureStackTrace","stack","create","constructor","ProtocolError","oneOfGetter","getOneOf","fieldNames","fieldMap","oneOfSetter","setOneOf","toJSONOptions","longs","enums","json","_configure","Buffer_from","encoding","allocUnsafe","Buffer_allocUnsafe","writer","Writer","BufferWriter","Op","next","State","head","tail","states","create_buffer_setup","create_buffer","create_array","subarray","_push","writeByte","writeVarint32","VarintOp","uint32","write_uint32","int32","write_int32","writeVarint64","sint32","write_sint32","uint64","write_uint64","int64","sint64","write_sint64","bool","write_bool","writeFixed32","fixed32","write_fixed32","sfixed32","fixed64","write_fixed64","sfixed64","write_float","double","write_double","writeBytes","set","writeBytes_set","writeBytes_for","write_bytes","write_string","fork","reset","ldelim","finish","BufferWriter_","writer_buffer","writeBytesBuffer","writeBytesBuffer_set","writeBytesBuffer_copy","copy","write_bytes_buffer","writeStringBuffer","write_string_buffer","byteLength","reader","Reader","BufferReader","indexOutOfRange","writeLength","create_typed_array","isBuffer","_slice","read_uint32_setup","read_uint32","read_int32","read_sint32","readLongVarint","read_bool","readFixed32_end","read_fixed32","read_sfixed32","readFixed64","read_float","read_double","read_bytes","read_string","skip","skipType","wireType","BufferReader_","read_int64","read_uint64","read_sint64","read_fixed64","read_sfixed64","reader_buffer","read_string_buffer","utf8Slice","service","Service","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","setTimeout","rpcCallback","response","endedByRPC","rpc","roots","protobuf","build","configure","minimal","globalThis","_m0","TrackType","trackTypeFromJSON","object","AUDIO","VIDEO","DATA","UNRECOGNIZED","trackTypeToJSON","TrackSource","trackSourceFromJSON","UNKNOWN","CAMERA","MICROPHONE","SCREEN_SHARE","SCREEN_SHARE_AUDIO","trackSourceToJSON","VideoQuality","videoQualityFromJSON","LOW","MEDIUM","HIGH","OFF","videoQualityToJSON","ConnectionQuality","connectionQualityFromJSON","POOR","GOOD","EXCELLENT","connectionQualityToJSON","ClientConfigSetting","clientConfigSettingFromJSON","UNSET","DISABLED","ENABLED","clientConfigSettingToJSON","ParticipantInfo_State","participantInfo_StateFromJSON","JOINING","JOINED","ACTIVE","DISCONNECTED","participantInfo_StateToJSON","DataPacket_Kind","dataPacket_KindFromJSON","RELIABLE","LOSSY","dataPacket_KindToJSON","ClientInfo_SDK","clientInfo_SDKFromJSON","JS","SWIFT","ANDROID","FLUTTER","GO","UNITY","clientInfo_SDKToJSON","createBaseRoom","sid","emptyTimeout","maxParticipants","creationTime","turnPassword","enabledCodecs","metadata","numParticipants","activeRecording","Room","v","Codec","input","tag","longToNumber","fromJSON","map","toJSON","fromPartial","_a","_b","_c","_d","_e","_f","_g","_h","_j","_k","createBaseCodec","mime","fmtpLine","createBaseParticipantPermission","canSubscribe","canPublish","canPublishData","hidden","recorder","ParticipantPermission","createBaseParticipantInfo","identity","state","tracks","joinedAt","version","permission","region","ParticipantInfo","TrackInfo","createBaseTrackInfo","type","muted","width","height","simulcast","disableDtx","source","layers","mimeType","mid","VideoLayer","_l","_m","createBaseVideoLayer","quality","bitrate","ssrc","createBaseDataPacket","kind","user","speaker","DataPacket","UserPacket","ActiveSpeakerUpdate","createBaseActiveSpeakerUpdate","speakers","SpeakerInfo","createBaseSpeakerInfo","active","createBaseUserPacket","participantSid","payload","destinationSids","bytesFromBase64","base64FromBytes","createBaseParticipantTracks","trackSids","ParticipantTracks","createBaseClientInfo","sdk","protocol","os","osVersion","deviceModel","browser","browserVersion","address","ClientInfo","createBaseClientConfiguration","video","screen","resumeConnection","ClientConfiguration","VideoConfiguration","createBaseVideoConfiguration","hardwareEncoder","atob","bin","arr","btoa","byte","MAX_SAFE_INTEGER","SignalTarget","signalTargetFromJSON","PUBLISHER","SUBSCRIBER","signalTargetToJSON","StreamState","streamStateFromJSON","PAUSED","streamStateToJSON","createBaseSignalRequest","offer","answer","trickle","addTrack","mute","subscription","trackSetting","leave","updateLayers","subscriptionPermission","syncState","simulate","SignalRequest","SessionDescription","TrickleRequest","AddTrackRequest","MuteTrackRequest","UpdateSubscription","UpdateTrackSettings","LeaveRequest","UpdateVideoLayers","SubscriptionPermission","SyncState","SimulateScenario","createBaseSignalResponse","update","trackPublished","speakersChanged","roomUpdate","connectionQuality","streamStateUpdate","subscribedQualityUpdate","subscriptionPermissionUpdate","refreshToken","trackUnpublished","SignalResponse","JoinResponse","ParticipantUpdate","TrackPublishedResponse","SpeakersChanged","RoomUpdate","ConnectionQualityUpdate","StreamStateUpdate","SubscribedQualityUpdate","SubscriptionPermissionUpdate","TrackUnpublishedResponse","createBaseAddTrackRequest","cid","createBaseTrickleRequest","candidateInit","target","createBaseMuteTrackRequest","createBaseJoinResponse","room","participant","otherParticipants","serverVersion","iceServers","subscriberPrimary","alternativeUrl","clientConfiguration","serverRegion","ICEServer","createBaseTrackPublishedResponse","track","createBaseTrackUnpublishedResponse","trackSid","createBaseSessionDescription","sdp","createBaseParticipantUpdate","participants","createBaseUpdateSubscription","subscribe","participantTracks","createBaseUpdateTrackSettings","disabled","createBaseLeaveRequest","canReconnect","createBaseUpdateVideoLayers","createBaseICEServer","urls","username","credential","createBaseSpeakersChanged","createBaseRoomUpdate","createBaseConnectionQualityInfo","score","ConnectionQualityInfo","createBaseConnectionQualityUpdate","updates","createBaseStreamStateInfo","StreamStateInfo","createBaseStreamStateUpdate","streamStates","createBaseSubscribedQuality","enabled","SubscribedQuality","createBaseSubscribedQualityUpdate","subscribedQualities","createBaseTrackPermission","allTracks","TrackPermission","createBaseSubscriptionPermission","allParticipants","trackPermissions","createBaseSubscriptionPermissionUpdate","allowed","createBaseSyncState","publishTracks","dataChannels","DataChannelInfo","createBaseDataChannelInfo","label","id","createBaseSimulateScenario","speakerUpdate","nodeFailure","migration","serverLeave","LivekitError","code","ConnectionError","TrackInvalidError","UnsupportedServer","UnexpectedConnectionState","PublishDataError","MediaDeviceFailure","getFailure","error","NotFound","PermissionDenied","DeviceInUse","Other","RoomEvent","ParticipantEvent","EngineEvent","TrackEvent","monitorFrequency","computeBitrate","currentStats","prevStats","bytesNow","bytesPrev","bytesReceived","bytesSent","timestamp","defaultId","DeviceManager","getInstance","instance","getDevices","requestPermissions","devices","mediaDevices","enumerateDevices","isDummyDeviceOrEmpty","some","device","noLabel","isRelevant","permissionsToAcquire","audio","getUserMedia","filter","deviceId","defaultDevice","groupId","temp","normalizeDeviceId","find","d","mediaDeviceKinds","protocolVersion","separator","unpackStreamId","packed","split","substr","sleep","duration","isFireFox","isWeb","isSafari","isMobile","roDispatchCallback","entries","entry","handleResize","ioDispatchCallback","handleVisibilityChanged","resizeObserver","getResizeObserver","ResizeObserver","intersectionObserver","getIntersectionObserver","IntersectionObserver","rootMargin","getClientInfo","emptyMediaStreamTrack","getEmptyMediaStreamTrack","canvas","createElement","emptyStream","captureStream","getTracks","R","Reflect","ReflectApply","receiver","ReflectOwnKeys","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","ProcessEmitWarning","warning","warn","NumberIsNaN","init","eventsModule","events","once","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","enumerable","arg","getPrototypeOf","setMaxListeners","_getMaxListeners","that","getMaxListeners","doError","er","handler","arrayClone","_addListener","prepend","m","existing","newListener","unshift","warned","w","emitter","count","addListener","prependListener","onceWrapper","fired","removeListener","wrapFn","_onceWrap","wrapped","prependOnceListener","list","position","originalListener","shift","spliceOne","removeAllListeners","key","unwrap","evlistener","unwrapListeners","rawListeners","listenerCount","eventNames","pop","ret","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","addEventListener","wrapListener","removeEventListener","recycledElements","Track","mediaTrack","attachedElements","isMuted","_currentBitrate","appVisibilityChangedListener","handleAppVisibilityChanged","mediaStreamTrack","Source","Unknown","isInBackground","visibilityState","currentBitrate","attach","element","elementType","Kind","Video","forEach","parentElement","includes","attachToElement","HTMLAudioElement","play","then","AudioPlaybackStarted","catch","AudioPlaybackFailed","ElementAttached","detach","detachTrack","idx","recycleElement","ElementDetached","detached","elm","stop","enable","disable","shouldCache","pause","mediaStream","srcObject","MediaStream","existingTracks","getAudioTracks","getVideoTracks","et","removeTrack","HTMLVideoElement","autoplay","playsInline","kindToProto","k","Audio","kindFromProto","sourceToProto","s","Camera","Microphone","ScreenShare","ScreenShareAudio","sourceFromProto","streamStateFromProto","ProtoStreamState","Active","Paused","LocalTrack","constraints","_isUpstreamPaused","handleEnded","reacquireTrack","Ended","getConstraints","wasMuted","dimensions","getSettings","isUpstreamPaused","getDeviceId","setTrackMuted","unmute","replaceTrack","sender","el","restart","streamConstraints","newTrack","Muted","Unmuted","needsReAcquisition","readyState","pauseUpstream","UpstreamPaused","resumeUpstream","UpstreamResumed","mergeDefaultOptions","options","audioDefaults","videoDefaults","opts","mergeObjectWithoutOverwriting","mainObject","objectToMerge","constraintsForOptions","videoOptions","resolution","detectSilence","timeOffset","getNewAudioContext","analyser","createAnalyser","fftSize","bufferLength","frequencyBinCount","dataArray","createMediaStreamSource","connect","getByteTimeDomainData","someNoise","sample","close","AudioContext","webkitAudioContext","LocalAudioTrack","stopOnMute","monitorSender","stats","getSenderStats","checkForSilence","setDeviceId","restartTrack","startMonitor","getStats","audioStats","streamId","packetsSent","packetsLost","roundTripTime","jitter","trackIsSilent","AudioSilenceDetected","LocalVideoTrack","statsMap","Map","rid","totalBitrate","prev","isSimulcast","getParameters","encodings","signalClient","items","vs","frameHeight","frameWidth","firCount","pliCount","nackCount","framesSent","retransmittedPacketsSent","qualityLimitationReason","qualityLimitationResolutionChanges","r","remoteId","setPublishingQuality","maxQuality","qualities","q","setPublishingLayers","hasChanged","videoQualityForRid","subscribedQuality","scaleResolutionDownBy","maxBitrate","maxFrameRate","setParameters","videoLayersFromEncodings","scale","RemoteTrack","streamState","setMuted","setMediaStream","stream","onremovetrack","monitorReceiver","RemoteAudioTrack","getReceiverStats","elementVolume","setVolume","volume","getVolume","receiverStats","concealedSamples","concealmentEvents","silentConcealedSamples","silentConcealmentEvents","totalAudioEnergy","totalSamplesDuration","debounce","func","waitMilliseconds","timeoutId","isImmediate","maxWait","lastInvokeTime","Date","now","promises","nextInvokeTimeout","timeSinceLastInvocation","debouncedFunction","shouldCallNow","clearTimeout","cancel","reason","REACTION_DELAY","RemoteVideoTrack","adaptiveStreamSettings","elementInfos","isIntersecting","elementInfo","visible","visibilityChangedAt","updateVisibility","debouncedHandleResize","updateDimensions","isAdaptiveStream","observe","detachedElements","stopObservingElement","framesDecoded","framesDropped","framesReceived","packetsReceived","unobserve","lastVisibilityChange","reduce","isVisible","lastVisible","VisibilityChanged","maxWidth","maxHeight","pixelDensity","pixelDensityValue","devicePixelRatio","currentElementWidth","clientWidth","currentElementHeight","clientHeight","lastDimensions","VideoDimensionsChanged","TrackPublication","metadataMuted","handleMuted","handleUnmuted","trackName","setTrack","isEnabled","isSubscribed","audioTrack","videoTrack","updateInfo","simulcasted","trackInfo","SubscriptionStatus","LocalTrackPublication","ti","handleTrackEnded","VideoPreset","maxFramerate","frameRate","aspectRatio","AudioPresets","telephone","speech","music","VideoPresets","h90","h180","h216","h360","h540","h720","h1080","h1440","h2160","qvga","vga","qhd","hd","fhd","VideoPresets43","h120","h240","h480","ScreenSharePresets","h360fps3","h720fps5","h720fps15","h1080fps15","h1080fps30","hd_8","hd_15","fhd_15","fhd_30","qualityFromProto","ProtoQuality","Excellent","Good","Poor","Participant","audioLevel","isSpeaking","_connectionQuality","audioTracks","videoTracks","values","getTrack","pub","getTrackByName","isCameraEnabled","isMicrophoneEnabled","isScreenShareEnabled","participantInfo","setMetadata","setPermissions","md","changed","prevMetadata","MetadataChanged","ParticipantMetadataChanged","permissions","setIsSpeaking","speaking","lastSpokeAt","IsSpeakingChanged","setConnectionQuality","prevQuality","ConnectionQualityChanged","addTrackPublication","publication","TrackMuted","TrackUnmuted","trackPermissionToProto","perms","allowAll","allowedTrackSids","mediaTrackToLocalTrack","presets169","presets43","presetsScreenShare","defaultSimulcastPresets169","defaultSimulcastPresets43","computeDefaultScreenShareSimulcastPresets","fromPreset","fps","videoRids","computeVideoEncodings","isScreenShare","videoEncoding","screenShareEncoding","useSimulcast","determineAppropriateEncoding","original","presets","sortPresets","screenShareSimulcastLayers","defaultSimulcastLayers","videoSimulcastLayers","midPreset","lowPreset","encodingsFromPresets","presetsForResolution","preset","aspect","abs","sort","a","aEnc","bEnc","RemoteTrackPublication","_allowed","currentVideoQuality","handleVisibilityChange","emitTrackUpdate","handleVideoDimensionsChange","videoDimensions","setSubscribed","subscribed","subscriptionStatus","Unsubscribed","NotAllowed","Subscribed","setEnabled","isManualOperationAllowed","setVideoQuality","setVideoDimensions","videoQuality","settings","UpdateSettings","RemoteParticipant","fromParticipantInfo","pi","rp","sendUpdateTrackSettings","pt","sendUpdateSubscription","TrackUnsubscribed","audioPublication","addSubscribedMediaTrack","triesLeft","getTrackPublication","startsWith","TrackSubscriptionFailed","isVideo","TrackSubscribed","hasMetadata","alreadyHasMetadata","validTracks","newTracks","TrackPublished","has","unpublishTrack","sendUnpublish","delete","TrackUnpublished","event","LocalParticipant","engine","pendingPublishing","Set","onTrackUnmuted","onTrackMuted","updateMuteStatus","onTrackUpstreamPaused","onTrackUpstreamResumed","handleSubscribedQualityUpdate","roomOptions","dynacast","handleLocalTrackUnpublished","unpublished","onTrackUnpublish","client","onRemoteMuteChanged","onSubscribedQualityUpdate","onLocalTrackUnpublished","lastCameraError","cameraError","lastMicrophoneError","microphoneError","setCameraEnabled","setTrackEnabled","setMicrophoneEnabled","setScreenShareEnabled","prevPermissions","ParticipantPermissionsChanged","localTrack","createTracks","createScreenTracks","publishTrack","MediaDevicesError","enableCameraAndMicrophone","all","audioCaptureDefaults","videoCaptureDefaults","isAudio","trackConstraints","conOrBool","videoConstraints","getDisplayMedia","screenVideo","localTracks","screenAudio","_objectSpread","publishDefaults","MediaStreamTrack","existingPublication","stopMicTrackOnMute","req","dtx","audioBitrate","publisher","transceiverInit","direction","sendEncodings","transceiver","pc","addTransceiver","negotiate","videoCodec","setPreferredCodec","LocalTrackPublished","stopOnUnpublish","getPublicationForTrack","stopLocalTrackOnUnpublish","senders","getSenders","LocalTrackUnpublished","unpublishTracks","publications","publishData","data","destination","dest","packet","sendDataPacket","setTrackSubscriptionPermissions","allParticipantsAllowed","participantTrackPermissions","sendUpdateSubscriptionPermissions","RTCRtpSender","cap","getCapabilities","selected","codecs","codec","matchesVideoCodec","sdpFmtpLine","setCodecPreferences","publishedTracksInfo","infos","dataChannelsInfo","getInfo","dc","dataChannelForKind","Queue","queue","running","enqueue","cb","dequeue","run","isRunning","isEmpty","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","match","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","handleEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","configurable","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","supportsUnifiedPlan","RTCRtpTransceiver","compactObject","accumulator","isObj","isEmptyObject","assign","walkStats","base","resultSet","endsWith","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","logging","utils","shimGetUserMedia","browserDetails","constraintsToChrome_","mandatory","optional","cc","ideal","exact","oldname_","prefix","oc","mix","advanced","shimConstraints_","JSON","parse","stringify","remap","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","dev","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","getUserMedia_","onSuccess","onError","origGetUserMedia","cs","DOMException","shimGetDisplayMedia","getSourceId","sourceId","widthSpecified","heightSpecified","frameRateSpecified","chromeMediaSource","chromeMediaSourceId","shimMediaStream","webkitMediaStream","shimOnTrack","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","getReceivers","Event","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","dtmf","_dtmf","createDTMFSender","_pc","_senders","origAddTrack","origRemoveTrack","origAddStream","addStream","origRemoveStream","removeStream","origGetSenders","shimGetStats","origGetStats","selector","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","localcandidate","remotecandidate","names","stat","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","signalingState","oldStream","replaceInternalStreamId","description","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","nativeMethod","methodObj","isLegacyCall","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","isLocal","streamid","hasTrack","shimPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","nativeGetUserMedia","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","setParametersPromises","initParameters","shouldPerformCheck","encodingParam","ridRegex","parseFloat","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","finally","shimCreateAnswer","origCreateAnswer","createAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","promise","withCallback","candidate","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","server","url","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","SDPUtils","generateIdentifier","random","localCName","splitLines","blob","trim","line","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","foundation","component","priority","ip","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","preferredPayloadType","parseExtmap","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","iceLite","parseRtpParameters","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","writeRtcpParameters","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","sdpMid","sdpMLineIndex","writable","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","isFirefox","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","origDataChannelSend","send","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","completed","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimParameterlessSetLocalDescription","nativeSetLocalDescription","adapterFactory","shimChrome","shimFirefox","shimSafari","adapter","commonShim","chromeShim","browserShim","firefoxShim","safariShim","passThroughQueueSignals","canPassThroughQueue","canPass","SignalClient","useJSON","isConnected","isReconnecting","requestQueue","token","autoSubscribe","publishOnly","adaptiveStream","reconnect","clientInfo","createConnectionParams","ws","WebSocket","binaryType","onerror","ev","resp","fetch","ok","text","handleWSError","onopen","onmessage","ArrayBuffer","signalLatency","handleSignalResponse","onclose","onClose","sendOffer","sendRequest","toProtoSessionDescription","sendAnswer","sendIceCandidate","sendMuteTrack","sendAddTrack","sendSyncState","sync","sendUpdateVideoLayers","sendSimulateScenario","scenario","sendLeave","fromQueue","canQueue","sd","fromProtoSessionDescription","onAnswer","onOffer","onTrickle","onParticipantUpdate","onLocalTrackPublished","onSpeakersChanged","onLeave","onRoomUpdate","onConnectionQuality","onStreamStateUpdate","onSubscriptionPermissionUpdate","onTokenRefresh","setReconnected","rsd","URLSearchParams","PCTransport","config","pendingCandidates","restartingIce","renegotiate","createAndSendOffer","isICEConnected","remoteDescription","iceRestart","currentSD","lossyDataChannel","reliableDataChannel","maxReconnectRetries","minReconnectWait","maxReconnectDuration","maxICEConnectTimeout","PCState","RTCEngine","rtcConfig","pcState","New","isClosed","pendingTrackResolvers","hasPublished","reconnectAttempts","reconnectStart","fullReconnectOnNext","handleDataChannel","reliableDCSub","lossyDCSub","handleDataMessage","Blob","arrayBuffer","dp","ActiveSpeakersUpdate","DataPacketReceived","handleDataError","currentTarget","channelKind","maxRetransmits","ErrorEvent","handleDisconnect","connection","delay","restartConnection","recoverable","SignalReconnectError","Disconnected","signalOpts","joinResponse","subscriber","dataSubscriberReadyState","connectedServerAddress","connectedServerAddr","rtcIceServers","iceServer","rtcIceServer","continualGatheringPolicy","TransportsCreated","onicecandidate","primaryPC","ondatachannel","onconnectionstatechange","getConnectedAddress","shouldEmit","Connected","ontrack","MediaTrackAdded","onaddstream","lossyDC","ordered","reliableDC","RTCSdpType","Restarting","waitForPCConnected","Restarted","Resuming","SignalResumed","Resumed","startTime","Reconnecting","ensurePublisherConnected","targetChannel","endTime","getTime","selectedCandidatePairId","candidatePairs","candidates","selectedID","remoteCandidateId","autoGainControl","channelCount","echoCancellation","noiseSuppression","RoomState","activeSpeakers","audioEnabled","createEngine","acquireAudioContext","connOptions","localParticipant","getOrCreateParticipant","StateChanged","connectTimeout","onBeforeUnload","handleDeviceChange","disconnect","stopTracks","handleRestarting","handleParticipantDisconnected","handleRestarted","Reconnected","handleParticipantUpdates","localPubs","participantInfos","remoteParticipant","isNewParticipant","ParticipantConnected","handleActiveSpeakersUpdate","seenSids","ActiveSpeakersChanged","handleSpeakersChanged","speakerUpdates","lastSpeakers","handleStreamStateUpdate","TrackStreamStateChanged","handleSubscriptionPermissionUpdate","TrackSubscriptionPermissionChanged","handleDataPacket","userPacket","DataReceived","handleAudioPlaybackStarted","canPlaybackAudio","AudioPlaybackStatusChanged","handleAudioPlaybackFailed","MediaDevicesChanged","handleRoomUpdate","RoomMetadataChanged","handleConnectionQualityUpdate","expSignalLatency","onTrackAdded","updateSubscriptions","getLocalDevices","getParticipantByIdentity","simulateScenario","startAudio","elements","switchActiveDevice","setSinkId","participantId","shouldStopTracks","clear","audioContext","ParticipantDisconnected","createParticipant","trackPublication","localDescription","previousSdp","sendUnsub","autoManageVideo","publishAudio","publishVideo","errKind","audioErr","createLocalTracks","createLocalVideoTrack","createLocalAudioTrack","createLocalScreenTracks"],"mappings":"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F,CADtF,EACyF,GADzF,EAC8F,GAD9F,EACmG,GADnG,EACwG,CADxG,EAC2G,CAD3G,EAC8G,CAD9G,EACiH,GADjH,EACsH,GADtH,EAC2H,GAD3H,EACgI,EADhI,EACoI,GADpI,EACyI,CADzI,EAC4I,CAD5I,EAC+I,CAD/I,EACkJ,GADlJ,EACuJ,GADvJ,EAC4J,GAD5J,EACiK,EADjK,EACqK,GADrK,EAC0K,CAD1K,EAC6K,CAD7K,EACgL,CADhL,EACmL,GADnL,EACwL,GADxL,EAC6L,GAD7L,EACkM,EADlM,EACsM,GADtM,EAC2M,CAD3M,EAC8M,CAD9M,EACiN,CADjN,EACoN,GADpN,EACyN,GADzN,EAC8N,GAD9N,EACmO,EADnO,EACuO,GADvO,EAC4O,CAD5O,EAC+O,CAD/O,EACkP,CADlP,EACqP,GADrP,EAC0P,GAD1P,EAC+P,GAD/P,EACoQ,EADpQ,EACwQ,GADxQ,EAC6Q,GAD7Q,EACkR,GADlR,EACuR,GADvR,EAC4R,CAD5R,EAC+R,CAD/R,EACkS,EADlS,EACsS,GADtS,EAC2S,CAD3S,EAC8S,CAD9S,EACiT,CADjT,EACoT,CADpT,EACuT,EADvT,EAC2T,CAD3T,EAC8T,EAD9T,EACkU,EADlU,EACsU,CADtU,EACyU,CADzU,EAC4U,GAD5U,EACiV,EADjV,EACqV,CADrV,EACwV,GADxV,EAC6V,EAD7V,EACiW,CADjW,EACoW,GADpW,EACyW,EADzW,EAC6W,EAD7W,EACiX,GADjX,EACsX,GADtX,EAC2X,EAD3X,EAC+X,CAD/X,EACkY,GADlY,EACuY,EADvY,EAC2Y,CAD3Y,EAC8Y,GAD9Y,EACmZ,EADnZ,EACuZ,EADvZ,EAC2Z,GAD3Z,EACga,GADha,EACqa,GADra,EAC0a,EAD1a,EAC8a,CAD9a,EACib,EADjb,EACqb,EADrb,EACyb,GADzb,EAC8b,GAD9b,EACmc,EADnc,EACuc,CADvc,EAC0c,EAD1c,EAC8c,CAD9c,EACid,GADjd,EACsd,EADtd,EAC0d,EAD1d,EAC8d,CAD9d,EACie,CADje,EACoe,GADpe,EACye,EADze,EAC6e,CAD7e,EACgf,GADhf,EACqf,EADrf,EACyf,CADzf,EAC4f,GAD5f,EACigB,EADjgB,EACqgB,EADrgB,EACygB,GADzgB,EAC8gB,GAD9gB,EACmhB,EADnhB,EACuhB,CADvhB,EAC0hB,GAD1hB,EAC+hB,EAD/hB,EACmiB,CADniB,EACsiB,GADtiB,EAC2iB,EAD3iB,EAC+iB,EAD/iB,EACmjB,GADnjB,EACwjB,GADxjB,EAC6jB,GAD7jB,EACkkB,EADlkB,EACskB,CADtkB,EACykB,EADzkB,EAC6kB,EAD7kB,EACilB,GADjlB,EACslB,GADtlB,EAC2lB,EAD3lB,EAC+lB,CAD/lB,EACkmB,EADlmB,EACsmB,CADtmB,EACymB,GADzmB,EAC8mB,EAD9mB,EACknB,EADlnB,EACsnB,CADtnB,EACynB,CADznB,EAC4nB,GAD5nB,EACioB,EADjoB,EACqoB,CADroB,EACwoB,GADxoB,EAC6oB,EAD7oB,EACipB,CADjpB,EACopB,GADppB,EACypB,EADzpB,EAC6pB,EAD7pB,EACiqB,GADjqB,EACsqB,GADtqB,EAC2qB,EAD3qB,EAC+qB,CAD/qB,EACkrB,GADlrB,EACurB,EADvrB,EAC2rB,CAD3rB,EAC8rB,GAD9rB,EACmsB,EADnsB,EACusB,EADvsB,EAC2sB,GAD3sB,EACgtB,GADhtB,EACqtB,GADrtB,EAC0tB,EAD1tB,EAC8tB,CAD9tB,EACiuB,EADjuB,EACquB,EADruB,EACyuB,GADzuB,EAC8uB,GAD9uB,EACmvB,EADnvB,EACuvB,CADvvB,EAC0vB,EAD1vB,EAC8vB,CAD9vB,EACiwB,GADjwB,EACswB,EADtwB,EAC0wB,EAD1wB,EAC8wB,CAD9wB,EACixB,CADjxB,EACoxB,GADpxB,EACyxB,EADzxB,EAC6xB,CAD7xB,EACgyB,GADhyB,EACqyB,EADryB,EACyyB,CADzyB,EAC4yB,GAD5yB,EACizB,EADjzB,EACqzB,EADrzB,EACyzB,GADzzB,EAC8zB,GAD9zB,EACm0B,EADn0B,EACu0B,CADv0B,EAC00B,GAD10B,EAC+0B,EAD/0B,EACm1B,CADn1B,EACs1B,GADt1B,EAC21B,EAD31B,EAC+1B,EAD/1B,EACm2B,GADn2B,EACw2B,GADx2B,EAC62B,GAD72B,EACk3B,EADl3B,EACs3B,CADt3B,EACy3B,EADz3B,EAC63B,EAD73B,EACi4B,GADj4B,EACs4B,GADt4B,EAC24B,EAD34B,EAC+4B,CAD/4B,EACk5B,EADl5B,EACs5B,CADt5B,EACy5B,GADz5B,EAC85B,EAD95B,EACk6B,EADl6B,EACs6B,CADt6B,EACy6B,CADz6B,EAC46B,GAD56B,EACi7B,EADj7B,EACq7B,CADr7B,EACw7B,GADx7B,EAC67B,EAD77B,EACi8B,CADj8B,EACo8B,GADp8B,EACy8B,EADz8B,EAC68B,EAD78B,EACi9B,GADj9B,EACs9B,GADt9B,EAC29B,EAD39B,EAC+9B,CAD/9B,EACk+B,GADl+B,EACu+B,EADv+B,EAC2+B,CAD3+B,EAC8+B,GAD9+B,EACm/B,EADn/B,EACu/B,EADv/B,EAC2/B,GAD3/B,EACggC,GADhgC,EACqgC,GADrgC,EAC0gC,EAD1gC,EAC8gC,CAD9gC,EACihC,EADjhC,EACqhC,EADrhC,EACyhC,GADzhC,EAC8hC,GAD9hC,EACmiC,EADniC,EACuiC,CADviC,EAC0iC,EAD1iC,EAC8iC,CAD9iC,EACijC,GADjjC,EACsjC,EADtjC,CAAf,CAAvB,CAAzB,EAEF,EAFE,EAEEnG,OAFT,CAAA;AAGD,CAJD,CAIE,OAAOmB,CAAP,EAAU;AAEX,CAAA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2E,IAAT,CAAcM,GAAd,EAAmBC,IAAnB,EAAyBC,QAAzB,EAAmC;AAEnC;AACA;AACA;AACA;AACI,EAAA,IAAA,CAAKF,GAAL,GAAWA,GAAG,GAAG,CAAjB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,IAAL,GAAYA,IAAI,GAAG,CAAnB,CAAA;AAEJ;AACA;AACA;AACA;;AACI,EAAA,IAAA,CAAKC,QAAL,GAAgB,CAAC,CAACA,QA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"}