0a8623dc24d117144146ce221bbbe7b1.json 1.3 MB

1
  1. {"remainingRequest":"D:\\dm\\HHHT-fbky\\hhht_fbky\\node_modules\\thread-loader\\dist\\cjs.js!D:\\dm\\HHHT-fbky\\hhht_fbky\\node_modules\\babel-loader\\lib\\index.js!D:\\dm\\HHHT-fbky\\hhht_fbky\\src\\assets\\js\\tr_webrtc.min.js","dependencies":[{"path":"D:\\dm\\HHHT-fbky\\hhht_fbky\\src\\assets\\js\\tr_webrtc.min.js","mtime":1730357055000},{"path":"D:\\dm\\HHHT-fbky\\hhht_fbky\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1740991511838},{"path":"D:\\dm\\HHHT-fbky\\hhht_fbky\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1740991510396},{"path":"D:\\dm\\HHHT-fbky\\hhht_fbky\\node_modules\\babel-loader\\lib\\index.js","mtime":1740991520080}],"contextDependencies":[],"result":["import \"regenerator-runtime/runtime\";\nimport \"core-js/modules/es6.string.ends-with\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.array.some\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.weak-map\";\nimport _asyncToGenerator from \"D:\\\\dm\\\\HHHT-fbky\\\\hhht_fbky\\\\node_modules\\\\@babel\\\\runtime-corejs2/helpers/esm/asyncToGenerator\";\nimport \"core-js/modules/es6.function.bind\";\nimport \"core-js/modules/es6.object.freeze\";\nimport \"core-js/modules/es6.typed.uint16-array\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.define-properties\";\nimport \"core-js/modules/es6.object.define-property\";\nimport \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.array.filter\";\nimport \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.date.now\";\nimport \"core-js/modules/es6.string.trim\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.array.index-of\";\nimport _typeof2 from \"D:\\\\dm\\\\HHHT-fbky\\\\hhht_fbky\\\\node_modules\\\\@babel\\\\runtime-corejs2/helpers/esm/typeof\";\nvar TRjQuery;\n\n(function (global, factory) {\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof2(module)) === \"object\" && _typeof2(module.exports) === \"object\") {\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n }\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n var arr = [];\n var _slice = arr.slice;\n var concat = arr.concat;\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var support = {};\n\n var document = window.document,\n version = \"2.1.4\",\n jQuery = function jQuery(selector, context) {\n return new jQuery.fn.init(selector, context);\n },\n rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n rmsPrefix = /^-ms-/,\n rdashAlpha = /-([\\da-z])/gi,\n fcamelCase = function fcamelCase(all, letter) {\n return letter.toUpperCase();\n };\n\n jQuery.fn = jQuery.prototype = {\n jquery: version,\n constructor: jQuery,\n selector: \"\",\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n get: function get(num) {\n return num != null ? num < 0 ? this[num + this.length] : this[num] : _slice.call(this);\n },\n pushStack: function pushStack(elems) {\n var ret = jQuery.merge(this.constructor(), elems);\n ret.prevObject = this;\n ret.context = this.context;\n return ret;\n },\n each: function each(callback, args) {\n return jQuery.each(this, callback, args);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor(null);\n },\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n if (typeof target === \"boolean\") {\n deep = target;\n target = arguments[i] || {};\n i++;\n }\n\n if (_typeof2(target) !== \"object\" && !jQuery.isFunction(target)) {\n target = {};\n }\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n if ((options = arguments[i]) != null) {\n for (name in options) {\n src = target[name];\n copy = options[name];\n\n if (target === copy) {\n continue;\n }\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && jQuery.isArray(src) ? src : [];\n } else {\n clone = src && jQuery.isPlainObject(src) ? src : {};\n }\n\n target[name] = jQuery.extend(deep, clone, copy);\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n return target;\n };\n\n jQuery.extend({\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isFunction: function isFunction(obj) {\n return jQuery.type(obj) === \"function\";\n },\n isArray: Array.isArray,\n isWindow: function isWindow(obj) {\n return obj != null && obj === obj.window;\n },\n isNumeric: function isNumeric(obj) {\n return !jQuery.isArray(obj) && obj - parseFloat(obj) + 1 >= 0;\n },\n isPlainObject: function isPlainObject(obj) {\n if (jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow(obj)) {\n return false;\n }\n\n if (obj.constructor && !hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n\n return true;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n type: function type(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n return _typeof2(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof2(obj);\n },\n globalEval: function globalEval(code) {\n var script,\n indirect = eval;\n code = jQuery.trim(code);\n\n if (code) {\n if (code.indexOf(\"use strict\") === 1) {\n script = document.createElement(\"script\");\n script.text = code;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else {\n indirect(code);\n }\n }\n },\n camelCase: function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n },\n nodeName: function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n },\n each: function each(obj, callback, args) {\n var value,\n i = 0,\n length = obj.length,\n isArray = isArraylike(obj);\n\n if (args) {\n if (isArray) {\n for (; i < length; i++) {\n value = callback.apply(obj[i], args);\n\n if (value === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n value = callback.apply(obj[i], args);\n\n if (value === false) {\n break;\n }\n }\n }\n } else {\n if (isArray) {\n for (; i < length; i++) {\n value = callback.call(obj[i], i, obj[i]);\n\n if (value === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n value = callback.call(obj[i], i, obj[i]);\n\n if (value === false) {\n break;\n }\n }\n }\n }\n\n return obj;\n },\n trim: function trim(text) {\n return text == null ? \"\" : (text + \"\").replace(rtrim, \"\");\n },\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArraylike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert;\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n map: function map(elems, callback, arg) {\n var value,\n i = 0,\n length = elems.length,\n isArray = isArraylike(elems),\n ret = [];\n\n if (isArray) {\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n }\n\n return concat.apply([], ret);\n },\n guid: 1,\n proxy: function proxy(fn, context) {\n var tmp, args, proxy;\n\n if (typeof context === \"string\") {\n tmp = fn[context];\n context = fn;\n fn = tmp;\n }\n\n if (!jQuery.isFunction(fn)) {\n return undefined;\n }\n\n args = _slice.call(arguments, 2);\n\n proxy = function proxy() {\n return fn.apply(context || this, args.concat(_slice.call(arguments)));\n };\n\n proxy.guid = fn.guid = fn.guid || jQuery.guid++;\n return proxy;\n },\n now: Date.now,\n support: support\n });\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArraylike(obj) {\n var length = \"length\" in obj && obj.length,\n type = jQuery.type(obj);\n\n if (type === \"function\" || jQuery.isWindow(obj)) {\n return false;\n }\n\n if (obj.nodeType === 1 && length) {\n return true;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle = function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n MAX_NEGATIVE = 1 << 31,\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n push_native = arr.push,\n push = arr.push,\n slice = arr.slice,\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n characterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n identifier = characterEncoding.replace(\"w\", \"w#\"),\n attributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace + \"*([*^$|!~]?=)\" + whitespace + \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + characterEncoding + \")(?:\\\\((\" + \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + \".*\" + \")\\\\)|)\",\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rattributeQuotes = new RegExp(\"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n ID: new RegExp(\"^#(\" + characterEncoding + \")\"),\n CLASS: new RegExp(\"^\\\\.(\" + characterEncoding + \")\"),\n TAG: new RegExp(\"^(\" + characterEncoding.replace(\"w\", \"w*\") + \")\"),\n ATTR: new RegExp(\"^\" + attributes),\n PSEUDO: new RegExp(\"^\" + pseudos),\n CHILD: new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n bool: new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n needsContext: new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n rescape = /'|\\\\/g,\n runescape = new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\"),\n funescape = function funescape(_, escaped, escapedWhitespace) {\n var high = \"0x\" + escaped - 65536;\n return high !== high || escapedWhitespace ? escaped : high < 0 ? String.fromCharCode(high + 65536) : String.fromCharCode(high >> 10 | 55296, high & 1023 | 56320);\n },\n unloadHandler = function unloadHandler() {\n setDocument();\n };\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes);\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? function (target, els) {\n push_native.apply(target, slice.call(els));\n } : function (target, els) {\n var j = target.length,\n i = 0;\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var match, elem, m, nodeType, i, groups, old, nid, newContext, newSelector;\n\n if ((context ? context.ownerDocument || context : preferredDoc) !== document) {\n setDocument(context);\n }\n\n context = context || document;\n results = results || [];\n nodeType = context.nodeType;\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n }\n\n if (!seed && documentIsHTML) {\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n if (m = match[1]) {\n if (nodeType === 9) {\n elem = context.getElementById(m);\n\n if (elem && elem.parentNode) {\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n }\n } else {\n if (context.ownerDocument && (elem = context.ownerDocument.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n }\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results;\n } else if ((m = match[3]) && support.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n }\n\n if (support.qsa && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n nid = old = expando;\n newContext = context;\n newSelector = nodeType !== 1 && selector;\n\n if (nodeType === 1 && context.nodeName.toLowerCase() !== \"object\") {\n groups = tokenize(selector);\n\n if (old = context.getAttribute(\"id\")) {\n nid = old.replace(rescape, \"\\\\$&\");\n } else {\n context.setAttribute(\"id\", nid);\n }\n\n nid = \"[id='\" + nid + \"'] \";\n i = groups.length;\n\n while (i--) {\n groups[i] = nid + toSelector(groups[i]);\n }\n\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n newSelector = groups.join(\",\");\n }\n\n if (newSelector) {\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {} finally {\n if (!old) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n if (keys.push(key + \" \") > Expr.cacheLength) {\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n\n function assert(fn) {\n var div = document.createElement(\"div\");\n\n try {\n return !!fn(div);\n } catch (e) {\n return false;\n } finally {\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n\n div = null;\n }\n }\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = attrs.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && (~b.sourceIndex || MAX_NEGATIVE) - (~a.sourceIndex || MAX_NEGATIVE);\n\n if (diff) {\n return diff;\n }\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length;\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n }\n\n support = Sizzle.support = {};\n\n isXML = Sizzle.isXML = function (elem) {\n var documentElement = elem && (elem.ownerDocument || elem).documentElement;\n return documentElement ? documentElement.nodeName !== \"HTML\" : false;\n };\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n parent,\n doc = node ? node.ownerDocument || node : preferredDoc;\n\n if (doc === document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n }\n\n document = doc;\n docElem = doc.documentElement;\n parent = doc.defaultView;\n\n if (parent && parent !== parent.top) {\n if (parent.addEventListener) {\n parent.addEventListener(\"unload\", unloadHandler, false);\n } else if (parent.attachEvent) {\n parent.attachEvent(\"onunload\", unloadHandler);\n }\n }\n\n documentIsHTML = !isXML(doc);\n support.attributes = assert(function (div) {\n div.className = \"i\";\n return !div.getAttribute(\"className\");\n });\n support.getElementsByTagName = assert(function (div) {\n div.appendChild(doc.createComment(\"\"));\n return !div.getElementsByTagName(\"*\").length;\n });\n support.getElementsByClassName = rnative.test(doc.getElementsByClassName);\n support.getById = assert(function (div) {\n docElem.appendChild(div).id = expando;\n return !doc.getElementsByName || !doc.getElementsByName(expando).length;\n });\n\n if (support.getById) {\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var m = context.getElementById(id);\n return m && m.parentNode ? [m] : [];\n }\n };\n\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n } else {\n delete Expr.find[\"ID\"];\n\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n }\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag);\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n results = context.getElementsByTagName(tag);\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n };\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n\n rbuggyMatches = [];\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(doc.querySelectorAll)) {\n assert(function (div) {\n docElem.appendChild(div).innerHTML = \"<a id='\" + expando + \"'></a>\" + \"<select id='\" + expando + \"-\\f]' msallowcapture=''>\" + \"<option selected=''></option></select>\";\n\n if (div.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n\n if (!div.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n }\n\n if (!div.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n }\n\n if (!div.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n }\n\n if (!div.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n });\n assert(function (div) {\n var input = doc.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n div.appendChild(input).setAttribute(\"name\", \"D\");\n\n if (div.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n }\n\n if (!div.querySelectorAll(\":enabled\").length) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n div.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (div) {\n support.disconnectedMatch = matches.call(div, \"div\");\n matches.call(div, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n hasCompare = rnative.test(docElem.compareDocumentPosition);\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n sortOrder = hasCompare ? function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n }\n\n compare = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 1;\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n if (a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a)) {\n return -1;\n }\n\n if (b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b)) {\n return 1;\n }\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b];\n\n if (!aup || !bup) {\n return a === doc ? -1 : b === doc ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n } else if (aup === bup) {\n return siblingCheck(a, b);\n }\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n }\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? siblingCheck(ap[i], bp[i]) : ap[i] === preferredDoc ? -1 : bp[i] === preferredDoc ? 1 : 0;\n };\n return doc;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n\n expr = expr.replace(rattributeQuotes, \"='$1']\");\n\n if (support.matchesSelector && documentIsHTML && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr);\n\n if (ret || support.disconnectedMatch || elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {}\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n if ((context.ownerDocument || context) !== document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0;\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n }\n\n sortInput = null;\n return results;\n };\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n while (node = elem[i++]) {\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n }\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n ATTR: function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape);\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n CHILD: function CHILD(match) {\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n if (!match[3]) {\n Sizzle.error(match[0]);\n }\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\");\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n PSEUDO: function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n }\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\";\n } else if (unquoted && rpseudo.test(unquoted) && (excess = tokenize(unquoted, true)) && (excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n }\n\n return match.slice(0, 3);\n }\n },\n filter: {\n TAG: function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n CLASS: function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n ATTR: function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n };\n },\n CHILD: function CHILD(type, what, argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? function (elem) {\n return !!elem.parentNode;\n } : function (elem, context, xml) {\n var cache,\n outerCache,\n node,\n diff,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType;\n\n if (parent) {\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n }\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild];\n\n if (forward && useCache) {\n outerCache = parent[expando] || (parent[expando] = {});\n cache = outerCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = cache[0] === dirruns && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if (node.nodeType === 1 && ++diff && node === elem) {\n outerCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else if (useCache && (cache = (elem[expando] || (elem[expando] = {}))[type]) && cache[0] === dirruns) {\n diff = cache[1];\n } else {\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n if (useCache) {\n (node[expando] || (node[expando] = {}))[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n PSEUDO: function PSEUDO(pseudo, argument) {\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo);\n\n if (fn[expando]) {\n return fn(argument);\n }\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n not: markFunction(function (selector) {\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length;\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results);\n input[0] = null;\n return !results.pop();\n };\n }),\n has: markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n contains: markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1;\n };\n }),\n lang: markFunction(function (lang) {\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n target: function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n root: function root(elem) {\n return elem === docElem;\n },\n focus: function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n enabled: function enabled(elem) {\n return elem.disabled === false;\n },\n disabled: function disabled(elem) {\n return elem.disabled === true;\n },\n checked: function checked(elem) {\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n selected: function selected(elem) {\n if (elem.parentNode) {\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n empty: function empty(elem) {\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n parent: function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n header: function header(elem) {\n return rheader.test(elem.nodeName);\n },\n input: function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n button: function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n text: function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ((attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n first: createPositionalPseudo(function () {\n return [0];\n }),\n last: createPositionalPseudo(function (matchIndexes, length) {\n return [length - 1];\n }),\n eq: createPositionalPseudo(function (matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n even: createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n odd: createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n lt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n gt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n }\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false;\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n }\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n }\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n checkNonElements = base && dir === \"parentNode\",\n doneName = done++;\n return combinator.first ? function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n } : function (elem, context, xml) {\n var oldCache,\n outerCache,\n newCache = [dirruns, doneName];\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {});\n\n if ((oldCache = outerCache[dir]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n return newCache[2] = oldCache[2];\n } else {\n outerCache[dir] = newCache;\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? postFinder || (seed ? preFilter : preexisting || postFilter) ? [] : results : matcherIn;\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n }\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml);\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n }\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n }\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\n\n if (matcher[expando]) {\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || .1,\n len = elems.length;\n\n if (outermost) {\n outermostContext = context !== document && context;\n }\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n }\n\n if (bySet) {\n if (elem = !matcher && elem) {\n matchedCount--;\n }\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n }\n\n matchedCount += i;\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n }\n\n setMatched = condense(setMatched);\n }\n\n push.apply(results, setMatched);\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n }\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\n cached.selector = selector;\n }\n\n return cached;\n };\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || [];\n\n if (match.length === 1) {\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && support.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results;\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n }\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i];\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n }\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n };\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando;\n support.detectDuplicates = !!hasDuplicate;\n setDocument();\n support.sortDetached = assert(function (div1) {\n return div1.compareDocumentPosition(document.createElement(\"div\")) & 1;\n });\n\n if (!assert(function (div) {\n div.innerHTML = \"<a href='#'></a>\";\n return div.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n }\n\n if (!support.attributes || !assert(function (div) {\n div.innerHTML = \"<input/>\";\n div.firstChild.setAttribute(\"value\", \"\");\n return div.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n }\n\n if (!assert(function (div) {\n return div.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors;\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n var rneedsContext = jQuery.expr.match.needsContext;\n var rsingleTag = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/;\n var risSimple = /^.[^:#\\[\\.,]*$/;\n\n function winnow(elements, qualifier, not) {\n if (jQuery.isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n }\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n }\n\n if (typeof qualifier === \"string\") {\n if (risSimple.test(qualifier)) {\n return jQuery.filter(qualifier, elements, not);\n }\n\n qualifier = jQuery.filter(qualifier, elements);\n }\n\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) >= 0 !== not;\n });\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n return elems.length === 1 && elem.nodeType === 1 ? jQuery.find.matchesSelector(elem, expr) ? [elem] : [] : jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n len = this.length,\n ret = [],\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n ret = this.pushStack(len > 1 ? jQuery.unique(ret) : ret);\n ret.selector = this.selector ? this.selector + \" \" + selector : selector;\n return ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n\n var rootjQuery,\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n init = jQuery.fn.init = function (selector, context) {\n var match, elem;\n\n if (!selector) {\n return this;\n }\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n }\n\n if (match && (match[1] || !context)) {\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context;\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true));\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n if (jQuery.isFunction(this[match])) {\n this[match](context[match]);\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this;\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem && elem.parentNode) {\n this.length = 1;\n this[0] = elem;\n }\n\n this.context = document;\n this.selector = selector;\n return this;\n }\n } else if (!context || context.jquery) {\n return (context || rootjQuery).find(selector);\n } else {\n return this.constructor(context).find(selector);\n }\n } else if (selector.nodeType) {\n this.context = this[0] = selector;\n this.length = 1;\n return this;\n } else if (jQuery.isFunction(selector)) {\n return typeof rootjQuery.ready !== \"undefined\" ? rootjQuery.ready(selector) : selector(jQuery);\n }\n\n if (selector.selector !== undefined) {\n this.selector = selector.selector;\n this.context = selector.context;\n }\n\n return jQuery.makeArray(selector, this);\n };\n\n init.prototype = jQuery.fn;\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.extend({\n dir: function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n },\n sibling: function sibling(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n }\n });\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n pos = rneedsContext.test(selectors) || typeof selectors !== \"string\" ? jQuery(selectors, context || this.context) : 0;\n\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n if (cur.nodeType < 11 && (pos ? pos.index(cur) > -1 : cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.unique(matched) : matched);\n },\n index: function index(elem) {\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n }\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n }\n\n return indexOf.call(this, elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.unique(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return jQuery.dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, i, until) {\n return jQuery.dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return jQuery.dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return jQuery.dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, i, until) {\n return jQuery.dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, i, until) {\n return jQuery.dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return jQuery.sibling((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return jQuery.sibling(elem.firstChild);\n },\n contents: function contents(elem) {\n return elem.contentDocument || jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n if (!guaranteedUnique[name]) {\n jQuery.unique(matched);\n }\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnotwhite = /\\S+/g;\n var optionsCache = {};\n\n function createOptions(options) {\n var object = optionsCache[options] = {};\n jQuery.each(options.match(rnotwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n\n jQuery.Callbacks = function (options) {\n options = typeof options === \"string\" ? optionsCache[options] || createOptions(options) : jQuery.extend({}, options);\n\n var memory,\n _fired,\n firing,\n firingStart,\n firingLength,\n firingIndex,\n list = [],\n stack = !options.once && [],\n fire = function fire(data) {\n memory = options.memory && data;\n _fired = true;\n firingIndex = firingStart || 0;\n firingStart = 0;\n firingLength = list.length;\n firing = true;\n\n for (; list && firingIndex < firingLength; firingIndex++) {\n if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {\n memory = false;\n break;\n }\n }\n\n firing = false;\n\n if (list) {\n if (stack) {\n if (stack.length) {\n fire(stack.shift());\n }\n } else if (memory) {\n list = [];\n } else {\n self.disable();\n }\n }\n },\n self = {\n add: function add() {\n if (list) {\n var start = list.length;\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n var type = jQuery.type(arg);\n\n if (type === \"function\") {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && type !== \"string\") {\n add(arg);\n }\n });\n })(arguments);\n\n if (firing) {\n firingLength = list.length;\n } else if (memory) {\n firingStart = start;\n fire(memory);\n }\n }\n\n return this;\n },\n remove: function remove() {\n if (list) {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n\n if (firing) {\n if (index <= firingLength) {\n firingLength--;\n }\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n }\n });\n }\n\n return this;\n },\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : !!(list && list.length);\n },\n empty: function empty() {\n list = [];\n firingLength = 0;\n return this;\n },\n disable: function disable() {\n list = stack = memory = undefined;\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n lock: function lock() {\n stack = undefined;\n\n if (!memory) {\n self.disable();\n }\n\n return this;\n },\n locked: function locked() {\n return !stack;\n },\n fireWith: function fireWith(context, args) {\n if (list && (!_fired || stack)) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n\n if (firing) {\n stack.push(args);\n } else {\n fire(args);\n }\n }\n\n return this;\n },\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [[\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\"], [\"notify\", \"progress\", jQuery.Callbacks(\"memory\")]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n then: function then() {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (i, tuple) {\n var fn = jQuery.isFunction(fns[i]) && fns[i];\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && jQuery.isFunction(returned.promise)) {\n returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify);\n } else {\n newDefer[tuple[0] + \"With\"](this === _promise ? newDefer.promise() : this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {};\n _promise.pipe = _promise.then;\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[3];\n _promise[tuple[1]] = list.add;\n\n if (stateString) {\n list.add(function () {\n _state = stateString;\n }, tuples[i ^ 1][2].disable, tuples[2][2].lock);\n }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? _promise : this, arguments);\n return this;\n };\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n _promise.promise(deferred);\n\n if (func) {\n func.call(deferred, deferred);\n }\n\n return deferred;\n },\n when: function when(subordinate) {\n var i = 0,\n resolveValues = _slice.call(arguments),\n length = resolveValues.length,\n remaining = length !== 1 || subordinate && jQuery.isFunction(subordinate.promise) ? length : 0,\n deferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n updateFunc = function updateFunc(i, contexts, values) {\n return function (value) {\n contexts[i] = this;\n values[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (values === progressValues) {\n deferred.notifyWith(contexts, values);\n } else if (! --remaining) {\n deferred.resolveWith(contexts, values);\n }\n };\n },\n progressValues,\n progressContexts,\n resolveContexts;\n\n if (length > 1) {\n progressValues = new Array(length);\n progressContexts = new Array(length);\n resolveContexts = new Array(length);\n\n for (; i < length; i++) {\n if (resolveValues[i] && jQuery.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise().done(updateFunc(i, resolveContexts, resolveValues)).fail(deferred.reject).progress(updateFunc(i, progressContexts, progressValues));\n } else {\n --remaining;\n }\n }\n }\n\n if (!remaining) {\n deferred.resolveWith(resolveContexts, resolveValues);\n }\n\n return deferred.promise();\n }\n });\n var readyList;\n\n jQuery.fn.ready = function (fn) {\n jQuery.ready.promise().done(fn);\n return this;\n };\n\n jQuery.extend({\n isReady: false,\n readyWait: 1,\n holdReady: function holdReady(hold) {\n if (hold) {\n jQuery.readyWait++;\n } else {\n jQuery.ready(true);\n }\n },\n ready: function ready(wait) {\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n }\n\n jQuery.isReady = true;\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n }\n\n readyList.resolveWith(document, [jQuery]);\n\n if (jQuery.fn.triggerHandler) {\n jQuery(document).triggerHandler(\"ready\");\n jQuery(document).off(\"ready\");\n }\n }\n });\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed, false);\n window.removeEventListener(\"load\", completed, false);\n jQuery.ready();\n }\n\n jQuery.ready.promise = function (obj) {\n if (!readyList) {\n readyList = jQuery.Deferred();\n\n if (document.readyState === \"complete\") {\n setTimeout(jQuery.ready);\n } else {\n document.addEventListener(\"DOMContentLoaded\", completed, false);\n window.addEventListener(\"load\", completed, false);\n }\n }\n\n return readyList.promise(obj);\n };\n\n jQuery.ready.promise();\n\n var access = jQuery.access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null;\n\n if (jQuery.type(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n jQuery.access(elems, fn, i, key[i], true, emptyGet, raw);\n }\n } else if (value !== undefined) {\n chainable = true;\n\n if (!jQuery.isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n if (raw) {\n fn.call(elems, value);\n fn = null;\n } else {\n bulk = fn;\n\n fn = function fn(elem, key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n return chainable ? elems : bulk ? fn.call(elems) : len ? fn(elems[0], key) : emptyGet;\n };\n\n jQuery.acceptData = function (owner) {\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n Object.defineProperty(this.cache = {}, 0, {\n get: function get() {\n return {};\n }\n });\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.accepts = jQuery.acceptData;\n Data.prototype = {\n key: function key(owner) {\n if (!Data.accepts(owner)) {\n return 0;\n }\n\n var descriptor = {},\n unlock = owner[this.expando];\n\n if (!unlock) {\n unlock = Data.uid++;\n\n try {\n descriptor[this.expando] = {\n value: unlock\n };\n Object.defineProperties(owner, descriptor);\n } catch (e) {\n descriptor[this.expando] = unlock;\n jQuery.extend(owner, descriptor);\n }\n }\n\n if (!this.cache[unlock]) {\n this.cache[unlock] = {};\n }\n\n return unlock;\n },\n set: function set(owner, data, value) {\n var prop,\n unlock = this.key(owner),\n cache = this.cache[unlock];\n\n if (typeof data === \"string\") {\n cache[data] = value;\n } else {\n if (jQuery.isEmptyObject(cache)) {\n jQuery.extend(this.cache[unlock], data);\n } else {\n for (prop in data) {\n cache[prop] = data[prop];\n }\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n var cache = this.cache[this.key(owner)];\n return key === undefined ? cache : cache[key];\n },\n access: function access(owner, key, value) {\n var stored;\n\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n stored = this.get(owner, key);\n return stored !== undefined ? stored : this.get(owner, jQuery.camelCase(key));\n }\n\n this.set(owner, key, value);\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n name,\n camel,\n unlock = this.key(owner),\n cache = this.cache[unlock];\n\n if (key === undefined) {\n this.cache[unlock] = {};\n } else {\n if (jQuery.isArray(key)) {\n name = key.concat(key.map(jQuery.camelCase));\n } else {\n camel = jQuery.camelCase(key);\n\n if (key in cache) {\n name = [key, camel];\n } else {\n name = camel;\n name = name in cache ? [name] : name.match(rnotwhite) || [];\n }\n }\n\n i = name.length;\n\n while (i--) {\n delete cache[name[i]];\n }\n }\n },\n hasData: function hasData(owner) {\n return !jQuery.isEmptyObject(this.cache[owner[this.expando]] || {});\n },\n discard: function discard(owner) {\n if (owner[this.expando]) {\n delete this.cache[owner[this.expando]];\n }\n }\n };\n var data_priv = new Data();\n var data_user = new Data();\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /([A-Z])/g;\n\n function dataAttr(elem, key, data) {\n var name;\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$1\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = data === \"true\" ? true : data === \"false\" ? false : data === \"null\" ? null : +data + \"\" === data ? +data : rbrace.test(data) ? jQuery.parseJSON(data) : data;\n } catch (e) {}\n\n data_user.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return data_user.hasData(elem) || data_priv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return data_user.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n data_user.remove(elem, name);\n },\n _data: function _data(elem, name, data) {\n return data_priv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n data_priv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes;\n\n if (key === undefined) {\n if (this.length) {\n data = data_user.get(elem);\n\n if (elem.nodeType === 1 && !data_priv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = jQuery.camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n data_priv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n }\n\n if (_typeof2(key) === \"object\") {\n return this.each(function () {\n data_user.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data,\n camelKey = jQuery.camelCase(key);\n\n if (elem && value === undefined) {\n data = data_user.get(elem, key);\n\n if (data !== undefined) {\n return data;\n }\n\n data = data_user.get(elem, camelKey);\n\n if (data !== undefined) {\n return data;\n }\n\n data = dataAttr(elem, camelKey, undefined);\n\n if (data !== undefined) {\n return data;\n }\n\n return;\n }\n\n this.each(function () {\n var data = data_user.get(this, camelKey);\n data_user.set(this, camelKey, value);\n\n if (key.indexOf(\"-\") !== -1 && data !== undefined) {\n data_user.set(this, key, value);\n }\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n data_user.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = data_priv.get(elem, type);\n\n if (data) {\n if (!queue || jQuery.isArray(data)) {\n queue = data_priv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n };\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n }\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return data_priv.get(elem, key) || data_priv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n data_priv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data);\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = data_priv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n\n var isHidden = function isHidden(elem, el) {\n elem = el || elem;\n return jQuery.css(elem, \"display\") === \"none\" || !jQuery.contains(elem.ownerDocument, elem);\n };\n\n var rcheckableType = /^(?:checkbox|radio)$/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input);\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\n div.innerHTML = \"<textarea>x</textarea>\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\n })();\n\n var strundefined = typeof undefined === \"undefined\" ? \"undefined\" : _typeof2(undefined);\n support.focusinBubbles = \"onfocusin\" in window;\n var rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n }\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = data_priv.get(elem);\n\n if (!elemData) {\n return;\n }\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n }\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n }\n\n if (!(events = elemData.events)) {\n events = elemData.events = {};\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n return _typeof2(jQuery) !== strundefined && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n }\n\n types = (types || \"\").match(rnotwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n if (!type) {\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n special = jQuery.event.special[type] || {};\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn);\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0;\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle, false);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n }\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n }\n\n jQuery.event.global[type] = true;\n }\n },\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = data_priv.hasData(elem) && data_priv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n }\n\n types = (types || \"\").match(rnotwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n }\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n }\n\n if (jQuery.isEmptyObject(events)) {\n delete elemData.handle;\n data_priv.remove(elem, \"events\");\n }\n },\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = tmp = elem = elem || document;\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n }\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") >= 0) {\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type;\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof2(event) === \"object\" && event);\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.namespace_re = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null;\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n }\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]);\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n }\n\n if (!onlyHandlers && !special.noBubble && !jQuery.isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n }\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n }\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n event.type = i > 1 ? bubbleType : special.bindType || type;\n handle = (data_priv.get(cur, \"events\") || {})[event.type] && data_priv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n }\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && jQuery.acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type;\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && jQuery.acceptData(elem)) {\n if (ontype && jQuery.isFunction(elem[type]) && !jQuery.isWindow(elem)) {\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n }\n\n jQuery.event.triggered = type;\n elem[type]();\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n dispatch: function dispatch(event) {\n event = jQuery.event.fix(event);\n\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue = [],\n args = _slice.call(arguments),\n handlers = (data_priv.get(this, \"events\") || {})[event.type] || [],\n special = jQuery.event.special[event.type] || {};\n\n args[0] = event;\n event.delegateTarget = this;\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n }\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers);\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n if (!event.namespace_re || event.namespace_re.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n matches,\n sel,\n handleObj,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target;\n\n if (delegateCount && cur.nodeType && (!event.button || event.type !== \"click\")) {\n for (; cur !== this; cur = cur.parentNode || this) {\n if (cur.disabled !== true || event.type !== \"click\") {\n matches = [];\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i];\n sel = handleObj.selector + \" \";\n\n if (matches[sel] === undefined) {\n matches[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) >= 0 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matches[sel]) {\n matches.push(handleObj);\n }\n }\n\n if (matches.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matches\n });\n }\n }\n }\n }\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: this,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n props: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n fixHooks: {},\n keyHooks: {\n props: \"char charCode key keyCode\".split(\" \"),\n filter: function filter(event, original) {\n if (event.which == null) {\n event.which = original.charCode != null ? original.charCode : original.keyCode;\n }\n\n return event;\n }\n },\n mouseHooks: {\n props: \"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n filter: function filter(event, original) {\n var eventDoc,\n doc,\n body,\n button = original.button;\n\n if (event.pageX == null && original.clientX != null) {\n eventDoc = event.target.ownerDocument || document;\n doc = eventDoc.documentElement;\n body = eventDoc.body;\n event.pageX = original.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = original.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n if (!event.which && button !== undefined) {\n event.which = button & 1 ? 1 : button & 2 ? 3 : button & 4 ? 2 : 0;\n }\n\n return event;\n }\n },\n fix: function fix(event) {\n if (event[jQuery.expando]) {\n return event;\n }\n\n var i,\n prop,\n copy,\n type = event.type,\n originalEvent = event,\n fixHook = this.fixHooks[type];\n\n if (!fixHook) {\n this.fixHooks[type] = fixHook = rmouseEvent.test(type) ? this.mouseHooks : rkeyEvent.test(type) ? this.keyHooks : {};\n }\n\n copy = fixHook.props ? this.props.concat(fixHook.props) : this.props;\n event = new jQuery.Event(originalEvent);\n i = copy.length;\n\n while (i--) {\n prop = copy[i];\n event[prop] = originalEvent[prop];\n }\n\n if (!event.target) {\n event.target = document;\n }\n\n if (event.target.nodeType === 3) {\n event.target = event.target.parentNode;\n }\n\n return fixHook.filter ? fixHook.filter(event, originalEvent) : event;\n },\n special: {\n load: {\n noBubble: true\n },\n focus: {\n trigger: function trigger() {\n if (this !== safeActiveElement() && this.focus) {\n this.focus();\n return false;\n }\n },\n delegateType: \"focusin\"\n },\n blur: {\n trigger: function trigger() {\n if (this === safeActiveElement() && this.blur) {\n this.blur();\n return false;\n }\n },\n delegateType: \"focusout\"\n },\n click: {\n trigger: function trigger() {\n if (this.type === \"checkbox\" && this.click && jQuery.nodeName(this, \"input\")) {\n this.click();\n return false;\n }\n },\n _default: function _default(event) {\n return jQuery.nodeName(event.target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n },\n simulate: function simulate(type, elem, event, bubble) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true,\n originalEvent: {}\n });\n\n if (bubble) {\n jQuery.event.trigger(e, null, elem);\n } else {\n jQuery.event.dispatch.call(elem, e);\n }\n\n if (e.isDefaultPrevented()) {\n event.preventDefault();\n }\n }\n };\n\n jQuery.removeEvent = function (elem, type, handle) {\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle, false);\n }\n };\n\n jQuery.Event = function (src, props) {\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n }\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type;\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && src.returnValue === false ? returnTrue : returnFalse;\n } else {\n this.type = src;\n }\n\n if (props) {\n jQuery.extend(this, props);\n }\n\n this.timeStamp = src && src.timeStamp || jQuery.now();\n this[jQuery.expando] = true;\n };\n\n jQuery.Event.prototype = {\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && e.preventDefault) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && e.stopPropagation) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && e.stopImmediatePropagation) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n };\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj;\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n\n if (!support.focusinBubbles) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event), true);\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n var doc = this.ownerDocument || this,\n attaches = data_priv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n data_priv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this,\n attaches = data_priv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n data_priv.remove(doc, fix);\n } else {\n data_priv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n jQuery.fn.extend({\n on: function on(types, selector, data, fn, one) {\n var origFn, type;\n\n if (_typeof2(types) === \"object\") {\n if (typeof selector !== \"string\") {\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n this.on(type, selector, data, types[type], one);\n }\n\n return this;\n }\n\n if (data == null && fn == null) {\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n fn = data;\n data = undefined;\n } else {\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return this;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n jQuery().off(event);\n return origFn.apply(this, arguments);\n };\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return this.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n },\n one: function one(types, selector, data, fn) {\n return this.on(types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof2(types) === \"object\") {\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n },\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n var rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n rtagName = /<([\\w:]+)/,\n rhtml = /<|&#?\\w+;/,\n rnoInnerhtml = /<(?:script|style|link)/i,\n rchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n rscriptType = /^$|\\/(?:java|ecma)script/i,\n rscriptTypeMasked = /^true\\/(.*)/,\n rcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,\n wrapMap = {\n option: [1, \"<select multiple='multiple'>\", \"</select>\"],\n thead: [1, \"<table>\", \"</table>\"],\n col: [2, \"<table><colgroup>\", \"</colgroup></table>\"],\n tr: [2, \"<table><tbody>\", \"</tbody></table>\"],\n td: [3, \"<table><tbody><tr>\", \"</tr></tbody></table>\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.optgroup = wrapMap.option;\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n function manipulationTarget(elem, content) {\n return jQuery.nodeName(elem, \"table\") && jQuery.nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\") ? elem.getElementsByTagName(\"tbody\")[0] || elem.appendChild(elem.ownerDocument.createElement(\"tbody\")) : elem;\n }\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n var match = rscriptTypeMasked.exec(elem.type);\n\n if (match) {\n elem.type = match[1];\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n data_priv.set(elems[i], \"globalEval\", !refElements || data_priv.get(refElements[i], \"globalEval\"));\n }\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n }\n\n if (data_priv.hasData(src)) {\n pdataOld = data_priv.access(src);\n pdataCur = data_priv.set(dest, pdataOld);\n events = pdataOld.events;\n\n if (events) {\n delete pdataCur.handle;\n pdataCur.events = {};\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n }\n\n if (data_user.hasData(src)) {\n udataOld = data_user.access(src);\n udataCur = jQuery.extend({}, udataOld);\n data_user.set(dest, udataCur);\n }\n }\n\n function getAll(context, tag) {\n var ret = context.getElementsByTagName ? context.getElementsByTagName(tag || \"*\") : context.querySelectorAll ? context.querySelectorAll(tag || \"*\") : [];\n return tag === undefined || tag && jQuery.nodeName(context, tag) ? jQuery.merge([context], ret) : ret;\n }\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase();\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked;\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n jQuery.extend({\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = jQuery.contains(elem.ownerDocument, elem);\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n }\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n }\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n }\n\n return clone;\n },\n buildFragment: function buildFragment(elems, context, scripts, selection) {\n var elem,\n tmp,\n tag,\n wrap,\n contains,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n if (jQuery.type(elem) === \"object\") {\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem);\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem));\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\"));\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + elem.replace(rxhtmlTag, \"<$1></$2>\") + wrap[2];\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n }\n\n jQuery.merge(nodes, tmp.childNodes);\n tmp = fragment.firstChild;\n tmp.textContent = \"\";\n }\n }\n }\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n if (selection && jQuery.inArray(elem, selection) !== -1) {\n continue;\n }\n\n contains = jQuery.contains(elem.ownerDocument, elem);\n tmp = getAll(fragment.appendChild(elem), \"script\");\n\n if (contains) {\n setGlobalEval(tmp);\n }\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n key,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (jQuery.acceptData(elem)) {\n key = elem[data_priv.expando];\n\n if (key && (data = data_priv.cache[key])) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type);\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n }\n\n if (data_priv.cache[key]) {\n delete data_priv.cache[key];\n }\n }\n }\n\n delete data_user.cache[elem[data_user.expando]];\n }\n }\n });\n jQuery.fn.extend({\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return this.domManip(arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return this.domManip(arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return this.domManip(arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return this.domManip(arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n remove: function remove(selector, keepData) {\n var elem,\n elems = selector ? jQuery.filter(selector, this) : this,\n i = 0;\n\n for (; (elem = elems[i]) != null; i++) {\n if (!keepData && elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem));\n }\n\n if (elem.parentNode) {\n if (keepData && jQuery.contains(elem.ownerDocument, elem)) {\n setGlobalEval(getAll(elem, \"script\"));\n }\n\n elem.parentNode.removeChild(elem);\n }\n }\n\n return this;\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n }\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = value.replace(rxhtmlTag, \"<$1></$2>\");\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {};\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0;\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var arg = arguments[0];\n this.domManip(arguments, function (elem) {\n arg = this.parentNode;\n jQuery.cleanData(getAll(this));\n\n if (arg) {\n arg.replaceChild(elem, this);\n }\n });\n return arg && (arg.length || arg.nodeType) ? this : this.remove();\n },\n detach: function detach(selector) {\n return this.remove(selector, true);\n },\n domManip: function domManip(args, callback) {\n args = concat.apply([], args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = this.length,\n set = this,\n iNoClone = l - 1,\n value = args[0],\n isFunction = jQuery.isFunction(value);\n\n if (isFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return this.each(function (index) {\n var self = set.eq(index);\n\n if (isFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n self.domManip(args, callback);\n });\n }\n\n if (l) {\n fragment = jQuery.buildFragment(args, this[0].ownerDocument, false, this);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n }\n\n if (first) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length;\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true);\n\n if (hasScripts) {\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(this[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument;\n jQuery.map(scripts, restoreScript);\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !data_priv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src) {\n if (jQuery._evalUrl) {\n jQuery._evalUrl(node.src);\n }\n } else {\n jQuery.globalEval(node.textContent.replace(rcleanScript, \"\"));\n }\n }\n }\n }\n }\n }\n\n return this;\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems);\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var iframe,\n elemdisplay = {};\n\n function actualDisplay(name, doc) {\n var style,\n elem = jQuery(doc.createElement(name)).appendTo(doc.body),\n display = window.getDefaultComputedStyle && (style = window.getDefaultComputedStyle(elem[0])) ? style.display : jQuery.css(elem[0], \"display\");\n elem.detach();\n return display;\n }\n\n function defaultDisplay(nodeName) {\n var doc = document,\n display = elemdisplay[nodeName];\n\n if (!display) {\n display = actualDisplay(nodeName, doc);\n\n if (display === \"none\" || !display) {\n iframe = (iframe || jQuery(\"<iframe frameborder='0' width='0' height='0'/>\")).appendTo(doc.documentElement);\n doc = iframe[0].contentDocument;\n doc.write();\n doc.close();\n display = actualDisplay(nodeName, doc);\n iframe.detach();\n }\n\n elemdisplay[nodeName] = display;\n }\n\n return display;\n }\n\n var rmargin = /^margin/;\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(elem) {\n if (elem.ownerDocument.defaultView.opener) {\n return elem.ownerDocument.defaultView.getComputedStyle(elem, null);\n }\n\n return window.getComputedStyle(elem, null);\n };\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n style = elem.style;\n computed = computed || getStyles(elem);\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n }\n\n if (computed) {\n if (ret === \"\" && !jQuery.contains(elem.ownerDocument, elem)) {\n ret = jQuery.style(elem, name);\n }\n\n if (rnumnonpx.test(ret) && rmargin.test(name)) {\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth;\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width;\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n return {\n get: function get() {\n if (conditionFn()) {\n delete this.get;\n return;\n }\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n (function () {\n var pixelPositionVal,\n boxSizingReliableVal,\n docElem = document.documentElement,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\");\n\n if (!div.style) {\n return;\n }\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n container.style.cssText = \"border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;\" + \"position:absolute\";\n container.appendChild(div);\n\n function computePixelPositionAndBoxSizingReliable() {\n div.style.cssText = \"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;\" + \"box-sizing:border-box;display:block;margin-top:1%;top:1%;\" + \"border:1px;padding:1px;width:4px;position:absolute\";\n div.innerHTML = \"\";\n docElem.appendChild(container);\n var divStyle = window.getComputedStyle(div, null);\n pixelPositionVal = divStyle.top !== \"1%\";\n boxSizingReliableVal = divStyle.width === \"4px\";\n docElem.removeChild(container);\n }\n\n if (window.getComputedStyle) {\n jQuery.extend(support, {\n pixelPosition: function pixelPosition() {\n computePixelPositionAndBoxSizingReliable();\n return pixelPositionVal;\n },\n boxSizingReliable: function boxSizingReliable() {\n if (boxSizingReliableVal == null) {\n computePixelPositionAndBoxSizingReliable();\n }\n\n return boxSizingReliableVal;\n },\n reliableMarginRight: function reliableMarginRight() {\n var ret,\n marginDiv = div.appendChild(document.createElement(\"div\"));\n marginDiv.style.cssText = div.style.cssText = \"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" + \"box-sizing:content-box;display:block;margin:0;border:0;padding:0\";\n marginDiv.style.marginRight = marginDiv.style.width = \"0\";\n div.style.width = \"1px\";\n docElem.appendChild(container);\n ret = !parseFloat(window.getComputedStyle(marginDiv, null).marginRight);\n docElem.removeChild(container);\n div.removeChild(marginDiv);\n return ret;\n }\n });\n }\n })();\n\n jQuery.swap = function (elem, options, callback, args) {\n var ret,\n name,\n old = {};\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.apply(elem, args || []);\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rnumsplit = new RegExp(\"^(\" + pnum + \")(.*)$\", \"i\"),\n rrelNum = new RegExp(\"^([+-])=(\" + pnum + \")\", \"i\"),\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n },\n cssPrefixes = [\"Webkit\", \"O\", \"Moz\", \"ms\"];\n\n function vendorPropName(style, name) {\n if (name in style) {\n return name;\n }\n\n var capName = name[0].toUpperCase() + name.slice(1),\n origName = name,\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in style) {\n return name;\n }\n }\n\n return origName;\n }\n\n function setPositiveNumber(elem, value, subtract) {\n var matches = rnumsplit.exec(value);\n return matches ? Math.max(0, matches[1] - (subtract || 0)) + (matches[2] || \"px\") : value;\n }\n\n function augmentWidthOrHeight(elem, name, extra, isBorderBox, styles) {\n var i = extra === (isBorderBox ? \"border\" : \"content\") ? 4 : name === \"width\" ? 1 : 0,\n val = 0;\n\n for (; i < 4; i += 2) {\n if (extra === \"margin\") {\n val += jQuery.css(elem, extra + cssExpand[i], true, styles);\n }\n\n if (isBorderBox) {\n if (extra === \"content\") {\n val -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n }\n\n if (extra !== \"margin\") {\n val -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n } else {\n val += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n\n if (extra !== \"padding\") {\n val += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n }\n\n return val;\n }\n\n function getWidthOrHeight(elem, name, extra) {\n var valueIsBorderBox = true,\n val = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n styles = getStyles(elem),\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\n\n if (val <= 0 || val == null) {\n val = curCSS(elem, name, styles);\n\n if (val < 0 || val == null) {\n val = elem.style[name];\n }\n\n if (rnumnonpx.test(val)) {\n return val;\n }\n\n valueIsBorderBox = isBorderBox && (support.boxSizingReliable() || val === elem.style[name]);\n val = parseFloat(val) || 0;\n }\n\n return val + augmentWidthOrHeight(elem, name, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles) + \"px\";\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n hidden,\n values = [],\n index = 0,\n length = elements.length;\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n values[index] = data_priv.get(elem, \"olddisplay\");\n display = elem.style.display;\n\n if (show) {\n if (!values[index] && display === \"none\") {\n elem.style.display = \"\";\n }\n\n if (elem.style.display === \"\" && isHidden(elem)) {\n values[index] = data_priv.access(elem, \"olddisplay\", defaultDisplay(elem.nodeName));\n }\n } else {\n hidden = isHidden(elem);\n\n if (display !== \"none\" || !hidden) {\n data_priv.set(elem, \"olddisplay\", hidden ? display : jQuery.css(elem, \"display\"));\n }\n }\n }\n\n for (index = 0; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n if (!show || elem.style.display === \"none\" || elem.style.display === \"\") {\n elem.style.display = show ? values[index] || \"\" : \"none\";\n }\n }\n\n return elements;\n }\n\n jQuery.extend({\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n cssNumber: {\n columnCount: true,\n fillOpacity: true,\n flexGrow: true,\n flexShrink: true,\n fontWeight: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n widows: true,\n zIndex: true,\n zoom: true\n },\n cssProps: {\n float: \"cssFloat\"\n },\n style: function style(elem, name, value, extra) {\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n }\n\n var ret,\n type,\n hooks,\n origName = jQuery.camelCase(name),\n style = elem.style;\n name = jQuery.cssProps[origName] || (jQuery.cssProps[origName] = vendorPropName(style, origName));\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n if (value !== undefined) {\n type = _typeof2(value);\n\n if (type === \"string\" && (ret = rrelNum.exec(value))) {\n value = (ret[1] + 1) * ret[2] + parseFloat(jQuery.css(elem, name));\n type = \"number\";\n }\n\n if (value == null || value !== value) {\n return;\n }\n\n if (type === \"number\" && !jQuery.cssNumber[origName]) {\n value += \"px\";\n }\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n }\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n style[name] = value;\n }\n } else {\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n }\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = jQuery.camelCase(name);\n name = jQuery.cssProps[origName] || (jQuery.cssProps[origName] = vendorPropName(elem.style, origName));\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n }\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n }\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n }\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || jQuery.isNumeric(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (i, name) {\n jQuery.cssHooks[name] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && elem.offsetWidth === 0 ? jQuery.swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, name, extra);\n }) : getWidthOrHeight(elem, name, extra);\n }\n },\n set: function set(elem, value, extra) {\n var styles = extra && getStyles(elem);\n return setPositiveNumber(elem, value, extra ? augmentWidthOrHeight(elem, name, extra, jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\", styles) : 0);\n }\n };\n });\n jQuery.cssHooks.marginRight = addGetHookIf(support.reliableMarginRight, function (elem, computed) {\n if (computed) {\n return jQuery.swap(elem, {\n display: \"inline-block\"\n }, curCSS, [elem, \"marginRight\"]);\n }\n });\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (!rmargin.test(prefix)) {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (jQuery.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n },\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHidden(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || \"swing\";\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result;\n\n if (tween.elem[tween.prop] != null && (!tween.elem.style || tween.elem.style[tween.prop] == null)) {\n return tween.elem[tween.prop];\n }\n\n result = jQuery.css(tween.elem, tween.prop, \"\");\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.style && (tween.elem.style[jQuery.cssProps[tween.prop]] != null || jQuery.cssHooks[tween.prop])) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n };\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return .5 - Math.cos(p * Math.PI) / 2;\n }\n };\n jQuery.fx = Tween.prototype.init;\n jQuery.fx.step = {};\n var fxNow,\n timerId,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rfxnum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\"),\n rrun = /queueHooks$/,\n animationPrefilters = [defaultPrefilter],\n tweeners = {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value),\n target = tween.cur(),\n parts = rfxnum.exec(value),\n unit = parts && parts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n start = (jQuery.cssNumber[prop] || unit !== \"px\" && +target) && rfxnum.exec(jQuery.css(tween.elem, prop)),\n scale = 1,\n maxIterations = 20;\n\n if (start && start[3] !== unit) {\n unit = unit || start[3];\n parts = parts || [];\n start = +target || 1;\n\n do {\n scale = scale || \".5\";\n start = start / scale;\n jQuery.style(tween.elem, prop, start + unit);\n } while (scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations);\n }\n\n if (parts) {\n start = tween.start = +start || +target || 0;\n tween.unit = unit;\n tween.end = parts[1] ? start + (parts[1] + 1) * parts[2] : +parts[2];\n }\n\n return tween;\n }]\n };\n\n function createFxNow() {\n setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = jQuery.now();\n }\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n };\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (tweeners[prop] || []).concat(tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n tween,\n hooks,\n oldfire,\n display,\n checkDisplay,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHidden(elem),\n dataShow = data_priv.get(elem, \"fxshow\");\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n }\n\n if (elem.nodeType === 1 && (\"height\" in props || \"width\" in props)) {\n opts.overflow = [style.overflow, style.overflowX, style.overflowY];\n display = jQuery.css(elem, \"display\");\n checkDisplay = display === \"none\" ? data_priv.get(elem, \"olddisplay\") || defaultDisplay(elem.nodeName) : display;\n\n if (checkDisplay === \"inline\" && jQuery.css(elem, \"float\") === \"none\") {\n style.display = \"inline-block\";\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n }\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.exec(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true;\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n } else {\n display = undefined;\n }\n }\n\n if (!jQuery.isEmptyObject(orig)) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = data_priv.access(elem, \"fxshow\", {});\n }\n\n if (toggle) {\n dataShow.hidden = !hidden;\n }\n\n if (hidden) {\n jQuery(elem).show();\n } else {\n anim.done(function () {\n jQuery(elem).hide();\n });\n }\n\n anim.done(function () {\n var prop;\n data_priv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n\n for (prop in orig) {\n tween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = tween.start;\n\n if (hidden) {\n tween.end = tween.start;\n tween.start = prop === \"width\" || prop === \"height\" ? 1 : 0;\n }\n }\n }\n } else if ((display === \"none\" ? defaultDisplay(elem.nodeName) : display) === \"inline\") {\n style.display = display;\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks;\n\n for (index in props) {\n name = jQuery.camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (jQuery.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name];\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = animationPrefilters.length,\n deferred = jQuery.Deferred().always(function () {\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]);\n\n if (percent < 1 && length) {\n return remaining;\n } else {\n deferred.resolveWith(elem, [animation]);\n return false;\n }\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {}\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n }\n\n if (gotoEnd) {\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = animationPrefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (jQuery.isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n }\n\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweener: function tweener(props, callback) {\n if (jQuery.isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.split(\" \");\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n tweeners[prop] = tweeners[prop] || [];\n tweeners[prop].unshift(callback);\n }\n },\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n animationPrefilters.unshift(callback);\n } else {\n animationPrefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof2(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || jQuery.isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !jQuery.isFunction(easing) && easing\n };\n opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === \"number\" ? opt.duration : opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default;\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n }\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (jQuery.isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n return this.filter(isHidden).css(\"opacity\", 0).show().end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n var anim = Animation(this, jQuery.extend({}, prop), optall);\n\n if (empty || data_priv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue && type !== false) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = data_priv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n }\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = data_priv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0;\n data.finish = true;\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n }\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n }\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n });\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = jQuery.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i];\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n\n if (timer()) {\n jQuery.fx.start();\n } else {\n jQuery.timers.pop();\n }\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (!timerId) {\n timerId = setInterval(jQuery.fx.tick, jQuery.fx.interval);\n }\n };\n\n jQuery.fx.stop = function () {\n clearInterval(timerId);\n timerId = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n _default: 400\n };\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = setTimeout(next, time);\n\n hooks.stop = function () {\n clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\";\n support.checkOn = input.value !== \"\";\n support.optSelected = opt.selected;\n select.disabled = true;\n support.optDisabled = !opt.disabled;\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var nodeHook,\n boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var hooks,\n ret,\n nType = elem.nodeType;\n\n if (!elem || nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (_typeof2(elem.getAttribute) === strundefined) {\n return jQuery.prop(elem, name, value);\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n name = name.toLowerCase();\n hooks = jQuery.attrHooks[name] || (jQuery.expr.match.bool.test(name) ? boolHook : nodeHook);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n } else if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n } else {\n elem.setAttribute(name, value + \"\");\n return value;\n }\n } else if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n } else {\n ret = jQuery.find.attr(elem, name);\n return ret == null ? undefined : ret;\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n propName,\n i = 0,\n attrNames = value && value.match(rnotwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n propName = jQuery.propFix[name] || name;\n\n if (jQuery.expr.match.bool.test(name)) {\n elem[propName] = false;\n }\n\n elem.removeAttribute(name);\n }\n }\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && jQuery.nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n }\n });\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret, handle;\n\n if (!isXML) {\n handle = attrHandle[name];\n attrHandle[name] = ret;\n ret = getter(elem, name, isXML) != null ? name.toLowerCase() : null;\n attrHandle[name] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n propFix: {\n for: \"htmlFor\",\n class: \"className\"\n },\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n notxml,\n nType = elem.nodeType;\n\n if (!elem || nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n notxml = nType !== 1 || !jQuery.isXMLDoc(elem);\n\n if (notxml) {\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n return hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined ? ret : elem[name] = value;\n } else {\n return hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null ? ret : elem[name];\n }\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n return elem.hasAttribute(\"tabindex\") || rfocusable.test(elem.nodeName) || elem.href ? elem.tabIndex : -1;\n }\n }\n }\n });\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n var rclass = /[\\t\\r\\n\\f]/g;\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n clazz,\n j,\n finalValue,\n proceed = typeof value === \"string\" && value,\n i = 0,\n len = this.length;\n\n if (jQuery.isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, this.className));\n });\n }\n\n if (proceed) {\n classes = (value || \"\").match(rnotwhite) || [];\n\n for (; i < len; i++) {\n elem = this[i];\n cur = elem.nodeType === 1 && (elem.className ? (\" \" + elem.className + \" \").replace(rclass, \" \") : \" \");\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n }\n\n finalValue = jQuery.trim(cur);\n\n if (elem.className !== finalValue) {\n elem.className = finalValue;\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n clazz,\n j,\n finalValue,\n proceed = arguments.length === 0 || typeof value === \"string\" && value,\n i = 0,\n len = this.length;\n\n if (jQuery.isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, this.className));\n });\n }\n\n if (proceed) {\n classes = (value || \"\").match(rnotwhite) || [];\n\n for (; i < len; i++) {\n elem = this[i];\n cur = elem.nodeType === 1 && (elem.className ? (\" \" + elem.className + \" \").replace(rclass, \" \") : \"\");\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n while (cur.indexOf(\" \" + clazz + \" \") >= 0) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n }\n\n finalValue = value ? jQuery.trim(cur) : \"\";\n\n if (elem.className !== finalValue) {\n elem.className = finalValue;\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof2(value);\n\n if (typeof stateVal === \"boolean\" && type === \"string\") {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (jQuery.isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, this.className, stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n if (type === \"string\") {\n var className,\n i = 0,\n self = jQuery(this),\n classNames = value.match(rnotwhite) || [];\n\n while (className = classNames[i++]) {\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n }\n } else if (type === strundefined || type === \"boolean\") {\n if (this.className) {\n data_priv.set(this, \"__className__\", this.className);\n }\n\n this.className = this.className || value === false ? \"\" : data_priv.get(this, \"__className__\") || \"\";\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className = \" \" + selector + \" \",\n i = 0,\n l = this.length;\n\n for (; i < l; i++) {\n if (this[i].nodeType === 1 && (\" \" + this[i].className + \" \").replace(rclass, \" \").indexOf(className) >= 0) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n isFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value;\n return typeof ret === \"string\" ? ret.replace(rreturn, \"\") : ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n isFunction = jQuery.isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (isFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n }\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (jQuery.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()];\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : jQuery.trim(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\" || index < 0,\n values = one ? null : [],\n max = one ? index + 1 : options.length,\n i = index < 0 ? max : one ? index : 0;\n\n for (; i < max; i++) {\n option = options[i];\n\n if ((option.selected || i === index) && (support.optDisabled ? !option.disabled : option.getAttribute(\"disabled\") === null) && (!option.parentNode.disabled || !jQuery.nodeName(option.parentNode, \"optgroup\"))) {\n value = jQuery(option).val();\n\n if (one) {\n return value;\n }\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n\n if (option.selected = jQuery.inArray(option.value, values) >= 0) {\n optionSet = true;\n }\n }\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n });\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (jQuery.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) >= 0;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n });\n jQuery.each((\"blur focus focusin focusout load resize scroll unload click dblclick \" + \"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" + \"change select submit keydown keypress keyup error contextmenu\").split(\" \"), function (i, name) {\n jQuery.fn[name] = function (data, fn) {\n return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);\n };\n });\n jQuery.fn.extend({\n hover: function hover(fnOver, fnOut) {\n return this.mouseenter(fnOver).mouseleave(fnOut || fnOver);\n },\n bind: function bind(types, data, fn) {\n return this.on(types, null, data, fn);\n },\n unbind: function unbind(types, fn) {\n return this.off(types, null, fn);\n },\n delegate: function delegate(selector, types, data, fn) {\n return this.on(types, selector, data, fn);\n },\n undelegate: function undelegate(selector, types, fn) {\n return arguments.length === 1 ? this.off(selector, \"**\") : this.off(types, selector || \"**\", fn);\n }\n });\n var nonce = jQuery.now();\n var rquery = /\\?/;\n\n jQuery.parseJSON = function (data) {\n return JSON.parse(data + \"\");\n };\n\n jQuery.parseXML = function (data) {\n var xml, tmp;\n\n if (!data || typeof data !== \"string\") {\n return null;\n }\n\n try {\n tmp = new DOMParser();\n xml = tmp.parseFromString(data, \"text/xml\");\n } catch (e) {\n xml = undefined;\n }\n\n if (!xml || xml.getElementsByTagName(\"parsererror\").length) {\n jQuery.error(\"Invalid XML: \" + data);\n }\n\n return xml;\n };\n\n var rhash = /#.*$/,\n rts = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/gm,\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n rurl = /^([\\w.+-]+:)(?:\\/\\/(?:[^\\/?#]*@|)([^\\/?#:]*)(?::(\\d+)|)|)/,\n prefilters = {},\n transports = {},\n allTypes = \"*/\".concat(\"*\"),\n ajaxLocation = window.location.href,\n ajaxLocParts = rurl.exec(ajaxLocation.toLowerCase()) || [];\n\n function addToPrefiltersOrTransports(structure) {\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnotwhite) || [];\n\n if (jQuery.isFunction(func)) {\n while (dataType = dataTypes[i++]) {\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func);\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n }\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n }\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes;\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n }\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n }\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n }\n\n finalDataType = finalDataType || firstDataType;\n }\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n dataTypes = s.dataTypes.slice();\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift();\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n }\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n if (current === \"*\") {\n current = prev;\n } else if (prev !== \"*\" && prev !== current) {\n conv = converters[prev + \" \" + current] || converters[\"* \" + current];\n\n if (!conv) {\n for (conv2 in converters) {\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n if (conv === true) {\n conv = converters[conv2];\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n }\n\n if (conv !== true) {\n if (conv && s[\"throws\"]) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n active: 0,\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: ajaxLocation,\n type: \"GET\",\n isLocal: rlocalProtocol.test(ajaxLocParts[1]),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /xml/,\n html: /html/,\n json: /json/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n converters: {\n \"* text\": String,\n \"text html\": true,\n \"text json\": jQuery.parseJSON,\n \"text xml\": jQuery.parseXML\n },\n flatOptions: {\n url: true,\n context: true\n }\n },\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n ajax: function ajax(url, options) {\n if (_typeof2(url) === \"object\") {\n options = url;\n url = undefined;\n }\n\n options = options || {};\n\n var transport,\n cacheURL,\n responseHeadersString,\n responseHeaders,\n timeoutTimer,\n parts,\n fireGlobals,\n i,\n s = jQuery.ajaxSetup({}, options),\n callbackContext = s.context || s,\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n _statusCode = s.statusCode || {},\n requestHeaders = {},\n requestHeadersNames = {},\n state = 0,\n strAbort = \"canceled\",\n jqXHR = {\n readyState: 0,\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (state === 2) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase()] = match[2];\n }\n }\n\n match = responseHeaders[key.toLowerCase()];\n }\n\n return match == null ? null : match;\n },\n getAllResponseHeaders: function getAllResponseHeaders() {\n return state === 2 ? responseHeadersString : null;\n },\n setRequestHeader: function setRequestHeader(name, value) {\n var lname = name.toLowerCase();\n\n if (!state) {\n name = requestHeadersNames[lname] = requestHeadersNames[lname] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n overrideMimeType: function overrideMimeType(type) {\n if (!state) {\n s.mimeType = type;\n }\n\n return this;\n },\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (state < 2) {\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n } else {\n jqXHR.always(map[jqXHR.status]);\n }\n }\n\n return this;\n },\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n };\n\n deferred.promise(jqXHR).complete = completeDeferred.add;\n jqXHR.success = jqXHR.done;\n jqXHR.error = jqXHR.fail;\n s.url = ((url || s.url || ajaxLocation) + \"\").replace(rhash, \"\").replace(rprotocol, ajaxLocParts[1] + \"//\");\n s.type = options.method || options.type || s.method || s.type;\n s.dataTypes = jQuery.trim(s.dataType || \"*\").toLowerCase().match(rnotwhite) || [\"\"];\n\n if (s.crossDomain == null) {\n parts = rurl.exec(s.url.toLowerCase());\n s.crossDomain = !!(parts && (parts[1] !== ajaxLocParts[1] || parts[2] !== ajaxLocParts[2] || (parts[3] || (parts[1] === \"http:\" ? \"80\" : \"443\")) !== (ajaxLocParts[3] || (ajaxLocParts[1] === \"http:\" ? \"80\" : \"443\"))));\n }\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n }\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\n\n if (state === 2) {\n return jqXHR;\n }\n\n fireGlobals = jQuery.event && s.global;\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n }\n\n s.type = s.type.toUpperCase();\n s.hasContent = !rnoContent.test(s.type);\n cacheURL = s.url;\n\n if (!s.hasContent) {\n if (s.data) {\n cacheURL = s.url += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\n delete s.data;\n }\n\n if (s.cache === false) {\n s.url = rts.test(cacheURL) ? cacheURL.replace(rts, \"$1_=\" + nonce++) : cacheURL + (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce++;\n }\n }\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n }\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n }\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]);\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n }\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || state === 2)) {\n return jqXHR.abort();\n }\n\n strAbort = \"abort\";\n\n for (i in {\n success: 1,\n error: 1,\n complete: 1\n }) {\n jqXHR[i](s[i]);\n }\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1;\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n }\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n state = 1;\n transport.send(requestHeaders, done);\n } catch (e) {\n if (state < 2) {\n done(-1, e);\n } else {\n throw e;\n }\n }\n }\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText;\n\n if (state === 2) {\n return;\n }\n\n state = 2;\n\n if (timeoutTimer) {\n clearTimeout(timeoutTimer);\n }\n\n transport = undefined;\n responseHeadersString = headers || \"\";\n jqXHR.readyState = status > 0 ? 4 : 0;\n isSuccess = status >= 200 && status < 300 || status === 304;\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n }\n\n response = ajaxConvert(s, response, jqXHR, isSuccess);\n\n if (isSuccess) {\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n }\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\";\n } else if (status === 304) {\n statusText = \"notmodified\";\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n }\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\";\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n }\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n }\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (i, method) {\n jQuery[method] = function (url, data, callback, type) {\n if (jQuery.isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n }\n\n return jQuery.ajax({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n });\n };\n });\n\n jQuery._evalUrl = function (url) {\n return jQuery.ajax({\n url: url,\n type: \"GET\",\n dataType: \"script\",\n async: false,\n global: false,\n throws: true\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (jQuery.isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapAll(html.call(this, i));\n });\n }\n\n if (this[0]) {\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (jQuery.isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var isFunction = jQuery.isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(isFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap() {\n return this.parent().each(function () {\n if (!jQuery.nodeName(this, \"body\")) {\n jQuery(this).replaceWith(this.childNodes);\n }\n }).end();\n }\n });\n\n jQuery.expr.filters.hidden = function (elem) {\n return elem.offsetWidth <= 0 && elem.offsetHeight <= 0;\n };\n\n jQuery.expr.filters.visible = function (elem) {\n return !jQuery.expr.filters.hidden(elem);\n };\n\n var r20 = /%20/g,\n rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (jQuery.isArray(obj)) {\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n add(prefix, v);\n } else {\n buildParams(prefix + \"[\" + (_typeof2(v) === \"object\" ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && jQuery.type(obj) === \"object\") {\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n add(prefix, obj);\n }\n }\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, value) {\n value = jQuery.isFunction(value) ? value() : value == null ? \"\" : value;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\n };\n\n if (traditional === undefined) {\n traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n }\n\n if (jQuery.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n }\n\n return s.join(\"&\").replace(r20, \"+\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type;\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (i, elem) {\n var val = jQuery(this).val();\n return val == null ? null : jQuery.isArray(val) ? jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }) : {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrId = 0,\n xhrCallbacks = {},\n xhrSuccessStatus = {\n 0: 200,\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n\n if (window.attachEvent) {\n window.attachEvent(\"onunload\", function () {\n for (var key in xhrCallbacks) {\n xhrCallbacks[key]();\n }\n });\n }\n\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback;\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr(),\n id = ++xhrId;\n xhr.open(options.type, options.url, options.async, options.username, options.password);\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n }\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n }\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n }\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n }\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n delete xhrCallbacks[id];\n _callback = xhr.onload = xhr.onerror = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n complete(xhr.status, xhr.statusText);\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, typeof xhr.responseText === \"string\" ? {\n text: xhr.responseText\n } : undefined, xhr.getAllResponseHeaders());\n }\n }\n };\n };\n\n xhr.onload = _callback();\n xhr.onerror = _callback(\"error\");\n _callback = xhrCallbacks[id] = _callback(\"abort\");\n\n try {\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n });\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /(?:java|ecma)script/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n });\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n });\n jQuery.ajaxTransport(\"script\", function (s) {\n if (s.crossDomain) {\n var script, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"<script>\").prop({\n async: true,\n charset: s.scriptCharset,\n src: s.url\n }).on(\"load error\", _callback2 = function callback(evt) {\n script.remove();\n _callback2 = null;\n\n if (evt) {\n complete(evt.type === \"error\" ? 404 : 200, evt.type);\n }\n });\n document.head.appendChild(script[0]);\n },\n abort: function abort() {\n if (_callback2) {\n _callback2();\n }\n }\n };\n }\n });\n var oldCallbacks = [],\n rjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n jQuery.ajaxSetup({\n jsonp: \"callback\",\n jsonpCallback: function jsonpCallback() {\n var callback = oldCallbacks.pop() || jQuery.expando + \"_\" + nonce++;\n this[callback] = true;\n return callback;\n }\n });\n jQuery.ajaxPrefilter(\"json jsonp\", function (s, originalSettings, jqXHR) {\n var callbackName,\n overwritten,\n responseContainer,\n jsonProp = s.jsonp !== false && (rjsonp.test(s.url) ? \"url\" : typeof s.data === \"string\" && !(s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") && rjsonp.test(s.data) && \"data\");\n\n if (jsonProp || s.dataTypes[0] === \"jsonp\") {\n callbackName = s.jsonpCallback = jQuery.isFunction(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback;\n\n if (jsonProp) {\n s[jsonProp] = s[jsonProp].replace(rjsonp, \"$1\" + callbackName);\n } else if (s.jsonp !== false) {\n s.url += (rquery.test(s.url) ? \"&\" : \"?\") + s.jsonp + \"=\" + callbackName;\n }\n\n s.converters[\"script json\"] = function () {\n if (!responseContainer) {\n jQuery.error(callbackName + \" was not called\");\n }\n\n return responseContainer[0];\n };\n\n s.dataTypes[0] = \"json\";\n overwritten = window[callbackName];\n\n window[callbackName] = function () {\n responseContainer = arguments;\n };\n\n jqXHR.always(function () {\n window[callbackName] = overwritten;\n\n if (s[callbackName]) {\n s.jsonpCallback = originalSettings.jsonpCallback;\n oldCallbacks.push(callbackName);\n }\n\n if (responseContainer && jQuery.isFunction(overwritten)) {\n overwritten(responseContainer[0]);\n }\n\n responseContainer = overwritten = undefined;\n });\n return \"script\";\n }\n });\n\n jQuery.parseHTML = function (data, context, keepScripts) {\n if (!data || typeof data !== \"string\") {\n return null;\n }\n\n if (typeof context === \"boolean\") {\n keepScripts = context;\n context = false;\n }\n\n context = context || document;\n var parsed = rsingleTag.exec(data),\n scripts = !keepScripts && [];\n\n if (parsed) {\n return [context.createElement(parsed[1])];\n }\n\n parsed = jQuery.buildFragment([data], context, scripts);\n\n if (scripts && scripts.length) {\n jQuery(scripts).remove();\n }\n\n return jQuery.merge([], parsed.childNodes);\n };\n\n var _load = jQuery.fn.load;\n\n jQuery.fn.load = function (url, params, callback) {\n if (typeof url !== \"string\" && _load) {\n return _load.apply(this, arguments);\n }\n\n var selector,\n type,\n response,\n self = this,\n off = url.indexOf(\" \");\n\n if (off >= 0) {\n selector = jQuery.trim(url.slice(off));\n url = url.slice(0, off);\n }\n\n if (jQuery.isFunction(params)) {\n callback = params;\n params = undefined;\n } else if (params && _typeof2(params) === \"object\") {\n type = \"POST\";\n }\n\n if (self.length > 0) {\n jQuery.ajax({\n url: url,\n type: type,\n dataType: \"html\",\n data: params\n }).done(function (responseText) {\n response = arguments;\n self.html(selector ? jQuery(\"<div>\").append(jQuery.parseHTML(responseText)).find(selector) : responseText);\n }).complete(callback && function (jqXHR, status) {\n self.each(callback, response || [jqXHR.responseText, status, jqXHR]);\n });\n }\n\n return this;\n };\n\n jQuery.each([\"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\"], function (i, type) {\n jQuery.fn[type] = function (fn) {\n return this.on(type, fn);\n };\n });\n\n jQuery.expr.filters.animated = function (elem) {\n return jQuery.grep(jQuery.timers, function (fn) {\n return elem === fn.elem;\n }).length;\n };\n\n var docElem = window.document.documentElement;\n\n function getWindow(elem) {\n return jQuery.isWindow(elem) ? elem : elem.nodeType === 9 && elem.defaultView;\n }\n\n jQuery.offset = {\n setOffset: function setOffset(elem, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = jQuery.css(elem, \"position\"),\n curElem = jQuery(elem),\n props = {};\n\n if (position === \"static\") {\n elem.style.position = \"relative\";\n }\n\n curOffset = curElem.offset();\n curCSSTop = jQuery.css(elem, \"top\");\n curCSSLeft = jQuery.css(elem, \"left\");\n calculatePosition = (position === \"absolute\" || position === \"fixed\") && (curCSSTop + curCSSLeft).indexOf(\"auto\") > -1;\n\n if (calculatePosition) {\n curPosition = curElem.position();\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n\n if (jQuery.isFunction(options)) {\n options = options.call(elem, i, curOffset);\n }\n\n if (options.top != null) {\n props.top = options.top - curOffset.top + curTop;\n }\n\n if (options.left != null) {\n props.left = options.left - curOffset.left + curLeft;\n }\n\n if (\"using\" in options) {\n options.using.call(elem, props);\n } else {\n curElem.css(props);\n }\n }\n };\n jQuery.fn.extend({\n offset: function offset(options) {\n if (arguments.length) {\n return options === undefined ? this : this.each(function (i) {\n jQuery.offset.setOffset(this, options, i);\n });\n }\n\n var docElem,\n win,\n elem = this[0],\n box = {\n top: 0,\n left: 0\n },\n doc = elem && elem.ownerDocument;\n\n if (!doc) {\n return;\n }\n\n docElem = doc.documentElement;\n\n if (!jQuery.contains(docElem, elem)) {\n return box;\n }\n\n if (_typeof2(elem.getBoundingClientRect) !== strundefined) {\n box = elem.getBoundingClientRect();\n }\n\n win = getWindow(doc);\n return {\n top: box.top + win.pageYOffset - docElem.clientTop,\n left: box.left + win.pageXOffset - docElem.clientLeft\n };\n },\n position: function position() {\n if (!this[0]) {\n return;\n }\n\n var offsetParent,\n offset,\n elem = this[0],\n parentOffset = {\n top: 0,\n left: 0\n };\n\n if (jQuery.css(elem, \"position\") === \"fixed\") {\n offset = elem.getBoundingClientRect();\n } else {\n offsetParent = this.offsetParent();\n offset = this.offset();\n\n if (!jQuery.nodeName(offsetParent[0], \"html\")) {\n parentOffset = offsetParent.offset();\n }\n\n parentOffset.top += jQuery.css(offsetParent[0], \"borderTopWidth\", true);\n parentOffset.left += jQuery.css(offsetParent[0], \"borderLeftWidth\", true);\n }\n\n return {\n top: offset.top - parentOffset.top - jQuery.css(elem, \"marginTop\", true),\n left: offset.left - parentOffset.left - jQuery.css(elem, \"marginLeft\", true)\n };\n },\n offsetParent: function offsetParent() {\n return this.map(function () {\n var offsetParent = this.offsetParent || docElem;\n\n while (offsetParent && !jQuery.nodeName(offsetParent, \"html\") && jQuery.css(offsetParent, \"position\") === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || docElem;\n });\n }\n });\n jQuery.each({\n scrollLeft: \"pageXOffset\",\n scrollTop: \"pageYOffset\"\n }, function (method, prop) {\n var top = \"pageYOffset\" === prop;\n\n jQuery.fn[method] = function (val) {\n return access(this, function (elem, method, val) {\n var win = getWindow(elem);\n\n if (val === undefined) {\n return win ? win[prop] : elem[method];\n }\n\n if (win) {\n win.scrollTo(!top ? val : window.pageXOffset, top ? val : window.pageYOffset);\n } else {\n elem[method] = val;\n }\n }, method, val, arguments.length, null);\n };\n });\n jQuery.each([\"top\", \"left\"], function (i, prop) {\n jQuery.cssHooks[prop] = addGetHookIf(support.pixelPosition, function (elem, computed) {\n if (computed) {\n computed = curCSS(elem, prop);\n return rnumnonpx.test(computed) ? jQuery(elem).position()[prop] + \"px\" : computed;\n }\n });\n });\n jQuery.each({\n Height: \"height\",\n Width: \"width\"\n }, function (name, type) {\n jQuery.each({\n padding: \"inner\" + name,\n content: type,\n \"\": \"outer\" + name\n }, function (defaultExtra, funcName) {\n jQuery.fn[funcName] = function (margin, value) {\n var chainable = arguments.length && (defaultExtra || typeof margin !== \"boolean\"),\n extra = defaultExtra || (margin === true || value === true ? \"margin\" : \"border\");\n return access(this, function (elem, type, value) {\n var doc;\n\n if (jQuery.isWindow(elem)) {\n return elem.document.documentElement[\"client\" + name];\n }\n\n if (elem.nodeType === 9) {\n doc = elem.documentElement;\n return Math.max(elem.body[\"scroll\" + name], doc[\"scroll\" + name], elem.body[\"offset\" + name], doc[\"offset\" + name], doc[\"client\" + name]);\n }\n\n return value === undefined ? jQuery.css(elem, type, extra) : jQuery.style(elem, type, value, extra);\n }, type, chainable ? margin : undefined, chainable, null);\n };\n });\n });\n\n jQuery.fn.size = function () {\n return this.length;\n };\n\n jQuery.fn.andSelf = jQuery.fn.addBack;\n\n if (typeof define === \"function\" && define.amd) {\n define(\"jquery\", [], function () {\n return jQuery;\n });\n }\n\n jQuery.noConflict = function (deep) {\n if (deep && window.jQuery === jQuery) {\n TRjQuery = _TRjQuery;\n }\n\n return jQuery;\n };\n\n if (_typeof2(noGlobal) === strundefined) {\n TRjQuery = jQuery;\n }\n\n return jQuery;\n});\n\n(function ($) {\n function findLine(sdpLines, prefix, substr) {\n return findLineInRange(sdpLines, 0, -1, prefix, substr);\n }\n\n function findLineInRange(sdpLines, startLine, endLine, prefix, substr) {\n var realEndLine = endLine != -1 ? endLine : sdpLines.length;\n\n for (var i = startLine; i < realEndLine; ++i) {\n if (sdpLines[i].indexOf(prefix) === 0) {\n if (!substr || sdpLines[i].toLowerCase().indexOf(substr.toLowerCase()) !== -1) {\n return i;\n }\n }\n }\n\n return null;\n }\n\n function getCodecPayloadType(sdpLine) {\n var pattern = new RegExp(\"a=rtpmap:(\\\\d+) \\\\w+\\\\/\\\\d+\");\n var result = sdpLine.match(pattern);\n return result && result.length == 2 ? result[1] : null;\n }\n\n function setDefaultCodec(mLine, payload) {\n var elements = mLine.split(\" \");\n var newLine = [];\n var index = 0;\n\n for (var i = 0; i < elements.length; i++) {\n if (index === 3) {\n newLine[index++] = payload;\n }\n\n if (elements[i] !== payload) newLine[index++] = elements[i];\n }\n\n return newLine.join(\" \");\n }\n\n $.FSRTC = function (options) {\n this.options = $.extend({\n useVideo: null,\n useStereo: false,\n userData: null,\n localVideo: null,\n screenShare: false,\n useCamera: \"any\",\n iceServers: false,\n videoParams: {},\n audioParams: {},\n callbacks: {\n onICEComplete: function onICEComplete() {},\n onICE: function onICE() {},\n onOfferSDP: function onOfferSDP() {}\n }\n }, options);\n this.audioEnabled = true;\n this.videoEnabled = true;\n this.mediaData = {\n SDP: null,\n profile: {},\n candidateList: []\n };\n this.constraints = {\n offerToReceiveAudio: this.options.useSpeak === \"none\" ? false : true,\n offerToReceiveVideo: this.options.useVideo ? true : false\n };\n\n if (self.options.useVideo) {\n self.options.useVideo.style.display = \"none\";\n }\n\n setCompat();\n checkCompat();\n };\n\n $.FSRTC.validRes = [];\n\n $.FSRTC.prototype.useVideo = function (obj, local) {\n var self = this;\n\n if (obj) {\n self.options.useVideo = obj;\n self.options.localVideo = local;\n self.constraints.offerToReceiveVideo = true;\n } else {\n self.options.useVideo = null;\n self.options.localVideo = null;\n self.constraints.offerToReceiveVideo = false;\n }\n\n if (self.options.useVideo) {\n self.options.useVideo.style.display = \"none\";\n }\n };\n\n $.FSRTC.prototype.useStereo = function (on) {\n var self = this;\n self.options.useStereo = on;\n };\n\n $.FSRTC.prototype.stereoHack = function (sdp) {\n var self = this;\n\n if (!self.options.useStereo) {\n return sdp;\n }\n\n var sdpLines = sdp.split(\"\\r\\n\");\n var opusIndex = findLine(sdpLines, \"a=rtpmap\", \"opus/48000\"),\n opusPayload;\n\n if (!opusIndex) {\n return sdp;\n } else {\n opusPayload = getCodecPayloadType(sdpLines[opusIndex]);\n }\n\n var fmtpLineIndex = findLine(sdpLines, \"a=fmtp:\" + opusPayload.toString());\n\n if (fmtpLineIndex === null) {\n sdpLines[opusIndex] = sdpLines[opusIndex] + \"\\r\\na=fmtp:\" + opusPayload.toString() + \" stereo=1; sprop-stereo=1\";\n } else {\n sdpLines[fmtpLineIndex] = sdpLines[fmtpLineIndex].concat(\"; stereo=1; sprop-stereo=1\");\n }\n\n sdp = sdpLines.join(\"\\r\\n\");\n return sdp;\n };\n\n $.FSRTC.prototype.candidateHack = function (sdp) {\n var self = this;\n\n if (!self.options.browserIP) {\n return sdp;\n }\n\n var sdpLines = sdp.split(\"\\r\\n\");\n sdpLines.forEach(function (line, i) {\n if (line.indexOf(\"a=candidate:\") == 0 && line.indexOf(\".local \") !== -1) {\n sdpLines[i] = sdpLines[i].replace(/\\w{8}(-\\w{4}){3}-\\w{12}\\.local/, self.options.browserIP);\n }\n });\n sdp = sdpLines.join(\"\\r\\n\");\n return sdp;\n };\n\n function setCompat() {}\n\n function checkCompat() {\n return true;\n }\n\n function onStreamError(self, e) {\n console.log(\"There has been a problem retrieving the streams - did you allow access? Check Device Resolution\", e);\n doCallback(self, \"onError\", e);\n }\n\n function onStreamSuccess(self, stream) {\n console.log(\"Stream Success\");\n doCallback(self, \"onStream\", stream);\n }\n\n function _onICE(self, candidate) {\n self.mediaData.candidate = candidate;\n self.mediaData.candidateList.push(self.mediaData.candidate);\n doCallback(self, \"onICE\");\n }\n\n function doCallback(self, func, arg) {\n if (func in self.options.callbacks) {\n self.options.callbacks[func](self, arg);\n }\n }\n\n function _onICEComplete(self, candidate) {\n console.log(\"ICE Complete\");\n doCallback(self, \"onICEComplete\");\n }\n\n function _onChannelError(self, e) {\n console.error(\"Channel Error\", e);\n doCallback(self, \"onError\", e);\n }\n\n function _onICESDP(self, sdp) {\n self.mediaData.SDP = self.stereoHack(sdp.sdp);\n self.mediaData.SDP = self.candidateHack(self.mediaData.SDP);\n console.log(\"ICE SDP\");\n doCallback(self, \"onICESDP\");\n }\n\n function onAnswerSDP(self, sdp) {\n self.answer.SDP = self.stereoHack(sdp.sdp);\n console.log(\"ICE ANSWER SDP\");\n doCallback(self, \"onAnswerSDP\", self.answer.SDP);\n }\n\n function onMessage(self, msg) {\n console.log(\"Message\");\n doCallback(self, \"onICESDP\", msg);\n }\n\n function FSRTCattachMediaStream(element, stream) {\n if (typeof element.srcObject !== \"undefined\") {\n element.srcObject = stream;\n } else {\n console.error(\"Error attaching stream to element.\");\n }\n }\n\n function _onRemoteStream(self, stream) {\n if (self.options.useVideo) {\n self.options.useVideo.style.display = \"block\";\n var iOS = [\"iPad\", \"iPhone\", \"iPod\"].indexOf(navigator.platform) >= 0;\n\n if (iOS) {\n self.options.useVideo.setAttribute(\"playsinline\", true);\n self.options.useVideo.setAttribute(\"controls\", true);\n }\n }\n\n var element = self.options.useAudio;\n console.log(\"REMOTE STREAM\", stream, element);\n FSRTCattachMediaStream(element, stream);\n self.remoteStream = stream;\n }\n\n function _onOfferSDP(self, sdp) {\n self.mediaData.SDP = self.stereoHack(sdp.sdp);\n console.log(\"Offer SDP\");\n doCallback(self, \"onOfferSDP\");\n }\n\n $.FSRTC.prototype.answer = function (sdp, onSuccess, onError) {\n this.peer.addAnswerSDP({\n type: \"answer\",\n sdp: sdp\n }, onSuccess, onError);\n };\n\n $.FSRTC.prototype.stopPeer = function () {\n if (self.peer) {\n console.log(\"stopping peer\");\n self.peer.stop();\n }\n };\n\n $.FSRTC.prototype.stop = function () {\n var self = this;\n\n if (self.options.useVideo) {\n self.options.useVideo.style.display = \"none\";\n self.options.useVideo[\"src\"] = \"\";\n }\n\n if (self.localStream) {\n if (typeof self.localStream.stop == \"function\") {\n self.localStream.stop();\n } else {\n if (self.localStream.active) {\n var tracks = self.localStream.getTracks();\n console.log(tracks);\n tracks.forEach(function (track, index) {\n console.log(track);\n track.stop();\n });\n }\n }\n\n self.localStream = null;\n }\n\n if (self.options.localVideoStream) {\n if (typeof self.options.localVideoStream.stop == \"function\") {\n self.options.localVideoStream.stop();\n } else {\n if (self.options.localVideoStream.active) {\n var tracks = self.options.localVideoStream.getTracks();\n console.log(tracks);\n tracks.forEach(function (track, index) {\n console.log(track);\n track.stop();\n });\n }\n }\n }\n\n if (self.peer) {\n console.log(\"stopping peer\");\n self.peer.stop();\n }\n };\n\n $.FSRTC.prototype.getMute = function () {\n var self = this;\n return self.audioEnabled;\n };\n\n $.FSRTC.prototype.setMute = function (what) {\n var self = this;\n\n if (!self.localStream) {\n return false;\n }\n\n var audioTracks = self.localStream.getAudioTracks();\n\n for (var i = 0, len = audioTracks.length; i < len; i++) {\n switch (what) {\n case \"on\":\n audioTracks[i].enabled = true;\n break;\n\n case \"off\":\n audioTracks[i].enabled = false;\n break;\n\n case \"toggle\":\n audioTracks[i].enabled = !audioTracks[i].enabled;\n\n default:\n break;\n }\n\n self.audioEnabled = audioTracks[i].enabled;\n }\n\n return !self.audioEnabled;\n };\n\n $.FSRTC.prototype.getVideoMute = function () {\n var self = this;\n return self.videoEnabled;\n };\n\n $.FSRTC.prototype.setVideoMute = function (what) {\n var self = this;\n\n if (!self.localStream) {\n return false;\n }\n\n var videoTracks = self.localStream.getVideoTracks();\n\n for (var i = 0, len = videoTracks.length; i < len; i++) {\n switch (what) {\n case \"on\":\n videoTracks[i].enabled = true;\n break;\n\n case \"off\":\n videoTracks[i].enabled = false;\n break;\n\n case \"toggle\":\n videoTracks[i].enabled = !videoTracks[i].enabled;\n\n default:\n break;\n }\n\n self.videoEnabled = videoTracks[i].enabled;\n }\n\n return !self.videoEnabled;\n };\n\n $.FSRTC.prototype.createAnswer = function (params) {\n var self = this;\n self.type = \"answer\";\n self.remoteSDP = params.sdp;\n console.debug(\"inbound sdp: \", params.sdp);\n\n function onSuccess(stream) {\n self.localStream = stream;\n self.peer = FSRTCPeerConnection({\n type: self.type,\n attachStream: self.localStream,\n onICE: function onICE(candidate) {\n return _onICE(self, candidate);\n },\n onICEComplete: function onICEComplete() {\n return _onICEComplete(self);\n },\n onRemoteStream: function onRemoteStream(stream) {\n return _onRemoteStream(self, stream);\n },\n onICESDP: function onICESDP(sdp) {\n return _onICESDP(self, sdp);\n },\n onChannelError: function onChannelError(e) {\n return _onChannelError(self, e);\n },\n constraints: self.constraints,\n iceServers: self.options.iceServers,\n offerSDP: {\n type: \"offer\",\n sdp: self.remoteSDP\n },\n turnServer: self.options.turnServer\n });\n onStreamSuccess(self, stream);\n }\n\n function onError(e) {\n onStreamError(self, e);\n }\n\n var mediaParams = getMediaParams(self);\n console.log(\"Audio constraints\", mediaParams.audio);\n console.log(\"Video constraints\", mediaParams.video);\n\n if (mediaParams.audio !== false) {\n if (self.options.useVideo && self.options.localVideo) {\n getUserMedia({\n constraints: {\n audio: false,\n video: {\n deviceId: params.useCamera\n }\n },\n localVideo: self.options.localVideo,\n onsuccess: function onsuccess(e) {\n self.options.localVideoStream = e;\n console.log(\"local video ready\");\n },\n onerror: function onerror(e) {\n console.error(\"local video error!\");\n }\n });\n }\n\n getUserMedia({\n constraints: {\n audio: mediaParams.audio,\n video: mediaParams.video\n },\n video: mediaParams.useVideo,\n onsuccess: onSuccess,\n onerror: onError\n });\n } else {\n console.log(\"没有麦克风权限,单向通话\");\n self.peer = FSRTCPeerConnection({\n type: self.type,\n onICE: function onICE(candidate) {\n return _onICE(self, candidate);\n },\n onICEComplete: function onICEComplete() {\n return _onICEComplete(self);\n },\n onRemoteStream: function onRemoteStream(stream) {\n return _onRemoteStream(self, stream);\n },\n onICESDP: function onICESDP(sdp) {\n return _onICESDP(self, sdp);\n },\n onChannelError: function onChannelError(e) {\n return _onChannelError(self, e);\n },\n constraints: self.constraints,\n iceServers: self.options.iceServers,\n offerSDP: {\n type: \"offer\",\n sdp: self.remoteSDP\n },\n turnServer: self.options.turnServer\n });\n }\n };\n\n function getMediaParams(obj) {\n var audio;\n\n if (obj.options.useMic && obj.options.useMic === \"none\") {\n console.log(\"Microphone Disabled\");\n audio = false;\n } else if (obj.options.videoParams && obj.options.screenShare) {\n console.error(\"SCREEN SHARE\", obj.options.videoParams);\n audio = false;\n } else {\n audio = {};\n\n if (obj.options.audioParams) {\n audio = obj.options.audioParams;\n }\n\n if (obj.options.useMic !== \"any\") {\n audio.deviceId = {\n exact: obj.options.useMic\n };\n }\n }\n\n if (obj.options.useVideo && obj.options.localVideo) {\n getUserMedia({\n constraints: {\n audio: false,\n video: {\n deviceId: obj.options.useCamera\n }\n },\n localVideo: obj.options.localVideo,\n onsuccess: function onsuccess(e) {\n obj.options.localVideoStream = e;\n console.log(\"local video ready\");\n },\n onerror: function onerror(e) {\n console.error(\"local video error!\");\n }\n });\n }\n\n var video = {};\n var bestFrameRate = obj.options.videoParams.vertoBestFrameRate;\n var minFrameRate = obj.options.videoParams.minFrameRate || 15;\n delete obj.options.videoParams.vertoBestFrameRate;\n\n if (obj.options.screenShare) {\n if (!obj.options.useCamera && !!navigator.mozGetUserMedia) {\n var dowin = window.confirm(\"Do you want to share an application window? If not you can share an entire screen.\");\n video = {\n width: {\n min: obj.options.videoParams.minWidth,\n max: obj.options.videoParams.maxWidth\n },\n height: {\n min: obj.options.videoParams.minHeight,\n max: obj.options.videoParams.maxHeight\n },\n mediaSource: dowin ? \"window\" : \"screen\"\n };\n } else {\n var opt = [];\n\n if (obj.options.useCamera) {\n opt.push({\n sourceId: obj.options.useCamera\n });\n }\n\n if (bestFrameRate) {\n opt.push({\n minFrameRate: bestFrameRate\n });\n opt.push({\n maxFrameRate: bestFrameRate\n });\n }\n\n video = {\n mandatory: obj.options.videoParams,\n optional: opt\n };\n }\n } else {\n video = {\n width: {\n min: obj.options.videoParams.minWidth,\n max: obj.options.videoParams.maxWidth\n },\n height: {\n min: obj.options.videoParams.minHeight,\n max: obj.options.videoParams.maxHeight\n }\n };\n var useVideo = obj.options.useVideo;\n\n if (useVideo && obj.options.useCamera && obj.options.useCamera !== \"none\") {\n if (obj.options.useCamera !== \"any\") {\n video.deviceId = obj.options.useCamera;\n }\n\n if (bestFrameRate) {\n video.frameRate = {\n ideal: bestFrameRate,\n min: minFrameRate,\n max: 30\n };\n }\n } else {\n console.log(\"Camera Disabled\");\n video = false;\n useVideo = false;\n }\n }\n\n return {\n audio: audio,\n video: video,\n useVideo: useVideo\n };\n }\n\n $.FSRTC.prototype.call = function (profile) {\n checkCompat();\n var self = this;\n var screen = false;\n self.type = \"offer\";\n\n if (self.options.videoParams && self.options.screenShare) {\n screen = true;\n }\n\n function onSuccess(stream) {\n self.localStream = stream;\n\n if (screen) {\n self.constraints.offerToReceiveVideo = false;\n self.constraints.offerToReceiveAudio = false;\n self.constraints.offerToSendAudio = false;\n }\n\n self.peer = FSRTCPeerConnection({\n type: self.type,\n attachStream: self.localStream,\n onICE: function onICE(candidate) {\n return _onICE(self, candidate);\n },\n onICEComplete: function onICEComplete() {\n return _onICEComplete(self);\n },\n onRemoteStream: screen ? function (stream) {} : function (stream) {\n return _onRemoteStream(self, stream);\n },\n onOfferSDP: function onOfferSDP(sdp) {\n return _onOfferSDP(self, sdp);\n },\n onICESDP: function onICESDP(sdp) {\n return _onICESDP(self, sdp);\n },\n onChannelError: function onChannelError(e) {\n return _onChannelError(self, e);\n },\n constraints: self.constraints,\n iceServers: self.options.iceServers,\n turnServer: self.options.turnServer\n });\n onStreamSuccess(self, stream);\n }\n\n function onError(e) {\n onStreamError(self, e);\n }\n\n var mediaParams = getMediaParams(self);\n console.log(\"Audio constraints\", mediaParams.audio);\n console.log(\"Video constraints\", mediaParams.video);\n\n if (mediaParams.audio || mediaParams.video) {\n getUserMedia({\n constraints: {\n audio: mediaParams.audio,\n video: mediaParams.video\n },\n video: mediaParams.useVideo,\n onsuccess: onSuccess,\n onerror: onError\n });\n } else {\n onSuccess(null);\n }\n };\n\n $.FSRTC.prototype.getScreenShare = function () {\n var self = this;\n return self.screenShareEnabled;\n };\n\n $.FSRTC.prototype.setScreenShare = function (what, videoSender) {\n var self = this;\n\n if (!self.localStream) {\n return false;\n }\n\n switch (what) {\n case \"on\":\n self.screenShareEnabled = true;\n break;\n\n case \"off\":\n self.screenShareEnabled = false;\n break;\n\n case \"toggle\":\n self.screenShareEnabled = !self.screenShareEnabled;\n break;\n\n default:\n break;\n }\n\n console.log(\"【投屏】\", \"投屏标识:\", self.screenShareEnabled, \",sender\", videoSender);\n\n if (!videoSender) {\n console.log(\"【投屏】\", \"投屏sender获取失败\", videoSender);\n self.screenShareEnabled = false;\n alert(\"投屏调用失败\");\n return self.screenShareEnabled;\n }\n\n var videoTrack00;\n\n if (self.screenShareEnabled) {\n console.log(\"【投屏】\", \"开始投屏\");\n var parameters = videoSender.getParameters();\n\n if (parameters.encodings && parameters.encodings.length > 0) {\n parameters.encodings[0].maxBitrate = 25e5;\n parameters.encodings[0].scaleResolutionDownBy = 1;\n }\n\n console.log(\"【投屏】参数\", parameters);\n videoSender.setParameters(parameters).then(function () {\n navigator.mediaDevices.getDisplayMedia({\n video: true\n }).then(function (screenStream) {\n var videoElement = document.getElementById(\"share_video\");\n videoElement.srcObject = screenStream;\n videoTrack00 = screenStream.getVideoTracks()[0];\n videoSender.replaceTrack(videoTrack00);\n }).catch(function (error) {\n alert(\"浏览器不支持投屏\");\n });\n }).catch(function (error) {\n console.error(\"Error adjusting encoding parameters:\", error);\n });\n } else {\n var videoElement = document.getElementById(\"share_video\");\n videoElement.srcObject = null;\n console.log(\"【投屏】\", \"切回本地视频\", self.localStream);\n videoTrack00 = self.localStream.getVideoTracks()[0];\n videoSender.replaceTrack(videoTrack00);\n }\n\n return self.screenShareEnabled;\n };\n\n function FSRTCPeerConnection(options) {\n var gathering = false,\n done = false;\n var config = {};\n var default_ice = [{\n urls: [\"stun:stun.l.google.com:19302\"]\n }];\n\n if (self.options.turnServer) {\n default_ice.push(self.options.turnServer);\n }\n\n if (options.iceServers) {\n if (typeof options.iceServers === \"boolean\") {\n config.iceServers = default_ice;\n } else {\n config.iceServers = options.iceServers;\n }\n }\n\n config.bundlePolicy = \"max-compat\";\n var peer = new window.RTCPeerConnection(config);\n openOffererChannel();\n var x = 0;\n\n function ice_handler() {\n done = true;\n gathering = null;\n\n if (options.onICEComplete) {\n options.onICEComplete();\n }\n\n if (options.type == \"offer\") {\n options.onICESDP(peer.localDescription);\n } else {\n if (!x && options.onICESDP) {\n options.onICESDP(peer.localDescription);\n }\n }\n }\n\n peer.onicecandidate = function (event) {\n if (done) {\n return;\n }\n\n if (!gathering) {\n gathering = setTimeout(ice_handler, 1e3);\n }\n\n if (event) {\n if (event.candidate) {\n options.onICE(event.candidate);\n }\n } else {\n done = true;\n\n if (gathering) {\n clearTimeout(gathering);\n gathering = null;\n }\n\n ice_handler();\n }\n };\n\n if (options.attachStream) peer.addStream(options.attachStream);\n\n if (options.attachStreams && options.attachStream.length) {\n var streams = options.attachStreams;\n\n for (var i = 0; i < streams.length; i++) {\n peer.addStream(streams[i]);\n }\n }\n\n peer.onaddstream = function (event) {\n var remoteMediaStream = event.stream;\n\n remoteMediaStream.oninactive = function () {\n if (options.onRemoteStreamEnded) options.onRemoteStreamEnded(remoteMediaStream);\n };\n\n if (options.onRemoteStream) options.onRemoteStream(remoteMediaStream);\n };\n\n function createOffer() {\n if (!options.onOfferSDP) return;\n peer.createOffer(function (sessionDescription) {\n sessionDescription.sdp = serializeSdp(sessionDescription.sdp);\n peer.setLocalDescription(sessionDescription);\n options.onOfferSDP(sessionDescription);\n }, onSdpError, options.constraints);\n }\n\n function createAnswer() {\n if (options.type != \"answer\") return;\n peer.setRemoteDescription(new window.RTCSessionDescription(options.offerSDP), onSdpSuccess, onSdpError);\n peer.createAnswer(function (sessionDescription) {\n sessionDescription.sdp = serializeSdp(sessionDescription.sdp);\n peer.setLocalDescription(sessionDescription);\n\n if (options.onAnswerSDP) {\n options.onAnswerSDP(sessionDescription);\n }\n }, onSdpError);\n }\n\n if (options.onChannelMessage || !options.onChannelMessage) {\n createOffer();\n createAnswer();\n }\n\n function setBandwidth(sdp) {\n sdp = sdp.replace(/b=AS([^\\r\\n]+\\r\\n)/g, \"\");\n sdp = sdp.replace(/a=mid:data\\r\\n/g, \"a=mid:data\\r\\nb=AS:1638400\\r\\n\");\n return sdp;\n }\n\n function getInteropSDP(sdp) {\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\".split(\"\"),\n extractedChars = \"\";\n\n function getChars() {\n extractedChars += chars[parseInt(Math.random() * 40)] || \"\";\n if (extractedChars.length < 40) getChars();\n return extractedChars;\n }\n\n if (options.onAnswerSDP) sdp = sdp.replace(/(a=crypto:0 AES_CM_128_HMAC_SHA1_32)(.*?)(\\r\\n)/g, \"\");\n var inline = getChars() + \"\\r\\n\" + (extractedChars = \"\");\n sdp = sdp.indexOf(\"a=crypto\") == -1 ? sdp.replace(/c=IN/g, \"a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:\" + inline + \"c=IN\") : sdp;\n return sdp;\n }\n\n function serializeSdp(sdp) {\n return sdp;\n }\n\n var channel;\n\n function openOffererChannel() {\n if (!options.onChannelMessage) return;\n\n _openOffererChannel();\n\n return;\n }\n\n function _openOffererChannel() {\n channel = peer.createDataChannel(options.channel || \"RTCDataChannel\", {\n reliable: false\n });\n setChannelEvents();\n }\n\n function setChannelEvents() {\n channel.onmessage = function (event) {\n if (options.onChannelMessage) options.onChannelMessage(event);\n };\n\n channel.onopen = function () {\n if (options.onChannelOpened) options.onChannelOpened(channel);\n };\n\n channel.onclose = function (event) {\n if (options.onChannelClosed) options.onChannelClosed(event);\n console.warn(\"WebRTC DataChannel closed\", event);\n };\n\n channel.onerror = function (event) {\n if (options.onChannelError) options.onChannelError(event);\n console.error(\"WebRTC DataChannel error\", event);\n };\n }\n\n function openAnswererChannel() {\n peer.ondatachannel = function (event) {\n channel = event.channel;\n channel.binaryType = \"blob\";\n setChannelEvents();\n };\n\n return;\n }\n\n function useless() {\n log(\"Error in fake:true\");\n }\n\n function onSdpSuccess() {}\n\n function onSdpError(e) {\n if (options.onChannelError) {\n options.onChannelError(e);\n }\n\n console.error(\"sdp error:\", e);\n }\n\n return {\n addAnswerSDP: function addAnswerSDP(sdp, cbSuccess, cbError) {\n peer.setRemoteDescription(new window.RTCSessionDescription(sdp), cbSuccess ? cbSuccess : onSdpSuccess, cbError ? cbError : onSdpError);\n },\n addICE: function addICE(candidate) {\n peer.addIceCandidate(new window.RTCIceCandidate({\n sdpMLineIndex: candidate.sdpMLineIndex,\n candidate: candidate.candidate\n }));\n },\n peer: peer,\n channel: channel,\n sendData: function sendData(message) {\n if (channel) {\n channel.send(message);\n }\n },\n stop: function stop() {\n peer.close();\n\n if (options.attachStream) {\n if (typeof options.attachStream.stop == \"function\") {\n options.attachStream.stop();\n } else {\n var tracks = options.attachStream.getTracks();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = tracks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var track = _step.value;\n track.stop();\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n }\n };\n }\n\n var video_constraints = {};\n\n function getUserMedia(options) {\n var n = navigator,\n media;\n n.getMedia = n.getUserMedia;\n n.getMedia(options.constraints || {\n audio: true,\n video: video_constraints\n }, streaming, options.onerror || function (e) {\n console.error(e);\n });\n\n function streaming(stream) {\n if (options.localVideo) {\n options.localVideo[\"srcObject\"] = stream;\n options.localVideo.style.display = \"block\";\n }\n\n if (options.onsuccess) {\n options.onsuccess(stream);\n }\n\n media = stream;\n }\n\n return media;\n }\n\n $.FSRTC.resSupported = function (w, h) {\n for (var i in $.FSRTC.validRes) {\n if ($.FSRTC.validRes[i][0] == w && $.FSRTC.validRes[i][1] == h) {\n return true;\n }\n }\n\n return false;\n };\n\n $.FSRTC.bestResSupported = function () {\n var w = 0,\n h = 0;\n\n for (var i in $.FSRTC.validRes) {\n if ($.FSRTC.validRes[i][0] >= w && $.FSRTC.validRes[i][1] >= h) {\n w = $.FSRTC.validRes[i][0];\n h = $.FSRTC.validRes[i][1];\n }\n }\n\n return [w, h];\n };\n\n var resList = [[160, 120], [320, 180], [320, 240], [640, 360], [640, 480], [1280, 720], [1920, 1080]];\n var resI = 0;\n var ttl = 0;\n\n var checkRes = function checkRes(cam, func) {\n if (resI >= resList.length) {\n var res = {\n validRes: $.FSRTC.validRes,\n bestResSupported: $.FSRTC.bestResSupported()\n };\n localStorage.setItem(\"res_\" + cam, JSON.stringify(res));\n if (func) return func(res);\n return;\n }\n\n var video = {};\n\n if (cam) {\n video.deviceId = {\n exact: cam\n };\n }\n\n var w = resList[resI][0];\n var h = resList[resI][1];\n resI++;\n video = {\n width: {\n exact: w\n },\n height: {\n exact: h\n }\n };\n getUserMedia({\n constraints: {\n audio: ttl++ == 0,\n video: video\n },\n onsuccess: function onsuccess(e) {\n e.getTracks().forEach(function (track) {\n track.stop();\n });\n console.info(w + \"x\" + h + \" supported.\");\n $.FSRTC.validRes.push([w, h]);\n checkRes(cam, func);\n },\n onerror: function onerror(e) {\n console.warn(w + \"x\" + h + \" not supported.\");\n checkRes(cam, func);\n }\n });\n };\n\n $.FSRTC.getValidRes = function (cam, func) {\n var used = [];\n var cached = localStorage.getItem(\"res_\" + cam);\n\n if (cached) {\n var cache = $.parseJSON(cached);\n\n if (cache) {\n $.FSRTC.validRes = cache.validRes;\n console.log(\"CACHED RES FOR CAM \" + cam, cache);\n } else {\n console.error(\"INVALID CACHE\");\n }\n\n return func ? func(cache) : null;\n }\n\n $.FSRTC.validRes = [];\n resI = 0;\n checkRes(cam, func);\n };\n\n $.FSRTC.checkPerms = function (runtime, check_audio, check_video) {\n getUserMedia({\n constraints: {\n audio: check_audio,\n video: check_video\n },\n onsuccess: function onsuccess(e) {\n e.getTracks().forEach(function (track) {\n track.stop();\n });\n console.info(\"媒体参数初始化完成\");\n\n if (runtime) {\n setTimeout(runtime, 100, true);\n }\n },\n onerror: function onerror(e) {\n if (check_video && check_audio) {\n console.error(\"错误,仅使用音频参数重新测试\");\n return $.FSRTC.checkPerms(runtime, check_audio, false);\n }\n\n console.error(\"媒体参数初始化错误\");\n\n if (runtime) {\n runtime(false);\n }\n }\n });\n };\n})(TRjQuery);\n\n(function ($) {\n $.JsonRpcClient = function (options) {\n var self = this;\n this.options = $.extend({\n ajaxUrl: null,\n socketUrl: null,\n onmessage: null,\n login: null,\n passwd: null,\n sessid: null,\n loginParams: null,\n userVariables: null,\n getSocket: function getSocket(onmessage_cb) {\n return self._getSocket(onmessage_cb);\n }\n }, options);\n self.ws_cnt = 0;\n\n this.wsOnMessage = function (event) {\n self._wsOnMessage(event);\n };\n };\n\n $.JsonRpcClient.prototype._ws_socket = null;\n $.JsonRpcClient.prototype._ws_callbacks = {};\n $.JsonRpcClient.prototype._current_id = 1;\n\n $.JsonRpcClient.prototype.speedTest = function (bytes, cb) {\n var socket = this.options.getSocket(this.wsOnMessage);\n\n if (socket !== null) {\n this.speedCB = cb;\n this.speedBytes = bytes;\n socket.send(\"#SPU \" + bytes);\n var loops = bytes / 1024;\n var rem = bytes % 1024;\n var i;\n var data = new Array(1024).join(\".\");\n\n for (i = 0; i < loops; i++) {\n socket.send(\"#SPB \" + data);\n }\n\n if (rem) {\n socket.send(\"#SPB \" + data);\n }\n\n socket.send(\"#SPE\");\n }\n };\n\n $.JsonRpcClient.prototype.call = function (method, params, success_cb, error_cb) {\n if (!params) {\n params = {};\n }\n\n if (this.options.sessid) {\n params.sessid = this.options.sessid;\n }\n\n var request = {\n jsonrpc: \"2.0\",\n method: method,\n params: params,\n id: this._current_id++\n };\n\n if (!success_cb) {\n success_cb = function success_cb(e) {\n console.log(\"Success: \", e);\n };\n }\n\n if (!error_cb) {\n error_cb = function error_cb(e) {\n console.log(\"Error: \", e);\n };\n }\n\n var socket = this.options.getSocket(this.wsOnMessage);\n\n if (socket !== null) {\n this._wsCall(socket, request, success_cb, error_cb);\n\n return;\n }\n\n if (this.options.ajaxUrl === null) {\n throw \"$.JsonRpcClient.call used with no websocket and no http endpoint.\";\n }\n\n $.ajax({\n type: \"POST\",\n url: this.options.ajaxUrl,\n data: JSON.stringify(request),\n dataType: \"json\",\n cache: false,\n success: function success(data) {\n if (\"error\" in data) error_cb(data.error, this);\n success_cb(data.result, this);\n },\n error: function error(jqXHR, textStatus, errorThrown) {\n try {\n var response = $.parseJSON(jqXHR.responseText);\n if (\"console\" in window) console.log(response);\n error_cb(response.error, this);\n } catch (err) {\n error_cb({\n error: jqXHR.responseText\n }, this);\n }\n }\n });\n };\n\n $.JsonRpcClient.prototype.notify = function (method, params) {\n if (this.options.sessid) {\n params.sessid = this.options.sessid;\n }\n\n var request = {\n jsonrpc: \"2.0\",\n method: method,\n params: params\n };\n var socket = this.options.getSocket(this.wsOnMessage);\n\n if (socket !== null) {\n this._wsCall(socket, request);\n\n return;\n }\n\n if (this.options.ajaxUrl === null) {\n throw \"$.JsonRpcClient.notify used with no websocket and no http endpoint.\";\n }\n\n $.ajax({\n type: \"POST\",\n url: this.options.ajaxUrl,\n data: JSON.stringify(request),\n dataType: \"json\",\n cache: false\n });\n };\n\n $.JsonRpcClient.prototype.batch = function (callback, all_done_cb, error_cb) {\n var batch = new $.JsonRpcClient._batchObject(this, all_done_cb, error_cb);\n callback(batch);\n\n batch._execute();\n };\n\n $.JsonRpcClient.prototype.socketReady = function () {\n if (this._ws_socket === null || this._ws_socket.readyState > 1) {\n return false;\n }\n\n return true;\n };\n\n $.JsonRpcClient.prototype.closeSocket = function () {\n var self = this;\n\n if (self.socketReady()) {\n self._ws_socket.onclose = function (w) {\n console.log(\"Closing Socket\");\n };\n\n self._ws_socket.close();\n }\n };\n\n $.JsonRpcClient.prototype.loginData = function (params) {\n var self = this;\n self.options.login = params.login;\n self.options.passwd = params.passwd;\n self.options.loginParams = params.loginParams;\n self.options.userVariables = params.userVariables;\n };\n\n $.JsonRpcClient.prototype.connectSocket = function (onmessage_cb) {\n var self = this;\n\n if (self.to) {\n clearTimeout(self.to);\n }\n\n if (!self.socketReady()) {\n self.authing = false;\n\n if (self._ws_socket) {\n delete self._ws_socket;\n }\n\n self._ws_socket = new WebSocket(self.options.socketUrl);\n\n if (self._ws_socket) {\n self._ws_socket.onmessage = onmessage_cb;\n\n self._ws_socket.onclose = function (w) {\n if (!self.ws_sleep) {\n self.ws_sleep = 1e3;\n }\n\n if (self.options.onWSClose) {\n self.options.onWSClose(self);\n }\n\n if (self.ws_cnt > 10 && self.options.wsFallbackURL) {\n self.options.socketUrl = self.options.wsFallbackURL;\n }\n\n console.error(\"Websocket Lost \" + self.ws_cnt + \" sleep: \" + self.ws_sleep + \"msec\");\n self.to = setTimeout(function () {\n console.log(\"Attempting Reconnection....\");\n self.connectSocket(onmessage_cb);\n }, self.ws_sleep);\n self.ws_cnt++;\n\n if (self.ws_sleep < 3e3 && self.ws_cnt % 10 === 0) {\n self.ws_sleep += 1e3;\n }\n };\n\n self._ws_socket.onopen = function () {\n if (self.to) {\n clearTimeout(self.to);\n }\n\n self.ws_sleep = 1e3;\n self.ws_cnt = 0;\n\n if (self.options.onWSConnect) {\n self.options.onWSConnect(self);\n }\n\n var req;\n\n while (req = $.JsonRpcClient.q.pop()) {\n self._ws_socket.send(req);\n }\n };\n }\n }\n\n return self._ws_socket ? true : false;\n };\n\n $.JsonRpcClient.prototype.stopRetrying = function () {\n if (self.to) clearTimeout(self.to);\n };\n\n $.JsonRpcClient.prototype._getSocket = function (onmessage_cb) {\n if (this.options.socketUrl === null || !(\"WebSocket\" in window)) return null;\n this.connectSocket(onmessage_cb);\n return this._ws_socket;\n };\n\n $.JsonRpcClient.q = [];\n\n $.JsonRpcClient.prototype._wsCall = function (socket, request, success_cb, error_cb) {\n var request_json = JSON.stringify(request);\n\n if (socket.readyState < 1) {\n self = this;\n $.JsonRpcClient.q.push(request_json);\n } else {\n socket.send(request_json);\n }\n\n if (\"id\" in request && typeof success_cb !== \"undefined\") {\n this._ws_callbacks[request.id] = {\n request: request_json,\n request_obj: request,\n success_cb: success_cb,\n error_cb: error_cb\n };\n }\n };\n\n $.JsonRpcClient.prototype._wsOnMessage = function (event) {\n var response;\n\n if (event.data[0] == \"#\" && event.data[1] == \"S\" && event.data[2] == \"P\") {\n if (event.data[3] == \"U\") {\n this.up_dur = parseInt(event.data.substring(4));\n } else if (this.speedCB && event.data[3] == \"D\") {\n this.down_dur = parseInt(event.data.substring(4));\n var up_kps = (this.speedBytes * 8 / (this.up_dur / 1e3) / 1024).toFixed(0);\n var down_kps = (this.speedBytes * 8 / (this.down_dur / 1e3) / 1024).toFixed(0);\n console.info(\"Speed Test: Up: \" + up_kps + \" Down: \" + down_kps);\n this.speedCB(event, {\n upDur: this.up_dur,\n downDur: this.down_dur,\n upKPS: up_kps,\n downKPS: down_kps\n });\n this.speedCB = null;\n }\n\n return;\n }\n\n try {\n response = $.parseJSON(event.data);\n\n if (_typeof2(response) === \"object\" && \"jsonrpc\" in response && response.jsonrpc === \"2.0\") {\n if (\"result\" in response && this._ws_callbacks[response.id]) {\n var success_cb = this._ws_callbacks[response.id].success_cb;\n delete this._ws_callbacks[response.id];\n success_cb(response.result, this);\n return;\n } else if (\"error\" in response && this._ws_callbacks[response.id]) {\n var error_cb = this._ws_callbacks[response.id].error_cb;\n var orig_req = this._ws_callbacks[response.id].request;\n\n if (!self.authing && response.error.code == -32e3 && self.options.login && self.options.passwd) {\n self.authing = true;\n this.call(\"login\", {\n login: self.options.login,\n passwd: self.options.passwd,\n loginParams: self.options.loginParams,\n userVariables: self.options.userVariables\n }, this._ws_callbacks[response.id].request_obj.method == \"login\" ? function (e) {\n self.authing = false;\n console.log(\"logged in\");\n delete self._ws_callbacks[response.id];\n\n if (self.options.onWSLogin) {\n self.options.onWSLogin(true, self);\n }\n } : function (e) {\n self.authing = false;\n console.log(\"logged in, resending request id: \" + response.id);\n var socket = self.options.getSocket(self.wsOnMessage);\n\n if (socket !== null) {\n socket.send(orig_req);\n }\n\n if (self.options.onWSLogin) {\n self.options.onWSLogin(true, self);\n }\n }, function (e) {\n console.log(\"error logging in, request id:\", response.id);\n delete self._ws_callbacks[response.id];\n error_cb(response.error, this);\n\n if (self.options.onWSLogin) {\n self.options.onWSLogin(false, self);\n }\n });\n return;\n }\n\n delete this._ws_callbacks[response.id];\n error_cb(response.error, this);\n return;\n }\n }\n } catch (err) {\n console.log(\"ERROR: \" + err);\n return;\n }\n\n if (typeof this.options.onmessage === \"function\") {\n event.eventData = response;\n\n if (!event.eventData) {\n event.eventData = {};\n }\n\n var reply = this.options.onmessage(event);\n\n if (reply && _typeof2(reply) === \"object\" && event.eventData.id) {\n var msg = {\n jsonrpc: \"2.0\",\n id: event.eventData.id,\n result: reply\n };\n var socket = self.options.getSocket(self.wsOnMessage);\n\n if (socket !== null) {\n socket.send(JSON.stringify(msg));\n }\n }\n }\n };\n\n $.JsonRpcClient._batchObject = function (jsonrpcclient, all_done_cb, error_cb) {\n this._requests = [];\n this.jsonrpcclient = jsonrpcclient;\n this.all_done_cb = all_done_cb;\n this.error_cb = typeof error_cb === \"function\" ? error_cb : function () {};\n };\n\n $.JsonRpcClient._batchObject.prototype.call = function (method, params, success_cb, error_cb) {\n if (!params) {\n params = {};\n }\n\n if (this.options.sessid) {\n params.sessid = this.options.sessid;\n }\n\n if (!success_cb) {\n success_cb = function success_cb(e) {\n console.log(\"Success: \", e);\n };\n }\n\n if (!error_cb) {\n error_cb = function error_cb(e) {\n console.log(\"Error: \", e);\n };\n }\n\n this._requests.push({\n request: {\n jsonrpc: \"2.0\",\n method: method,\n params: params,\n id: this.jsonrpcclient._current_id++\n },\n success_cb: success_cb,\n error_cb: error_cb\n });\n };\n\n $.JsonRpcClient._batchObject.prototype.notify = function (method, params) {\n if (this.options.sessid) {\n params.sessid = this.options.sessid;\n }\n\n this._requests.push({\n request: {\n jsonrpc: \"2.0\",\n method: method,\n params: params\n }\n });\n };\n\n $.JsonRpcClient._batchObject.prototype._execute = function () {\n var self = this;\n if (this._requests.length === 0) return;\n var batch_request = [];\n var handlers = {};\n var i = 0;\n var call;\n var success_cb;\n var error_cb;\n var socket = self.jsonrpcclient.options.getSocket(self.jsonrpcclient.wsOnMessage);\n\n if (socket !== null) {\n for (i = 0; i < this._requests.length; i++) {\n call = this._requests[i];\n success_cb = \"success_cb\" in call ? call.success_cb : undefined;\n error_cb = \"error_cb\" in call ? call.error_cb : undefined;\n\n self.jsonrpcclient._wsCall(socket, call.request, success_cb, error_cb);\n }\n\n if (typeof all_done_cb === \"function\") all_done_cb(result);\n return;\n }\n\n for (i = 0; i < this._requests.length; i++) {\n call = this._requests[i];\n batch_request.push(call.request);\n\n if (\"id\" in call.request) {\n handlers[call.request.id] = {\n success_cb: call.success_cb,\n error_cb: call.error_cb\n };\n }\n }\n\n success_cb = function success_cb(data) {\n self._batchCb(data, handlers, self.all_done_cb);\n };\n\n if (self.jsonrpcclient.options.ajaxUrl === null) {\n throw \"$.JsonRpcClient.batch used with no websocket and no http endpoint.\";\n }\n\n $.ajax({\n url: self.jsonrpcclient.options.ajaxUrl,\n data: JSON.stringify(batch_request),\n dataType: \"json\",\n cache: false,\n type: \"POST\",\n error: function error(jqXHR, textStatus, errorThrown) {\n self.error_cb(jqXHR, textStatus, errorThrown);\n },\n success: success_cb\n });\n };\n\n $.JsonRpcClient._batchObject.prototype._batchCb = function (result, handlers, all_done_cb) {\n for (var i = 0; i < result.length; i++) {\n var response = result[i];\n\n if (\"error\" in response) {\n if (response.id === null || !(response.id in handlers)) {\n if (\"console\" in window) console.log(response);\n } else {\n handlers[response.id].error_cb(response.error, this);\n }\n } else {\n if (!(response.id in handlers) && \"console\" in window) {\n console.log(response);\n } else {\n handlers[response.id].success_cb(response.result, this);\n }\n }\n }\n\n if (typeof all_done_cb === \"function\") all_done_cb(result);\n };\n})(TRjQuery);\n\n(function ($) {\n var sources = [];\n var generateGUID = typeof window.crypto !== \"undefined\" && typeof window.crypto.getRandomValues !== \"undefined\" ? function () {\n var buf = new Uint16Array(8);\n window.crypto.getRandomValues(buf);\n\n var S4 = function S4(num) {\n var ret = num.toString(16);\n\n while (ret.length < 4) {\n ret = \"0\" + ret;\n }\n\n return ret;\n };\n\n return S4(buf[0]) + S4(buf[1]) + \"-\" + S4(buf[2]) + \"-\" + S4(buf[3]) + \"-\" + S4(buf[4]) + \"-\" + S4(buf[5]) + S4(buf[6]) + S4(buf[7]);\n } : function () {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c == \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n };\n\n $.verto = function (options, callbacks) {\n var verto = this;\n $.verto.saved.push(verto);\n verto.options = $.extend({\n login: null,\n passwd: null,\n socketUrl: null,\n tag: null,\n localTag: null,\n videoParams: {},\n audioParams: {},\n loginParams: {},\n deviceParams: {\n onResCheck: null\n },\n userVariables: {},\n iceServers: false,\n ringSleep: 6e3,\n sessid: null\n }, options);\n\n if (verto.options.deviceParams.useCamera) {\n $.FSRTC.getValidRes(verto.options.deviceParams.useCamera, verto.options.deviceParams.onResCheck);\n }\n\n if (!verto.options.deviceParams.useMic) {\n verto.options.deviceParams.useMic = \"any\";\n }\n\n if (!verto.options.deviceParams.useSpeak) {\n verto.options.deviceParams.useSpeak = \"any\";\n }\n\n if (verto.options.sessid) {\n verto.sessid = verto.options.sessid;\n } else {\n verto.sessid = localStorage.getItem(\"verto_session_uuid\") || generateGUID();\n localStorage.setItem(\"verto_session_uuid\", verto.sessid);\n }\n\n verto.dialogs = {};\n verto.callbacks = callbacks || {};\n verto.eventSUBS = {};\n verto.rpcClient = new $.JsonRpcClient({\n login: verto.options.login,\n passwd: verto.options.passwd,\n socketUrl: verto.options.socketUrl,\n wsFallbackURL: verto.options.wsFallbackURL,\n turnServer: verto.options.turnServer,\n loginParams: verto.options.loginParams,\n userVariables: verto.options.userVariables,\n sessid: verto.sessid,\n onmessage: function onmessage(e) {\n return verto.handleMessage(e.eventData);\n },\n onWSConnect: function onWSConnect(o) {\n o.call(\"login\", {});\n },\n onWSLogin: function onWSLogin(success) {\n if (verto.callbacks.onWSLogin) {\n verto.callbacks.onWSLogin(verto, success);\n }\n },\n onWSClose: function onWSClose(success) {\n if (verto.callbacks.onWSClose) {\n verto.callbacks.onWSClose(verto, success);\n }\n\n verto.purge();\n }\n });\n\n if (verto.options.ringFile && verto.options.ringTag) {\n verto.ringer = $(\"#\" + verto.options.ringTag);\n }\n\n verto.rpcClient.call(\"login\", {});\n };\n\n $.verto.prototype.deviceParams = function (obj) {\n var verto = this;\n\n for (var i in obj) {\n verto.options.deviceParams[i] = obj[i];\n }\n\n if (obj.useCamera) {\n $.FSRTC.getValidRes(verto.options.deviceParams.useCamera, obj ? obj.onResCheck : undefined);\n }\n };\n\n $.verto.prototype.videoParams = function (obj) {\n var verto = this;\n\n for (var i in obj) {\n verto.options.videoParams[i] = obj[i];\n }\n };\n\n $.verto.prototype.iceServers = function (obj) {\n var verto = this;\n verto.options.iceServers = obj;\n };\n\n $.verto.prototype.loginData = function (params) {\n var verto = this;\n verto.options.login = params.login;\n verto.options.passwd = params.passwd;\n verto.rpcClient.loginData(params);\n };\n\n $.verto.prototype.logout = function (msg) {\n var verto = this;\n verto.rpcClient.closeSocket();\n\n if (verto.callbacks.onWSClose) {\n verto.callbacks.onWSClose(verto, false);\n }\n\n verto.purge();\n };\n\n $.verto.prototype.login = function (msg) {\n var verto = this;\n verto.logout();\n verto.rpcClient.call(\"login\", {});\n };\n\n $.verto.prototype.message = function (msg) {\n var verto = this;\n var err = 0;\n\n if (!msg.to) {\n console.error(\"Missing To\");\n err++;\n }\n\n if (!msg.body) {\n console.error(\"Missing Body\");\n err++;\n }\n\n if (err) {\n return false;\n }\n\n verto.sendMethod(\"verto.info\", {\n msg: msg\n });\n return true;\n };\n\n $.verto.prototype.processReply = function (method, success, e) {\n var verto = this;\n var i;\n\n switch (method) {\n case \"verto.subscribe\":\n for (i in e.unauthorizedChannels) {\n drop_bad(verto, e.unauthorizedChannels[i]);\n }\n\n for (i in e.subscribedChannels) {\n mark_ready(verto, e.subscribedChannels[i]);\n }\n\n break;\n\n case \"verto.unsubscribe\":\n break;\n }\n };\n\n $.verto.prototype.sendMethod = function (method, params) {\n var verto = this;\n verto.rpcClient.call(method, params, function (e) {\n verto.processReply(method, true, e);\n }, function (e) {\n verto.processReply(method, false, e);\n });\n };\n\n function do_sub(verto, channel, obj) {}\n\n function drop_bad(verto, channel) {\n console.error(\"drop unauthorized channel: \" + channel);\n delete verto.eventSUBS[channel];\n }\n\n function mark_ready(verto, channel) {\n for (var j in verto.eventSUBS[channel]) {\n verto.eventSUBS[channel][j].ready = true;\n console.log(\"subscribed to channel: \" + channel);\n\n if (verto.eventSUBS[channel][j].readyHandler) {\n verto.eventSUBS[channel][j].readyHandler(verto, channel);\n }\n }\n }\n\n var SERNO = 1;\n\n function do_subscribe(verto, channel, subChannels, sparams) {\n var params = sparams || {};\n var local = params.local;\n var obj = {\n eventChannel: channel,\n userData: params.userData,\n handler: params.handler,\n ready: false,\n readyHandler: params.readyHandler,\n serno: SERNO++\n };\n var isnew = false;\n\n if (!verto.eventSUBS[channel]) {\n verto.eventSUBS[channel] = [];\n subChannels.push(channel);\n isnew = true;\n }\n\n verto.eventSUBS[channel].push(obj);\n\n if (local) {\n obj.ready = true;\n obj.local = true;\n }\n\n if (!isnew && verto.eventSUBS[channel][0].ready) {\n obj.ready = true;\n\n if (obj.readyHandler) {\n obj.readyHandler(verto, channel);\n }\n }\n\n return {\n serno: obj.serno,\n eventChannel: channel\n };\n }\n\n $.verto.prototype.subscribe = function (channel, sparams) {\n var verto = this;\n var r = [];\n var subChannels = [];\n var params = sparams || {};\n\n if (typeof channel === \"string\") {\n r.push(do_subscribe(verto, channel, subChannels, params));\n } else {\n for (var i in channel) {\n r.push(do_subscribe(verto, channel, subChannels, params));\n }\n }\n\n if (subChannels.length) {\n verto.sendMethod(\"verto.subscribe\", {\n eventChannel: subChannels.length == 1 ? subChannels[0] : subChannels,\n subParams: params.subParams\n });\n }\n\n return r;\n };\n\n $.verto.prototype.unsubscribe = function (handle) {\n var verto = this;\n var i;\n\n if (!handle) {\n for (i in verto.eventSUBS) {\n if (verto.eventSUBS[i]) {\n verto.unsubscribe(verto.eventSUBS[i]);\n }\n }\n } else {\n var unsubChannels = {};\n var sendChannels = [];\n var channel;\n\n if (typeof handle == \"string\") {\n delete verto.eventSUBS[handle];\n unsubChannels[handle]++;\n } else {\n for (i in handle) {\n if (typeof handle[i] == \"string\") {\n channel = handle[i];\n delete verto.eventSUBS[channel];\n unsubChannels[channel]++;\n } else {\n var repl = [];\n channel = handle[i].eventChannel;\n\n for (var j in verto.eventSUBS[channel]) {\n if (verto.eventSUBS[channel][j].serno == handle[i].serno) {} else {\n repl.push(verto.eventSUBS[channel][j]);\n }\n }\n\n verto.eventSUBS[channel] = repl;\n\n if (verto.eventSUBS[channel].length === 0) {\n delete verto.eventSUBS[channel];\n unsubChannels[channel]++;\n }\n }\n }\n }\n\n for (var u in unsubChannels) {\n console.log(\"Sending Unsubscribe for: \", u);\n sendChannels.push(u);\n }\n\n if (sendChannels.length) {\n verto.sendMethod(\"verto.unsubscribe\", {\n eventChannel: sendChannels.length == 1 ? sendChannels[0] : sendChannels\n });\n }\n }\n };\n\n $.verto.prototype.broadcast = function (channel, params) {\n var verto = this;\n var msg = {\n eventChannel: channel,\n data: {}\n };\n\n for (var i in params) {\n msg.data[i] = params[i];\n }\n\n verto.sendMethod(\"verto.broadcast\", msg);\n };\n\n $.verto.prototype.purge = function (callID) {\n var verto = this;\n var x = 0;\n var i;\n\n for (i in verto.dialogs) {\n if (!x) {\n console.log(\"purging dialogs\");\n }\n\n x++;\n verto.dialogs[i].setState($.verto.enum.state.purge);\n }\n\n for (i in verto.eventSUBS) {\n if (verto.eventSUBS[i]) {\n console.log(\"purging subscription: \" + i);\n delete verto.eventSUBS[i];\n }\n }\n };\n\n $.verto.prototype.hangup = function (callID) {\n var verto = this;\n\n if (callID) {\n var dialog = verto.dialogs[callID];\n\n if (dialog) {\n dialog.hangup();\n }\n } else {\n for (var i in verto.dialogs) {\n verto.dialogs[i].hangup();\n }\n }\n };\n\n $.verto.prototype.newCall = function (args, callbacks) {\n var verto = this;\n\n if (!verto.rpcClient.socketReady()) {\n console.error(\"Not Connected...\");\n return;\n }\n\n if (args[\"useCamera\"]) {\n verto.options.deviceParams[\"useCamera\"] = args[\"useCamera\"];\n }\n\n var dialog = new $.verto.dialog($.verto.enum.direction.outbound, this, args);\n dialog.invite();\n\n if (callbacks) {\n dialog.callbacks = callbacks;\n }\n\n return dialog;\n };\n\n $.verto.prototype.handleMessage = function (data) {\n var verto = this;\n\n if (!(data && data.method)) {\n console.error(\"Invalid Data\", data);\n return;\n }\n\n if (data.params.callID) {\n var dialog = verto.dialogs[data.params.callID];\n\n if (data.method === \"verto.attach\" && dialog) {\n delete dialog.verto.dialogs[dialog.callID];\n dialog.rtc.stop();\n dialog = null;\n }\n\n if (dialog) {\n switch (data.method) {\n case \"verto.bye\":\n dialog.hangup(data.params);\n break;\n\n case \"verto.answer\":\n dialog.handleAnswer(data.params);\n break;\n\n case \"verto.media\":\n dialog.handleMedia(data.params);\n break;\n\n case \"verto.display\":\n dialog.handleDisplay(data.params);\n break;\n\n case \"verto.info\":\n dialog.handleInfo(data.params);\n break;\n\n default:\n console.debug(\"INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED\", dialog, data.method);\n break;\n }\n } else {\n switch (data.method) {\n case \"verto.attach\":\n data.params.attach = true;\n\n if (data.params.sdp && data.params.sdp.indexOf(\"m=video\") > 0) {\n data.params.useVideo = true;\n }\n\n if (data.params.sdp && data.params.sdp.indexOf(\"stereo=1\") > 0) {\n data.params.useStereo = true;\n }\n\n dialog = new $.verto.dialog($.verto.enum.direction.inbound, verto, data.params);\n dialog.setState($.verto.enum.state.recovering);\n break;\n\n case \"verto.invite\":\n if (data.params.sdp && data.params.sdp.indexOf(\"m=video\") > 0) {\n data.params.wantVideo = true;\n }\n\n if (data.params.sdp && data.params.sdp.indexOf(\"stereo=1\") > 0) {\n data.params.useStereo = true;\n }\n\n dialog = new $.verto.dialog($.verto.enum.direction.inbound, verto, data.params);\n break;\n\n default:\n console.debug(\"INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED\");\n break;\n }\n }\n\n return {\n method: data.method\n };\n } else {\n switch (data.method) {\n case \"verto.punt\":\n verto.purge();\n verto.logout();\n break;\n\n case \"verto.event\":\n var list = null;\n var key = null;\n\n if (data.params) {\n key = data.params.eventChannel;\n }\n\n if (key) {\n list = verto.eventSUBS[key];\n\n if (!list) {\n list = verto.eventSUBS[key.split(\".\")[0]];\n }\n }\n\n if (!list && key && key === verto.sessid) {\n if (verto.callbacks.onMessage) {\n verto.callbacks.onMessage(verto, null, $.verto.enum.message.pvtEvent, data.params);\n }\n } else if (!list && key && verto.dialogs[key]) {\n verto.dialogs[key].sendMessage($.verto.enum.message.pvtEvent, data.params);\n } else if (!list) {\n if (!key) {\n key = \"UNDEFINED\";\n }\n\n console.error(\"UNSUBBED or invalid EVENT \" + key + \" IGNORED\");\n } else {\n for (var i in list) {\n var sub = list[i];\n\n if (!sub || !sub.ready) {\n console.error(\"invalid EVENT for \" + key + \" IGNORED\");\n } else if (sub.handler) {\n sub.handler(verto, data.params, sub.userData);\n } else if (verto.callbacks.onEvent) {\n verto.callbacks.onEvent(verto, data.params, sub.userData);\n } else {\n console.log(\"EVENT:\", data.params);\n }\n }\n }\n\n break;\n\n case \"verto.info\":\n if (verto.callbacks.onMessage) {\n verto.callbacks.onMessage(verto, null, $.verto.enum.message.info, data.params.msg);\n }\n\n console.debug(\"MESSAGE from: \" + data.params.msg.from, data.params.msg.body);\n break;\n\n case \"verto.clientReady\":\n verto.callbacks.onMessage(verto, null, $.verto.enum.message.clientReady, data.params);\n console.debug(\"CLIENT READY\", data.params);\n break;\n\n default:\n console.error(\"INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED\", data.method);\n break;\n }\n }\n };\n\n var del_array = function del_array(array, name) {\n var r = [];\n var len = array.length;\n\n for (var i = 0; i < len; i++) {\n if (array[i] != name) {\n r.push(array[i]);\n }\n }\n\n return r;\n };\n\n var hashArray = function hashArray() {\n var vha = this;\n var hash = {};\n var array = [];\n\n vha.reorder = function (a) {\n array = a;\n var h = hash;\n hash = {};\n var len = array.length;\n\n for (var i = 0; i < len; i++) {\n var key = array[i];\n\n if (h[key]) {\n hash[key] = h[key];\n delete h[key];\n }\n }\n\n h = undefined;\n };\n\n vha.clear = function () {\n hash = undefined;\n array = undefined;\n hash = {};\n array = [];\n };\n\n vha.add = function (name, val, insertAt) {\n var redraw = false;\n\n if (!hash[name]) {\n if (insertAt === undefined || insertAt < 0 || insertAt >= array.length) {\n array.push(name);\n } else {\n var x = 0;\n var n = [];\n var len = array.length;\n\n for (var i = 0; i < len; i++) {\n if (x++ == insertAt) {\n n.push(name);\n }\n\n n.push(array[i]);\n }\n\n array = undefined;\n array = n;\n n = undefined;\n redraw = true;\n }\n }\n\n hash[name] = val;\n return redraw;\n };\n\n vha.del = function (name) {\n var r = false;\n\n if (hash[name]) {\n array = del_array(array, name);\n delete hash[name];\n r = true;\n } else {\n console.error(\"can't del nonexistant key \" + name);\n }\n\n return r;\n };\n\n vha.get = function (name) {\n return hash[name];\n };\n\n vha.order = function () {\n return array;\n };\n\n vha.hash = function () {\n return hash;\n };\n\n vha.indexOf = function (name) {\n var len = array.length;\n\n for (var i = 0; i < len; i++) {\n if (array[i] == name) {\n return i;\n }\n }\n };\n\n vha.arrayLen = function () {\n return array.length;\n };\n\n vha.asArray = function () {\n var r = [];\n var len = array.length;\n\n for (var i = 0; i < len; i++) {\n var key = array[i];\n r.push(hash[key]);\n }\n\n return r;\n };\n\n vha.each = function (cb) {\n var len = array.length;\n\n for (var i = 0; i < len; i++) {\n cb(array[i], hash[array[i]]);\n }\n };\n\n vha.dump = function (html) {\n var str = \"\";\n vha.each(function (name, val) {\n str += \"name: \" + name + \" val: \" + JSON.stringify(val) + (html ? \"<br>\" : \"\\n\");\n });\n return str;\n };\n };\n\n $.verto.liveArray = function (verto, context, name, config) {\n var la = this;\n var lastSerno = 0;\n var binding = null;\n var user_obj = config.userObj;\n var local = false;\n hashArray.call(la);\n la._add = la.add;\n la._del = la.del;\n la._reorder = la.reorder;\n la._clear = la.clear;\n la.context = context;\n la.name = name;\n la.user_obj = user_obj;\n la.verto = verto;\n\n la.broadcast = function (channel, obj) {\n verto.broadcast(channel, obj);\n };\n\n la.errs = 0;\n\n la.clear = function () {\n la._clear();\n\n lastSerno = 0;\n\n if (la.onChange) {\n la.onChange(la, {\n action: \"clear\"\n });\n }\n };\n\n la.checkSerno = function (serno) {\n if (serno < 0) {\n return true;\n }\n\n if (lastSerno > 0 && serno != lastSerno + 1) {\n if (la.onErr) {\n la.onErr(la, {\n lastSerno: lastSerno,\n serno: serno\n });\n }\n\n la.errs++;\n console.debug(la.errs);\n\n if (la.errs < 3) {\n la.bootstrap(la.user_obj);\n }\n\n return false;\n } else {\n lastSerno = serno;\n return true;\n }\n };\n\n la.reorder = function (serno, a) {\n if (la.checkSerno(serno)) {\n la._reorder(a);\n\n if (la.onChange) {\n la.onChange(la, {\n serno: serno,\n action: \"reorder\"\n });\n }\n }\n };\n\n la.init = function (serno, val, key, index) {\n if (key === null || key === undefined) {\n key = serno;\n }\n\n if (la.checkSerno(serno)) {\n if (la.onChange) {\n la.onChange(la, {\n serno: serno,\n action: \"init\",\n index: index,\n key: key,\n data: val\n });\n }\n }\n };\n\n la.bootObj = function (serno, val) {\n if (la.checkSerno(serno)) {\n for (var i in val) {\n la._add(val[i][0], val[i][1]);\n }\n\n if (la.onChange) {\n la.onChange(la, {\n serno: serno,\n action: \"bootObj\",\n data: val,\n redraw: true\n });\n }\n }\n };\n\n la.add = function (serno, val, key, index) {\n if (key === null || key === undefined) {\n key = serno;\n }\n\n if (la.checkSerno(serno)) {\n var redraw = la._add(key, val, index);\n\n if (la.onChange) {\n la.onChange(la, {\n serno: serno,\n action: \"add\",\n index: index,\n key: key,\n data: val,\n redraw: redraw\n });\n }\n }\n };\n\n la.modify = function (serno, val, key, index) {\n if (key === null || key === undefined) {\n key = serno;\n }\n\n if (la.checkSerno(serno)) {\n la._add(key, val, index);\n\n if (la.onChange) {\n la.onChange(la, {\n serno: serno,\n action: \"modify\",\n key: key,\n data: val,\n index: index\n });\n }\n }\n };\n\n la.del = function (serno, key, index) {\n if (key === null || key === undefined) {\n key = serno;\n }\n\n if (la.checkSerno(serno)) {\n if (index === null || index < 0 || index === undefined) {\n index = la.indexOf(key);\n }\n\n var ok = la._del(key);\n\n if (ok && la.onChange) {\n la.onChange(la, {\n serno: serno,\n action: \"del\",\n key: key,\n index: index\n });\n }\n }\n };\n\n var eventHandler = function eventHandler(v, e, la) {\n var packet = e.data;\n\n if (packet.name != la.name) {\n return;\n }\n\n switch (packet.action) {\n case \"init\":\n la.init(packet.wireSerno, packet.data, packet.hashKey, packet.arrIndex);\n break;\n\n case \"bootObj\":\n la.bootObj(packet.wireSerno, packet.data);\n break;\n\n case \"add\":\n la.add(packet.wireSerno, packet.data, packet.hashKey, packet.arrIndex);\n break;\n\n case \"modify\":\n if (!(packet.arrIndex || packet.hashKey)) {\n console.error(\"Invalid Packet\", packet);\n } else {\n la.modify(packet.wireSerno, packet.data, packet.hashKey, packet.arrIndex);\n }\n\n break;\n\n case \"del\":\n if (!(packet.arrIndex || packet.hashKey)) {\n console.error(\"Invalid Packet\", packet);\n } else {\n la.del(packet.wireSerno, packet.hashKey, packet.arrIndex);\n }\n\n break;\n\n case \"clear\":\n la.clear();\n break;\n\n case \"reorder\":\n la.reorder(packet.wireSerno, packet.order);\n break;\n\n default:\n if (la.checkSerno(packet.wireSerno)) {\n if (la.onChange) {\n la.onChange(la, {\n serno: packet.wireSerno,\n action: packet.action,\n data: packet.data\n });\n }\n }\n\n break;\n }\n };\n\n if (la.context) {\n binding = la.verto.subscribe(la.context, {\n handler: eventHandler,\n userData: la,\n subParams: config.subParams\n });\n }\n\n la.destroy = function () {\n la._clear();\n\n la.verto.unsubscribe(binding);\n };\n\n la.sendCommand = function (cmd, obj) {\n var self = la;\n self.broadcast(self.context, {\n liveArray: {\n command: cmd,\n context: self.context,\n name: self.name,\n obj: obj\n }\n });\n };\n\n la.bootstrap = function (obj) {\n var self = la;\n la.sendCommand(\"bootstrap\", obj);\n };\n\n la.changepage = function (obj) {\n var self = la;\n self.clear();\n self.broadcast(self.context, {\n liveArray: {\n command: \"changepage\",\n context: la.context,\n name: la.name,\n obj: obj\n }\n });\n };\n\n la.heartbeat = function (obj) {\n var self = la;\n\n var callback = function callback() {\n self.heartbeat.call(self, obj);\n };\n\n self.broadcast(self.context, {\n liveArray: {\n command: \"heartbeat\",\n context: self.context,\n name: self.name,\n obj: obj\n }\n });\n self.hb_pid = setTimeout(callback, 3e4);\n };\n\n la.bootstrap(la.user_obj);\n };\n\n $.verto.liveTable = function (verto, context, name, jq, config) {\n var dt;\n var la = new $.verto.liveArray(verto, context, name, {\n subParams: config.subParams\n });\n var lt = this;\n lt.liveArray = la;\n lt.dataTable = dt;\n lt.verto = verto;\n\n lt.destroy = function () {\n if (dt) {\n dt.fnDestroy();\n }\n\n if (la) {\n la.destroy();\n }\n\n dt = null;\n la = null;\n };\n\n la.onErr = function (obj, args) {\n console.error(\"Error: \", obj, args);\n };\n\n function genRow(data) {\n if (typeof data[4] === \"string\" && data[4].indexOf(\"{\") > -1) {\n var tmp = $.parseJSON(data[4]);\n data[4] = tmp.oldStatus;\n data[5] = null;\n }\n\n return data;\n }\n\n function genArray(obj) {\n var data = obj.asArray();\n\n for (var i in data) {\n data[i] = genRow(data[i]);\n }\n\n return data;\n }\n\n la.onChange = function (obj, args) {\n var index = 0;\n var iserr = 0;\n\n if (!dt) {\n if (!config.aoColumns) {\n if (args.action != \"init\") {\n return;\n }\n\n config.aoColumns = [];\n\n for (var i in args.data) {\n config.aoColumns.push({\n sTitle: args.data[i]\n });\n }\n }\n\n dt = jq.dataTable(config);\n }\n\n if (dt && (args.action == \"del\" || args.action == \"modify\")) {\n index = args.index;\n\n if (index === undefined && args.key) {\n index = la.indexOf(args.key);\n }\n\n if (index === undefined) {\n console.error(\"INVALID PACKET Missing INDEX\\n\", args);\n return;\n }\n }\n\n if (config.onChange) {\n config.onChange(obj, args);\n }\n\n try {\n switch (args.action) {\n case \"bootObj\":\n if (!args.data) {\n console.error(\"missing data\");\n return;\n }\n\n dt.fnClearTable();\n dt.fnAddData(genArray(obj));\n dt.fnAdjustColumnSizing();\n break;\n\n case \"add\":\n if (!args.data) {\n console.error(\"missing data\");\n return;\n }\n\n if (args.redraw > -1) {\n dt.fnClearTable();\n dt.fnAddData(genArray(obj));\n } else {\n dt.fnAddData(genRow(args.data));\n }\n\n dt.fnAdjustColumnSizing();\n break;\n\n case \"modify\":\n if (!args.data) {\n return;\n }\n\n dt.fnUpdate(genRow(args.data), index);\n dt.fnAdjustColumnSizing();\n break;\n\n case \"del\":\n dt.fnDeleteRow(index);\n dt.fnAdjustColumnSizing();\n break;\n\n case \"clear\":\n dt.fnClearTable();\n break;\n\n case \"reorder\":\n dt.fnClearTable();\n dt.fnAddData(genArray(obj));\n break;\n\n case \"hide\":\n jq.hide();\n break;\n\n case \"show\":\n jq.show();\n break;\n }\n } catch (err) {\n console.error(\"ERROR: \" + err);\n iserr++;\n }\n\n if (iserr) {\n obj.errs++;\n\n if (obj.errs < 3) {\n obj.bootstrap(obj.user_obj);\n }\n } else {\n obj.errs = 0;\n }\n };\n\n la.onChange(la, {\n action: \"init\"\n });\n };\n\n $.verto.dialog = function (direction, verto, params) {\n var dialog = this;\n dialog.params = $.extend({\n useVideo: verto.options.useVideo,\n useStereo: verto.options.useStereo,\n screenShare: false,\n useCamera: false,\n useMic: verto.options.deviceParams.useMic,\n useSpeak: verto.options.deviceParams.useSpeak,\n tag: verto.options.tag,\n localTag: verto.options.localTag,\n login: verto.options.login,\n videoParams: verto.options.videoParams\n }, params);\n\n if (!dialog.params.screenShare) {\n dialog.params.useCamera = verto.options.deviceParams.useCamera;\n }\n\n dialog.verto = verto;\n dialog.direction = direction;\n dialog.lastState = null;\n dialog.state = dialog.lastState = $.verto.enum.state.new;\n dialog.callbacks = verto.callbacks;\n dialog.answered = false;\n dialog.attach = params.attach || false;\n dialog.screenShare = params.screenShare || false;\n dialog.useCamera = dialog.params.useCamera;\n dialog.useMic = dialog.params.useMic;\n dialog.useSpeak = dialog.params.useSpeak;\n\n if (dialog.params.callID) {\n dialog.callID = dialog.params.callID;\n } else {\n dialog.callID = dialog.params.callID = generateGUID();\n }\n\n if (dialog.params.verto_h_conf_web && dialog.params.verto_h_conf_web == \"true\") {\n dialog.params.tag = dialog.params.verto_h_conf_web_area;\n }\n\n if (dialog.params.verto_h_video_web && dialog.params.verto_h_video_web == \"true\") {\n dialog.params.tag = dialog.params.verto_h_video_web_area;\n }\n\n if (typeof dialog.params.tag === \"function\") {\n dialog.params.tag = dialog.params.tag(dialog.callID);\n }\n\n if (dialog.params.tag) {\n dialog.audioStream = document.getElementById(dialog.params.tag);\n\n if (dialog.params.useVideo) {\n dialog.videoStream = dialog.audioStream;\n }\n }\n\n if (dialog.params.localTag) {\n dialog.localVideo = document.getElementById(dialog.params.localTag);\n }\n\n dialog.verto.dialogs[dialog.callID] = dialog;\n var RTCcallbacks = {};\n\n if (dialog.direction == $.verto.enum.direction.inbound) {\n if (dialog.params.display_direction === \"outbound\") {\n dialog.params.remote_caller_id_name = dialog.params.caller_id_name;\n dialog.params.remote_caller_id_number = dialog.params.caller_id_number;\n } else {\n dialog.params.remote_caller_id_name = dialog.params.callee_id_name;\n dialog.params.remote_caller_id_number = dialog.params.callee_id_number;\n }\n\n if (!dialog.params.remote_caller_id_name) {\n dialog.params.remote_caller_id_name = \"Nobody\";\n }\n\n if (!dialog.params.remote_caller_id_number) {\n dialog.params.remote_caller_id_number = \"UNKNOWN\";\n }\n\n RTCcallbacks.onMessage = function (rtc, msg) {\n console.debug(msg);\n };\n\n RTCcallbacks.onAnswerSDP = function (rtc, sdp) {\n console.error(\"answer sdp\", sdp);\n };\n } else {\n dialog.params.remote_caller_id_name = \"Outbound Call\";\n dialog.params.remote_caller_id_number = dialog.params.destination_number;\n }\n\n RTCcallbacks.onICESDP = function (rtc) {\n console.log(\"RECV \" + rtc.type + \" SDP\", rtc.mediaData.SDP);\n\n if (dialog.state == $.verto.enum.state.requesting || dialog.state == $.verto.enum.state.answering || dialog.state == $.verto.enum.state.active) {\n location.reload();\n return;\n }\n\n if (rtc.type == \"offer\") {\n if (dialog.state == $.verto.enum.state.active) {\n dialog.setState($.verto.enum.state.requesting);\n dialog.sendMethod(\"verto.attach\", {\n sdp: rtc.mediaData.SDP\n });\n } else {\n dialog.setState($.verto.enum.state.requesting);\n dialog.sendMethod(\"verto.invite\", {\n sdp: rtc.mediaData.SDP\n });\n }\n } else {\n dialog.setState($.verto.enum.state.answering);\n dialog.sendMethod(dialog.attach ? \"verto.attach\" : \"verto.answer\", {\n sdp: dialog.rtc.mediaData.SDP\n });\n }\n };\n\n RTCcallbacks.onICE = function (rtc) {\n if (rtc.type == \"offer\") {\n console.log(\"offer\", rtc.mediaData.candidate);\n return;\n }\n };\n\n RTCcallbacks.onStream = function (rtc, stream) {\n if (dialog.verto.options.permissionCallback && typeof dialog.verto.options.permissionCallback.onGranted === \"function\") {\n dialog.verto.options.permissionCallback.onGranted(stream);\n }\n\n console.log(\"stream started\");\n };\n\n RTCcallbacks.onError = function (e) {\n if (dialog.verto.options.permissionCallback && typeof dialog.verto.options.permissionCallback.onDenied === \"function\") {\n dialog.verto.options.permissionCallback.onDenied();\n }\n\n console.error(\"ERROR:\", e);\n dialog.hangup({\n cause: \"Device or Permission Error\"\n });\n };\n\n dialog.rtc = new $.FSRTC({\n callbacks: RTCcallbacks,\n localVideo: dialog.screenShare ? null : dialog.localVideo,\n useVideo: dialog.params.useVideo ? dialog.videoStream : null,\n useAudio: dialog.audioStream,\n useStereo: dialog.params.useStereo,\n videoParams: dialog.params.videoParams,\n audioParams: verto.options.audioParams,\n iceServers: verto.options.iceServers,\n browserIP: verto.options.browserIP,\n screenShare: dialog.screenShare,\n useCamera: dialog.useCamera,\n useMic: dialog.useMic,\n useSpeak: dialog.useSpeak,\n turnServer: verto.options.turnServer\n });\n dialog.rtc.verto = dialog.verto;\n\n if (dialog.direction == $.verto.enum.direction.inbound) {\n if (dialog.attach) {\n dialog.answer();\n } else {\n dialog.ring();\n }\n }\n };\n\n $.verto.dialog.prototype.invite = function () {\n var dialog = this;\n dialog.rtc.call();\n };\n\n $.verto.dialog.prototype.sendMethod = function (method, obj) {\n var dialog = this;\n obj.dialogParams = {};\n\n for (var i in dialog.params) {\n if (i == \"sdp\" && method != \"verto.invite\" && method != \"verto.attach\") {\n continue;\n }\n\n if (obj.noDialogParams && i != \"callID\") {\n continue;\n }\n\n obj.dialogParams[i] = dialog.params[i];\n }\n\n delete obj.noDialogParams;\n dialog.verto.rpcClient.call(method, obj, function (e) {\n dialog.processReply(method, true, e);\n }, function (e) {\n dialog.processReply(method, false, e);\n });\n };\n\n function checkStateChange(oldS, newS) {\n if (newS == $.verto.enum.state.purge || $.verto.enum.states[oldS.name][newS.name]) {\n return true;\n }\n\n return false;\n }\n\n function find_name(id) {\n for (var i in $.verto.audioOutDevices) {\n var source = $.verto.audioOutDevices[i];\n\n if (source.id === id) {\n return source.label;\n }\n }\n\n return id;\n }\n\n $.verto.dialog.prototype.setAudioPlaybackDevice = function (sinkId, callback, arg) {\n var dialog = this;\n var element = dialog.audioStream;\n\n if (typeof element.sinkId !== \"undefined\") {\n var devname = find_name(sinkId);\n console.info(\"Dialog: \" + dialog.callID + \" Setting speaker:\", element, devname);\n element.setSinkId(sinkId).then(function () {\n console.log(\"Dialog: \" + dialog.callID + \" Success, audio output device attached: \" + sinkId);\n\n if (callback) {\n callback(true, devname, arg);\n }\n }).catch(function (error) {\n var errorMessage = error;\n\n if (error.name === \"SecurityError\") {\n errorMessage = \"Dialog: \" + dialog.callID + \" You need to use HTTPS for selecting audio output \" + \"device: \" + error;\n }\n\n if (callback) {\n callback(false, null, arg);\n }\n\n console.error(errorMessage);\n });\n } else {\n console.warn(\"Dialog: \" + dialog.callID + \" Browser does not support output device selection.\");\n\n if (callback) {\n callback(false, null, arg);\n }\n }\n };\n\n $.verto.dialog.prototype.setState = function (state) {\n var dialog = this;\n\n if (dialog.state == $.verto.enum.state.ringing) {\n dialog.stopRinging();\n }\n\n if (dialog.state == state || !checkStateChange(dialog.state, state)) {\n console.error(\"Dialog \" + dialog.callID + \": INVALID state change from \" + dialog.state.name + \" to \" + state.name);\n dialog.hangup();\n return false;\n }\n\n console.log(\"Dialog \" + dialog.callID + \": state change from \" + dialog.state.name + \" to \" + state.name);\n dialog.lastState = dialog.state;\n dialog.state = state;\n\n if (dialog.callbacks.onDialogState) {\n dialog.callbacks.onDialogState(this);\n }\n\n switch (dialog.state) {\n case $.verto.enum.state.early:\n case $.verto.enum.state.active:\n var speaker = dialog.useSpeak;\n console.info(\"Using Speaker: \", speaker);\n\n if (speaker && speaker !== \"any\" && speaker !== \"none\") {\n setTimeout(function () {\n dialog.setAudioPlaybackDevice(speaker);\n }, 500);\n }\n\n break;\n\n case $.verto.enum.state.trying:\n setTimeout(function () {\n if (dialog.state == $.verto.enum.state.trying) {\n dialog.setState($.verto.enum.state.hangup);\n }\n }, 3e4);\n break;\n\n case $.verto.enum.state.purge:\n dialog.setState($.verto.enum.state.destroy);\n break;\n\n case $.verto.enum.state.hangup:\n if (dialog.lastState.val > $.verto.enum.state.requesting.val && dialog.lastState.val < $.verto.enum.state.hangup.val) {\n dialog.sendMethod(\"verto.bye\", {});\n }\n\n dialog.setState($.verto.enum.state.destroy);\n break;\n\n case $.verto.enum.state.destroy:\n if (typeof dialog.verto.options.tag === \"function\") {\n $(\"#\" + dialog.params.tag).remove();\n }\n\n delete dialog.verto.dialogs[dialog.callID];\n\n if (dialog.params.screenShare) {\n dialog.rtc.stopPeer();\n } else {\n dialog.rtc.stop();\n }\n\n break;\n }\n\n return true;\n };\n\n $.verto.dialog.prototype.processReply = function (method, success, e) {\n var dialog = this;\n\n switch (method) {\n case \"verto.answer\":\n case \"verto.attach\":\n if (success) {\n dialog.setState($.verto.enum.state.active);\n } else {\n dialog.hangup();\n }\n\n break;\n\n case \"verto.invite\":\n if (success) {\n dialog.setState($.verto.enum.state.trying);\n } else {\n dialog.setState($.verto.enum.state.destroy);\n }\n\n break;\n\n case \"verto.bye\":\n dialog.hangup();\n break;\n\n case \"verto.modify\":\n if (e.holdState) {\n if (e.holdState == \"held\") {\n if (dialog.state != $.verto.enum.state.held) {\n dialog.setState($.verto.enum.state.held);\n }\n } else if (e.holdState == \"active\") {\n if (dialog.state != $.verto.enum.state.active) {\n dialog.setState($.verto.enum.state.active);\n }\n }\n }\n\n if (success) {}\n\n break;\n\n default:\n break;\n }\n };\n\n $.verto.dialog.prototype.hangup = function (params) {\n var dialog = this;\n\n if (params) {\n if (params.causeCode) {\n dialog.causeCode = params.causeCode;\n }\n\n if (params.cause) {\n dialog.cause = params.cause;\n }\n }\n\n if (!dialog.cause && !dialog.causeCode) {\n dialog.cause = \"NORMAL_CLEARING\";\n }\n\n if (dialog.state.val >= $.verto.enum.state.new.val && dialog.state.val < $.verto.enum.state.hangup.val) {\n dialog.setState($.verto.enum.state.hangup);\n } else if (dialog.state.val < $.verto.enum.state.destroy) {\n dialog.setState($.verto.enum.state.destroy);\n }\n };\n\n $.verto.dialog.prototype.stopRinging = function () {\n var dialog = this;\n\n if (dialog.verto.ringer) {\n dialog.verto.ringer.stop();\n }\n };\n\n $.verto.dialog.prototype.indicateRing = function () {\n var dialog = this;\n\n if (dialog.verto.ringer) {\n if (dialog.params.verto_h_autoanswer && dialog.params.verto_h_autoanswer == \"true\") {\n return;\n }\n\n dialog.verto.ringer.attr(\"src\", dialog.verto.options.ringFile)[0].play();\n setTimeout(function () {\n dialog.stopRinging();\n\n if (dialog.state == $.verto.enum.state.ringing) {\n dialog.indicateRing();\n }\n }, dialog.verto.options.ringSleep);\n }\n };\n\n $.verto.dialog.prototype.ring = function () {\n var dialog = this;\n dialog.setState($.verto.enum.state.ringing);\n dialog.indicateRing();\n };\n\n $.verto.dialog.prototype.useVideo = function (on) {\n var dialog = this;\n dialog.params.useVideo = on;\n\n if (on) {\n dialog.videoStream = dialog.audioStream;\n } else {\n dialog.videoStream = null;\n }\n\n dialog.rtc.useVideo(dialog.videoStream, dialog.localVideo);\n };\n\n $.verto.dialog.prototype.setMute = function (what) {\n var dialog = this;\n return dialog.rtc.setMute(what);\n };\n\n $.verto.dialog.prototype.getMute = function () {\n var dialog = this;\n return dialog.rtc.getMute();\n };\n\n $.verto.dialog.prototype.setVideoMute = function (what) {\n var dialog = this;\n return dialog.rtc.setVideoMute(what);\n };\n\n $.verto.dialog.prototype.getVideoMute = function () {\n var dialog = this;\n return dialog.rtc.getVideoMute();\n };\n\n $.verto.dialog.prototype.setScreenShare = function (what, videoSender) {\n var dialog = this;\n return dialog.rtc.setScreenShare(what, videoSender);\n };\n\n $.verto.dialog.prototype.getScreenShare = function () {\n var dialog = this;\n return dialog.rtc.getScreenShare();\n };\n\n $.verto.dialog.prototype.useStereo = function (on) {\n var dialog = this;\n dialog.params.useStereo = on;\n dialog.rtc.useStereo(on);\n };\n\n $.verto.dialog.prototype.dtmf = function (digits) {\n var dialog = this;\n\n if (digits) {\n dialog.sendMethod(\"verto.info\", {\n dtmf: digits\n });\n }\n };\n\n $.verto.dialog.prototype.rtt = function (obj) {\n var dialog = this;\n var pobj = {};\n\n if (!obj) {\n return false;\n }\n\n pobj.code = obj.code;\n pobj.chars = obj.chars;\n\n if (pobj.chars || pobj.code) {\n dialog.sendMethod(\"verto.info\", {\n txt: obj,\n noDialogParams: true\n });\n }\n };\n\n $.verto.dialog.prototype.transfer = function (dest, params) {\n var dialog = this;\n\n if (dest) {\n dialog.sendMethod(\"verto.modify\", {\n action: \"transfer\",\n destination: dest,\n params: params\n });\n }\n };\n\n $.verto.dialog.prototype.replace = function (replaceCallID, params) {\n var dialog = this;\n\n if (replaceCallID) {\n dialog.sendMethod(\"verto.modify\", {\n action: \"replace\",\n replaceCallID: replaceCallID,\n params: params\n });\n }\n };\n\n $.verto.dialog.prototype.hold = function (params) {\n var dialog = this;\n dialog.sendMethod(\"verto.modify\", {\n action: \"hold\",\n params: params\n });\n };\n\n $.verto.dialog.prototype.unhold = function (params) {\n var dialog = this;\n dialog.sendMethod(\"verto.modify\", {\n action: \"unhold\",\n params: params\n });\n };\n\n $.verto.dialog.prototype.toggleHold = function (params) {\n var dialog = this;\n dialog.sendMethod(\"verto.modify\", {\n action: \"toggleHold\",\n params: params\n });\n };\n\n $.verto.dialog.prototype.message = function (msg) {\n var dialog = this;\n var err = 0;\n msg.from = dialog.params.login;\n\n if (!msg.to) {\n console.error(\"Missing To\");\n err++;\n }\n\n if (!msg.body) {\n console.error(\"Missing Body\");\n err++;\n }\n\n if (err) {\n return false;\n }\n\n dialog.sendMethod(\"verto.info\", {\n msg: msg\n });\n return true;\n };\n\n $.verto.dialog.prototype.answer = function (params) {\n var dialog = this;\n\n if (!dialog.answered) {\n if (!params) {\n params = {};\n }\n\n params.sdp = dialog.params.sdp;\n\n if (params) {\n if (params.useVideo) {\n dialog.useVideo(true);\n }\n\n dialog.params.callee_id_name = params.callee_id_name;\n dialog.params.callee_id_number = params.callee_id_number;\n\n if (params.useCamera) {\n dialog.useCamera = params.useCamera;\n }\n\n if (params.useMic) {\n dialog.useMic = params.useMic;\n }\n\n if (params.useSpeak) {\n dialog.useSpeak = params.useSpeak;\n }\n }\n\n dialog.rtc.createAnswer(params);\n dialog.answered = true;\n }\n };\n\n $.verto.dialog.prototype.handleAnswer = function (params) {\n var dialog = this;\n dialog.gotAnswer = true;\n\n if (dialog.state.val >= $.verto.enum.state.active.val) {\n return;\n }\n\n if (dialog.state.val >= $.verto.enum.state.early.val) {\n dialog.setState($.verto.enum.state.active);\n } else {\n if (dialog.gotEarly) {\n console.log(\"Dialog \" + dialog.callID + \" Got answer while still establishing early media, delaying...\");\n } else {\n console.log(\"Dialog \" + dialog.callID + \" Answering Channel\");\n dialog.rtc.answer(params.sdp, function () {\n dialog.setState($.verto.enum.state.active);\n }, function (e) {\n console.error(e);\n dialog.hangup();\n });\n console.log(\"Dialog \" + dialog.callID + \"ANSWER SDP\", params.sdp);\n }\n }\n };\n\n $.verto.dialog.prototype.cidString = function (enc) {\n var dialog = this;\n var party = dialog.params.remote_caller_id_name + (enc ? \" &lt;\" : \" <\") + dialog.params.remote_caller_id_number + (enc ? \"&gt;\" : \">\");\n return party;\n };\n\n $.verto.dialog.prototype.sendMessage = function (msg, params) {\n var dialog = this;\n\n if (dialog.callbacks.onMessage) {\n dialog.callbacks.onMessage(dialog.verto, dialog, msg, params);\n }\n };\n\n $.verto.dialog.prototype.handleInfo = function (params) {\n var dialog = this;\n dialog.sendMessage($.verto.enum.message.info, params);\n };\n\n $.verto.dialog.prototype.handleDisplay = function (params) {\n var dialog = this;\n\n if (params.display_name) {\n dialog.params.remote_caller_id_name = params.display_name;\n }\n\n if (params.display_number) {\n dialog.params.remote_caller_id_number = params.display_number;\n }\n\n dialog.sendMessage($.verto.enum.message.display, {});\n };\n\n $.verto.dialog.prototype.handleMedia = function (params) {\n var dialog = this;\n\n if (dialog.state.val >= $.verto.enum.state.early.val) {\n return;\n }\n\n dialog.gotEarly = true;\n dialog.rtc.answer(params.sdp, function () {\n console.log(\"Dialog \" + dialog.callID + \"Establishing early media\");\n dialog.setState($.verto.enum.state.early);\n\n if (dialog.gotAnswer) {\n console.log(\"Dialog \" + dialog.callID + \"Answering Channel\");\n dialog.setState($.verto.enum.state.active);\n }\n }, function (e) {\n console.error(e);\n dialog.hangup();\n });\n console.log(\"Dialog \" + dialog.callID + \"EARLY SDP\", params.sdp);\n };\n\n $.verto.ENUM = function (s) {\n var i = 0,\n o = {};\n s.split(\" \").map(function (x) {\n o[x] = {\n name: x,\n val: i++\n };\n });\n return Object.freeze(o);\n };\n\n $.verto.enum = {};\n $.verto.enum.states = Object.freeze({\n new: {\n requesting: 1,\n recovering: 1,\n ringing: 1,\n destroy: 1,\n answering: 1,\n hangup: 1\n },\n requesting: {\n trying: 1,\n hangup: 1,\n active: 1\n },\n recovering: {\n answering: 1,\n hangup: 1\n },\n trying: {\n active: 1,\n early: 1,\n hangup: 1\n },\n ringing: {\n answering: 1,\n hangup: 1\n },\n answering: {\n active: 1,\n hangup: 1\n },\n active: {\n answering: 1,\n requesting: 1,\n hangup: 1,\n held: 1\n },\n held: {\n hangup: 1,\n active: 1\n },\n early: {\n hangup: 1,\n active: 1\n },\n hangup: {\n destroy: 1\n },\n destroy: {},\n purge: {\n destroy: 1\n }\n });\n $.verto.enum.state = $.verto.ENUM(\"new requesting trying recovering ringing answering early active held hangup destroy purge\");\n $.verto.enum.direction = $.verto.ENUM(\"inbound outbound\");\n $.verto.enum.message = $.verto.ENUM(\"display info pvtEvent clientReady\");\n $.verto.enum = Object.freeze($.verto.enum);\n $.verto.saved = [];\n $.verto.unloadJobs = [];\n $(window).bind(\"beforeunload\", function () {\n for (var f in $.verto.unloadJobs) {\n $.verto.unloadJobs[f]();\n }\n\n if ($.verto.haltClosure) return $.verto.haltClosure();\n\n for (var i in $.verto.saved) {\n var verto = $.verto.saved[i];\n\n if (verto) {\n verto.purge();\n verto.logout();\n }\n }\n\n return $.verto.warnOnUnload;\n });\n $.verto.videoDevices = [];\n $.verto.audioInDevices = [];\n $.verto.audioOutDevices = [];\n\n var checkDevices = function checkDevices(runtime) {\n console.info(\"枚举设备\");\n var aud_in = [],\n aud_out = [],\n vid = [];\n var has_video = 0,\n has_audio = 0;\n var Xstream;\n\n function gotDevices(deviceInfos) {\n for (var i = 0; i !== deviceInfos.length; ++i) {\n var deviceInfo = deviceInfos[i];\n var text = \"\";\n console.log(deviceInfo);\n console.log(deviceInfo.kind + \": \" + deviceInfo.label + \" id = \" + deviceInfo.deviceId);\n\n if (deviceInfo.kind === \"audioinput\") {\n text = deviceInfo.label || \"microphone \" + (aud_in.length + 1);\n aud_in.push({\n id: deviceInfo.deviceId,\n kind: \"audio_in\",\n label: text\n });\n } else if (deviceInfo.kind === \"audiooutput\") {\n text = deviceInfo.label || \"speaker \" + (aud_out.length + 1);\n aud_out.push({\n id: deviceInfo.deviceId,\n kind: \"audio_out\",\n label: text\n });\n } else if (deviceInfo.kind === \"videoinput\") {\n text = deviceInfo.label || \"camera \" + (vid.length + 1);\n vid.push({\n id: deviceInfo.deviceId,\n kind: \"video\",\n label: text\n });\n } else {\n console.log(\"某种其他类型的源/设备: \", deviceInfo);\n }\n }\n\n $.verto.videoDevices = vid;\n $.verto.audioInDevices = aud_in;\n $.verto.audioOutDevices = aud_out;\n console.info(\"Audio IN Devices\", $.verto.audioInDevices);\n console.info(\"Audio Out Devices\", $.verto.audioOutDevices);\n console.info(\"Video Devices\", $.verto.videoDevices);\n\n if (Xstream) {\n Xstream.getTracks().forEach(function (track) {\n track.stop();\n });\n }\n\n if (runtime) {\n runtime(true);\n }\n }\n\n function handleError(error) {\n console.log(\"设备枚举错误: \", error);\n if (runtime) runtime(false);\n }\n\n function checkTypes(devs) {\n for (var i = 0; i !== devs.length; ++i) {\n if (devs[i].kind === \"audioinput\") {\n has_audio++;\n } else if (devs[i].kind === \"videoinput\") {\n has_video++;\n }\n }\n\n navigator.getUserMedia({\n audio: has_audio > 0 ? true : false,\n video: has_video > 0 ? true : false\n }, function (stream) {\n Xstream = stream;\n navigator.mediaDevices.enumerateDevices().then(gotDevices).catch(handleError);\n }, function (err) {\n console.log(\"出现以下错误: \" + err.name);\n });\n }\n\n navigator.mediaDevices.enumerateDevices().then(checkTypes).catch(handleError);\n };\n\n $.verto.refreshDevices = function (runtime) {\n checkDevices(runtime);\n };\n\n $.verto.init = function (obj, runtime) {\n if (!obj) {\n obj = {};\n }\n\n if (!obj.skipPermCheck && !obj.skipDeviceCheck) {\n $.FSRTC.checkPerms(function (status) {\n checkDevices(runtime);\n }, true, true);\n } else if (obj.skipPermCheck && !obj.skipDeviceCheck) {\n checkDevices(runtime);\n } else if (!obj.skipPermCheck && obj.skipDeviceCheck) {\n $.FSRTC.checkPerms(function (status) {\n runtime(status);\n }, true, true);\n } else {\n runtime(null);\n }\n };\n\n $.verto.genUUID = function () {\n return generateGUID();\n };\n})(TRjQuery);\n\nvar vertoHandle = null;\nvar cur_call_map = {};\nvar ringing = false;\nvar verto_login = null;\nvar verto_password = null;\nvar first_login = false;\nvar online_visible = false;\nvar userCallback = null;\n\nfunction bootstrap(login, password, socketUrl, localIp, peerTag, localTag, callback, mic, speak, cam, ringFile, ringTag) {\n verto_login = login;\n verto_password = password;\n cur_call_map = {};\n userCallback = new Proxy(callback, {\n get: function get(target, propKey) {\n var originalMethod = target[propKey];\n\n if (typeof originalMethod === \"function\") {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n console.log(\"Callback API Calling \".concat(String(propKey), \" with arguments:\"), args);\n return originalMethod.apply(this, args);\n };\n }\n\n return originalMethod;\n }\n });\n vertoHandle = new TRjQuery.verto({\n login: login,\n passwd: password,\n socketUrl: socketUrl,\n browserIP: localIp,\n tag: peerTag,\n localTag: localTag,\n ringTag: ringTag,\n ringFile: ringFile,\n videoParams: {\n minWidth: 640,\n minHeight: 480,\n maxWidth: 1920,\n maxHeight: 1080,\n minFrameRate: 15,\n vertoBestFrameRate: 25\n },\n audioParams: {\n googAutoGainControl: false,\n googNoiseSuppression: false,\n googHighpassFilter: false\n },\n deviceParams: {\n useMic: mic,\n useSpeak: speak,\n useCamera: cam\n }\n }, vertoCallbacks);\n online(false);\n}\n\nfunction rtcLogin() {\n online(false);\n vertoHandle.loginData({\n login: verto_login,\n passwd: verto_password\n });\n vertoHandle.login();\n}\n\nfunction rtcLogout() {\n rtcHangupAll();\n vertoHandle.logout();\n online(false);\n}\n\nfunction online(on) {\n if (on) {\n first_login = true;\n\n if (userCallback && typeof userCallback.onLogin === \"function\") {\n userCallback.onLogin();\n }\n } else {\n if (userCallback && typeof userCallback.onLogout === \"function\") {\n userCallback.onLogout();\n }\n }\n\n online_visible = on;\n}\n\nvar vertoCallbacks = {\n onMessage: function onMessage(verto, dialog, msg, data) {},\n onDialogState: function onDialogState(d) {\n cur_call_map[d.callID] = d;\n\n if (d.state == TRjQuery.verto.enum.state.ringing) {\n ringing = true;\n } else {\n ringing = false;\n }\n\n switch (d.state) {\n case TRjQuery.verto.enum.state.ringing:\n console.log(\"Ringing: \" + d.cidString());\n\n if (userCallback && typeof userCallback.onRinging === \"function\") {\n userCallback.onRinging(d);\n }\n\n break;\n\n case TRjQuery.verto.enum.state.trying:\n console.log(\"Calling: \" + d.cidString());\n\n if (userCallback && typeof userCallback.onCalling === \"function\") {\n userCallback.onCalling(d);\n }\n\n break;\n\n case TRjQuery.verto.enum.state.early:\n console.log(\"Early: \" + d.cidString());\n break;\n\n case TRjQuery.verto.enum.state.active:\n console.log(\"Talking to: \" + d.cidString());\n\n if (userCallback && typeof userCallback.onAnswer === \"function\") {\n userCallback.onAnswer(d);\n }\n\n break;\n\n case TRjQuery.verto.enum.state.hangup:\n console.log(\"Call ended with cause: \" + d.cause);\n break;\n\n case TRjQuery.verto.enum.state.destroy:\n console.log(\"destroy\");\n\n if (userCallback && typeof userCallback.onHangup === \"function\") {\n userCallback.onHangup(d);\n }\n\n delete cur_call_map[d.callID];\n break;\n\n case TRjQuery.verto.enum.state.held:\n console.log(\"held\");\n\n if (userCallback && typeof userCallback.onHold === \"function\") {\n userCallback.onHold(d);\n }\n\n break;\n\n case TRjQuery.verto.enum.state.recovering:\n console.log(\"recovering\");\n\n if (userCallback && typeof userCallback.onRecover === \"function\") {\n userCallback.onRecover(d);\n }\n\n break;\n\n default:\n break;\n }\n },\n onWSLogin: function onWSLogin(v, success) {\n cur_call_map = {};\n ringing = false;\n\n if (success) {\n online(true);\n }\n },\n onWSClose: function onWSClose(v, success) {\n online(false);\n },\n onEvent: function onEvent(v, e) {\n console.debug(\"GOT EVENT\", e);\n }\n};\n\nfunction rtcHold(callID) {\n cur_call_map[callID].hold();\n}\n\nfunction rtcUnhold(callID) {\n cur_call_map[callID].unhold();\n}\n\nfunction rtcHoldUnhold(callID) {\n cur_call_map[callID].toggleHold();\n}\n\nfunction rtcDtmf(callID, key) {\n if (key === \"#\" || key === \"*\" || key === \"0\" || key > 0 && key <= 9) {\n cur_call_map[callID].dtmf(key);\n }\n}\n\nfunction rtcHangupAll() {\n vertoHandle.hangup();\n cur_call_map = {};\n}\n\nfunction rtcHangup(callID) {\n vertoHandle.hangup(callID);\n delete cur_call_map[callID];\n}\n\nfunction rtcDial(destinationNumber, useVideo) {\n if (!useVideo) {\n useVideo = false;\n }\n\n console.log(\"正在呼叫\");\n var cur_call = vertoHandle.newCall({\n destination_number: destinationNumber,\n caller_id_name: verto_login,\n caller_id_number: verto_login,\n outgoingBandwidth: \"default\",\n incomingBandwidth: \"default\",\n userVariables: {\n email: \"test@test.com\"\n },\n useVideo: useVideo,\n useStereo: false,\n mirrorInput: true\n });\n cur_call_map[cur_call.callID] = cur_call;\n}\n\nfunction rtcAnswer(d, videoFlag) {\n d.answer({\n useVideo: videoFlag,\n useStereo: false\n });\n}\n\nfunction rtcGetMuteState(callID) {\n return cur_call_map[callID].getMute();\n}\n\nfunction rtcMute(callID) {\n cur_call_map[callID].setMute(\"off\");\n}\n\nfunction rtcUnmute(callID) {\n cur_call_map[callID].setMute(\"on\");\n}\n\nfunction rtcMuteUnmute(callID) {\n cur_call_map[callID].setMute(\"toggle\");\n}\n\nfunction rtcGetMuteVideoState(callID) {\n return cur_call_map[callID].getVideoMute();\n}\n\nfunction rtcMuteVideo(callID) {\n cur_call_map[callID].setVideoMute(\"off\");\n}\n\nfunction rtcUnmuteVideo(callID) {\n cur_call_map[callID].setVideoMute(\"on\");\n}\n\nfunction rtcMuteUnmuteVideo(callID) {\n cur_call_map[callID].setVideoMute(\"toggle\");\n}\n\nvar bandwidthTestData;\n\nfunction rtcTestBandwidth() {\n var bytesToSendAndReceive = 1024 * 256 * 50;\n return new Promise(function (resolve, reject) {\n try {\n vertoHandle.rpcClient.speedTest(bytesToSendAndReceive, function (event, data) {\n var upBand = Math.ceil(data.upKPS);\n var downBand = Math.ceil(data.downKPS);\n console.log(\"[带宽测试] 上行: \" + upBand / 1024 + \"Mbit/s, 下行: \" + downBand / 1024 + \"Mbit/s\");\n bandwidthTestData = data;\n resolve(bandwidthTestData);\n });\n } catch (e) {\n bandwidthTestData = null;\n reject(e);\n }\n });\n}\n\nfunction getMediaDevices() {\n return _getMediaDevices.apply(this, arguments);\n}\n\nfunction _getMediaDevices() {\n _getMediaDevices = _asyncToGenerator(\n /*#__PURE__*/\n regeneratorRuntime.mark(function _callee() {\n var stream, _stream;\n\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n _context.next = 3;\n return navigator.mediaDevices.getUserMedia({\n audio: true,\n video: true\n });\n\n case 3:\n stream = _context.sent;\n return _context.abrupt(\"return\", getTracks(stream));\n\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n console.log(_context.t0.name + \": \" + _context.t0.message);\n\n case 10:\n _context.prev = 10;\n _context.next = 13;\n return navigator.mediaDevices.getUserMedia({\n audio: true,\n video: false\n });\n\n case 13:\n _stream = _context.sent;\n return _context.abrupt(\"return\", getTracks(_stream));\n\n case 17:\n _context.prev = 17;\n _context.t1 = _context[\"catch\"](10);\n console.log(_context.t1.name + \": \" + _context.t1.message);\n\n case 20:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[0, 7], [10, 17]]);\n }));\n return _getMediaDevices.apply(this, arguments);\n}\n\nfunction getTracks(_x) {\n return _getTracks.apply(this, arguments);\n}\n\nfunction _getTracks() {\n _getTracks = _asyncToGenerator(\n /*#__PURE__*/\n regeneratorRuntime.mark(function _callee2(stream) {\n var devices, audioInputDevices, audioOutputDevices, videoDevices;\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n stream.getTracks().forEach(function (track) {\n return track.stop();\n });\n _context2.next = 3;\n return navigator.mediaDevices.enumerateDevices();\n\n case 3:\n devices = _context2.sent;\n audioInputDevices = [];\n audioOutputDevices = [];\n videoDevices = [];\n devices.forEach(function (device) {\n if (device.kind === \"audioinput\") {\n audioInputDevices.push(device);\n } else if (device.kind === \"audiooutput\") {\n audioOutputDevices.push(device);\n } else if (device.kind === \"videoinput\") {\n videoDevices.push(device);\n }\n });\n return _context2.abrupt(\"return\", {\n audioInputDevices: audioInputDevices,\n audioOutputDevices: audioOutputDevices,\n videoDevices: videoDevices\n });\n\n case 9:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _getTracks.apply(this, arguments);\n}\n\nfunction rtcStartScreenShare(callID) {\n var screenShare = cur_call_map[callID].setScreenShare(\"on\", getVideoSendersByCallId(callID));\n\n if (screenShare) {\n var peerConn = getPeerConnByCallId(callID);\n\n peerConn.onnegotiationneeded = function () {\n peerConn.createOffer().then(function (offer) {\n return peerConn.setLocalDescription(offer);\n }).then(function () {\n console.log(\"-----发送新的offer\");\n });\n };\n }\n}\n\nfunction rtcStopScreenShare(callID) {\n cur_call_map[callID].setScreenShare(\"off\", getVideoSendersByCallId(callID));\n}\n\nfunction rtcStartStopScreenShare(callID) {\n cur_call_map[callID].setScreenShare(\"toggle\", getVideoSendersByCallId(callID));\n}\n\nfunction rtcGetScreenShareState(callID) {\n return cur_call_map[callID].getScreenShare();\n}\n\nfunction getVideoSendersByCallId(callID) {\n var peerConn = getPeerConnByCallId(callID);\n var senders = peerConn.getSenders();\n\n if (senders && senders.length > 0) {\n var rtcRtpSender00 = senders.find(function (s) {\n return s.track.kind === \"video\";\n });\n\n if (rtcRtpSender00) {\n return rtcRtpSender00;\n }\n }\n\n return;\n}\n\nfunction getPeerConnByCallId(callID) {\n var callRtc = cur_call_map[callID].rtc;\n return callRtc.peer.peer;\n}\n\nfunction refreshDevices(runtime) {\n TRjQuery.verto.refreshDevices(runtime);\n}\n\nfunction init(obj, runtime) {\n if (typeof runtime != \"function\") {\n runtime = function runtime(e) {\n console.log(e);\n };\n }\n\n TRjQuery.verto.init(obj, runtime);\n}\n\nfunction getVideoDevices() {\n return TRjQuery.verto.videoDevices;\n}\n\nfunction getAudioInDevices() {\n return TRjQuery.verto.audioInDevices;\n}\n\nfunction getAudioOutDevices() {\n return TRjQuery.verto.audioOutDevices;\n}\n\nvar rtcHelper = {\n bootstrap: bootstrap,\n rtcLogin: rtcLogin,\n rtcLogout: rtcLogout,\n rtcHold: rtcHold,\n rtcUnhold: rtcUnhold,\n rtcHoldUnhold: rtcHoldUnhold,\n rtcDtmf: rtcDtmf,\n rtcHangupAll: rtcHangupAll,\n rtcHangup: rtcHangup,\n rtcDial: rtcDial,\n rtcAnswer: rtcAnswer,\n rtcGetMuteState: rtcGetMuteState,\n rtcMute: rtcMute,\n rtcUnmute: rtcUnmute,\n rtcMuteUnmute: rtcMuteUnmute,\n rtcGetMuteVideoState: rtcGetMuteVideoState,\n rtcMuteVideo: rtcMuteVideo,\n rtcUnmuteVideo: rtcUnmuteVideo,\n rtcMuteUnmuteVideo: rtcMuteUnmuteVideo,\n rtcTestBandwidth: rtcTestBandwidth,\n getMediaDevices: getMediaDevices,\n rtcStartScreenShare: rtcStartScreenShare,\n rtcStopScreenShare: rtcStopScreenShare,\n rtcStartStopScreenShare: rtcStartStopScreenShare,\n rtcGetScreenShareState: rtcGetScreenShareState,\n init: init,\n refreshDevices: refreshDevices,\n videoDevices: getVideoDevices,\n audioInDevices: getAudioInDevices,\n audioOutDevices: getAudioOutDevices\n};\nvar rtcHelperWithLogging = new Proxy(rtcHelper, {\n get: function get(target, propKey) {\n var originalMethod = target[propKey];\n\n if (typeof originalMethod === \"function\") {\n return function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n console.log(\"WebRTC API Calling \".concat(String(propKey), \" with arguments:\"), args);\n return originalMethod.apply(this, args);\n };\n }\n\n return originalMethod;\n }\n});\nexport { rtcHelperWithLogging, rtcHelper };\n\n(function (f) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === \"object\" && typeof module !== \"undefined\") {\n module.exports = f();\n } else if (typeof define === \"function\" && define.amd) {\n define([], f);\n } else {\n var g;\n\n if (typeof window !== \"undefined\") {\n g = window;\n } else if (typeof global !== \"undefined\") {\n g = global;\n } else if (typeof self !== \"undefined\") {\n g = self;\n } else {\n g = this;\n }\n\n g.adapter = f();\n }\n})(function () {\n var define, module, exports;\n return function () {\n function r(e, n, t) {\n function o(i, f) {\n if (!n[i]) {\n if (!e[i]) {\n var c = \"function\" == typeof require && require;\n if (!f && c) return c(i, !0);\n if (u) return u(i, !0);\n var a = new Error(\"Cannot find module '\" + i + \"'\");\n throw a.code = \"MODULE_NOT_FOUND\", a;\n }\n\n var p = n[i] = {\n exports: {}\n };\n e[i][0].call(p.exports, function (r) {\n var n = e[i][1][r];\n return o(n || r);\n }, p, p.exports, r, e, n, t);\n }\n\n return n[i].exports;\n }\n\n for (var u = \"function\" == typeof require && require, i = 0; i < t.length; i++) {\n o(t[i]);\n }\n\n return o;\n }\n\n return r;\n }()({\n 1: [function (require, module, exports) {\n \"use strict\";\n\n var _adapter_factory = require(\"./adapter_factory.js\");\n\n var adapter = (0, _adapter_factory.adapterFactory)({\n window: typeof window === \"undefined\" ? undefined : window\n });\n module.exports = adapter;\n }, {\n \"./adapter_factory.js\": 2\n }],\n 2: [function (require, module, exports) {\n \"use strict\";\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == _typeof2(Symbol.iterator) ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n }, _typeof(obj);\n }\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.adapterFactory = adapterFactory;\n\n var utils = _interopRequireWildcard(require(\"./utils\"));\n\n var chromeShim = _interopRequireWildcard(require(\"./chrome/chrome_shim\"));\n\n var firefoxShim = _interopRequireWildcard(require(\"./firefox/firefox_shim\"));\n\n var safariShim = _interopRequireWildcard(require(\"./safari/safari_shim\"));\n\n var commonShim = _interopRequireWildcard(require(\"./common_shim\"));\n\n var sdp = _interopRequireWildcard(require(\"sdp\"));\n\n function _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n }\n\n function _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n }\n\n function adapterFactory() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n window = _ref.window;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true\n };\n var logging = utils.log;\n var browserDetails = utils.detectBrowser(window);\n var adapter = {\n browserDetails: browserDetails,\n commonShim: commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n sdp: sdp\n };\n\n switch (browserDetails.browser) {\n case \"chrome\":\n if (!chromeShim || !chromeShim.shimPeerConnection || !options.shimChrome) {\n logging(\"Chrome shim is not included in this adapter release.\");\n return adapter;\n }\n\n if (browserDetails.version === null) {\n logging(\"Chrome shim can not determine version, not shimming.\");\n return adapter;\n }\n\n logging(\"adapter.js shimming chrome.\");\n adapter.browserShim = chromeShim;\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\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 commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimRTCIceCandidateRelayProtocol(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\n case \"firefox\":\n if (!firefoxShim || !firefoxShim.shimPeerConnection || !options.shimFirefox) {\n logging(\"Firefox shim is not included in this adapter release.\");\n return adapter;\n }\n\n logging(\"adapter.js shimming firefox.\");\n adapter.browserShim = firefoxShim;\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\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 commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n\n case \"safari\":\n if (!safariShim || !options.shimSafari) {\n logging(\"Safari shim is not included in this adapter release.\");\n return adapter;\n }\n\n logging(\"adapter.js shimming safari.\");\n adapter.browserShim = safariShim;\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\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 commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimRTCIceCandidateRelayProtocol(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n\n default:\n logging(\"Unsupported browser!\");\n break;\n }\n\n return adapter;\n }\n }, {\n \"./chrome/chrome_shim\": 3,\n \"./common_shim\": 6,\n \"./firefox/firefox_shim\": 7,\n \"./safari/safari_shim\": 10,\n \"./utils\": 11,\n sdp: 12\n }],\n 3: [function (require, module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.fixNegotiationNeeded = fixNegotiationNeeded;\n exports.shimAddTrackRemoveTrack = shimAddTrackRemoveTrack;\n exports.shimAddTrackRemoveTrackWithNative = shimAddTrackRemoveTrackWithNative;\n Object.defineProperty(exports, \"shimGetDisplayMedia\", {\n enumerable: true,\n get: function get() {\n return _getdisplaymedia.shimGetDisplayMedia;\n }\n });\n exports.shimGetSendersWithDtmf = shimGetSendersWithDtmf;\n exports.shimGetStats = shimGetStats;\n Object.defineProperty(exports, \"shimGetUserMedia\", {\n enumerable: true,\n get: function get() {\n return _getusermedia.shimGetUserMedia;\n }\n });\n exports.shimMediaStream = shimMediaStream;\n exports.shimOnTrack = shimOnTrack;\n exports.shimPeerConnection = shimPeerConnection;\n exports.shimSenderReceiverGetStats = shimSenderReceiverGetStats;\n\n var utils = _interopRequireWildcard(require(\"../utils.js\"));\n\n var _getusermedia = require(\"./getusermedia\");\n\n var _getdisplaymedia = require(\"./getdisplaymedia\");\n\n function _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n }\n\n function _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n }\n\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n\n return _typeof(key) === \"symbol\" ? key : String(key);\n }\n\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (hint === \"string\" ? String : Number)(input);\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == _typeof2(Symbol.iterator) ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n }, _typeof(obj);\n }\n\n function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n }\n\n function shimOnTrack(window) {\n if (_typeof(window) === \"object\" && window.RTCPeerConnection && !(\"ontrack\" in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, \"ontrack\", {\n get: function get() {\n return this._ontrack;\n },\n set: function set(f) {\n if (this._ontrack) {\n this.removeEventListener(\"track\", this._ontrack);\n }\n\n this.addEventListener(\"track\", this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n var origSetRemoteDescription = window.RTCPeerConnection.prototype.setRemoteDescription;\n\n window.RTCPeerConnection.prototype.setRemoteDescription = function setRemoteDescription() {\n var _this = this;\n\n if (!this._ontrackpoly) {\n this._ontrackpoly = function (e) {\n e.stream.addEventListener(\"addtrack\", function (te) {\n var receiver;\n\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = _this.getReceivers().find(function (r) {\n return r.track && r.track.id === te.track.id;\n });\n } else {\n receiver = {\n track: te.track\n };\n }\n\n var event = new Event(\"track\");\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {\n receiver: receiver\n };\n event.streams = [e.stream];\n\n _this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(function (track) {\n var receiver;\n\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = _this.getReceivers().find(function (r) {\n return r.track && r.track.id === track.id;\n });\n } else {\n receiver = {\n track: track\n };\n }\n\n var event = new Event(\"track\");\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {\n receiver: receiver\n };\n event.streams = [e.stream];\n\n _this.dispatchEvent(event);\n });\n };\n\n this.addEventListener(\"addstream\", this._ontrackpoly);\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n utils.wrapPeerConnectionEvent(window, \"track\", function (e) {\n if (!e.transceiver) {\n Object.defineProperty(e, \"transceiver\", {\n value: {\n receiver: e.receiver\n }\n });\n }\n\n return e;\n });\n }\n }\n\n function shimGetSendersWithDtmf(window) {\n if (_typeof(window) === \"object\" && window.RTCPeerConnection && !(\"getSenders\" in window.RTCPeerConnection.prototype) && \"createDTMFSender\" in window.RTCPeerConnection.prototype) {\n var shimSenderWithDtmf = function shimSenderWithDtmf(pc, track) {\n return {\n track: track,\n\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\n return this._dtmf;\n },\n\n _pc: pc\n };\n };\n\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice();\n };\n\n var origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n\n window.RTCPeerConnection.prototype.addTrack = function addTrack(track, stream) {\n var sender = origAddTrack.apply(this, arguments);\n\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n\n this._senders.push(sender);\n }\n\n return sender;\n };\n\n var origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n\n var idx = this._senders.indexOf(sender);\n\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n\n var origAddStream = window.RTCPeerConnection.prototype.addStream;\n\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n var _this2 = this;\n\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(function (track) {\n _this2._senders.push(shimSenderWithDtmf(_this2, track));\n });\n };\n\n var origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n\n window.RTCPeerConnection.prototype.removeStream = function removeStream(stream) {\n var _this3 = this;\n\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n stream.getTracks().forEach(function (track) {\n var sender = _this3._senders.find(function (s) {\n return s.track === track;\n });\n\n if (sender) {\n _this3._senders.splice(_this3._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (_typeof(window) === \"object\" && window.RTCPeerConnection && \"getSenders\" in window.RTCPeerConnection.prototype && \"createDTMFSender\" in window.RTCPeerConnection.prototype && window.RTCRtpSender && !(\"dtmf\" in window.RTCRtpSender.prototype)) {\n var origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n var _this4 = this;\n\n var senders = origGetSenders.apply(this, []);\n senders.forEach(function (sender) {\n return sender._pc = _this4;\n });\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, \"dtmf\", {\n get: function 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\n return this._dtmf;\n }\n });\n }\n }\n\n function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n var origGetStats = window.RTCPeerConnection.prototype.getStats;\n\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n var _this5 = this;\n\n var _arguments = Array.prototype.slice.call(arguments),\n selector = _arguments[0],\n onSucc = _arguments[1],\n onErr = _arguments[2];\n\n if (arguments.length > 0 && typeof selector === \"function\") {\n return origGetStats.apply(this, arguments);\n }\n\n if (origGetStats.length === 0 && (arguments.length === 0 || typeof selector !== \"function\")) {\n return origGetStats.apply(this, []);\n }\n\n var fixChromeStats_ = function fixChromeStats_(response) {\n var standardReport = {};\n var reports = response.result();\n reports.forEach(function (report) {\n var 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(function (name) {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n return standardReport;\n };\n\n var makeMapStats = function makeMapStats(stats) {\n return new Map(Object.keys(stats).map(function (key) {\n return [key, stats[key]];\n }));\n };\n\n if (arguments.length >= 2) {\n var successCallbackWrapper_ = function successCallbackWrapper_(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_, selector]);\n }\n\n return new Promise(function (resolve, reject) {\n origGetStats.apply(_this5, [function (response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n }\n\n function shimSenderReceiverGetStats(window) {\n if (!(_typeof(window) === \"object\" && window.RTCPeerConnection && window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n if (!(\"getStats\" in window.RTCRtpSender.prototype)) {\n var origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n var _this6 = this;\n\n var senders = origGetSenders.apply(this, []);\n senders.forEach(function (sender) {\n return sender._pc = _this6;\n });\n return senders;\n };\n }\n\n var origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n var sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n\n window.RTCRtpSender.prototype.getStats = function getStats() {\n var sender = this;\n return this._pc.getStats().then(function (result) {\n return utils.filterStats(result, sender.track, true);\n });\n };\n }\n\n if (!(\"getStats\" in window.RTCRtpReceiver.prototype)) {\n var origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n var _this7 = this;\n\n var receivers = origGetReceivers.apply(this, []);\n receivers.forEach(function (receiver) {\n return receiver._pc = _this7;\n });\n return receivers;\n };\n }\n\n utils.wrapPeerConnectionEvent(window, \"track\", function (e) {\n e.receiver._pc = e.srcElement;\n return e;\n });\n\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n var receiver = this;\n return this._pc.getStats().then(function (result) {\n return utils.filterStats(result, receiver.track, false);\n });\n };\n }\n\n if (!(\"getStats\" in window.RTCRtpSender.prototype && \"getStats\" in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n var origGetStats = window.RTCPeerConnection.prototype.getStats;\n\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 && arguments[0] instanceof window.MediaStreamTrack) {\n var track = arguments[0];\n var sender;\n var receiver;\n var err;\n this.getSenders().forEach(function (s) {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(function (r) {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n\n return r.track === track;\n });\n\n if (err || sender && receiver) {\n return Promise.reject(new DOMException(\"There are more than one sender or receiver for the track.\", \"InvalidAccessError\"));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n\n return Promise.reject(new DOMException(\"There is no sender or receiver for the track.\", \"InvalidAccessError\"));\n }\n\n return origGetStats.apply(this, arguments);\n };\n }\n\n function shimAddTrackRemoveTrackWithNative(window) {\n window.RTCPeerConnection.prototype.getLocalStreams = function getLocalStreams() {\n var _this8 = this;\n\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams).map(function (streamId) {\n return _this8._shimmedLocalStreams[streamId][0];\n });\n };\n\n var origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n\n window.RTCPeerConnection.prototype.addTrack = function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n var sender = origAddTrack.apply(this, arguments);\n\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\n return sender;\n };\n\n var origAddStream = window.RTCPeerConnection.prototype.addStream;\n\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n var _this9 = this;\n\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n stream.getTracks().forEach(function (track) {\n var alreadyExists = _this9.getSenders().find(function (s) {\n return s.track === track;\n });\n\n if (alreadyExists) {\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\n }\n });\n var existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n var newSenders = this.getSenders().filter(function (newSender) {\n return existingSenders.indexOf(newSender) === -1;\n });\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n var origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n\n window.RTCPeerConnection.prototype.removeStream = function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n var origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(sender) {\n var _this10 = this;\n\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(function (streamId) {\n var idx = _this10._shimmedLocalStreams[streamId].indexOf(sender);\n\n if (idx !== -1) {\n _this10._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n\n if (_this10._shimmedLocalStreams[streamId].length === 1) {\n delete _this10._shimmedLocalStreams[streamId];\n }\n });\n }\n\n return origRemoveTrack.apply(this, arguments);\n };\n }\n\n function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (window.RTCPeerConnection.prototype.addTrack && browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n var origGetLocalStreams = window.RTCPeerConnection.prototype.getLocalStreams;\n\n window.RTCPeerConnection.prototype.getLocalStreams = function getLocalStreams() {\n var _this11 = this;\n\n var nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(function (stream) {\n return _this11._reverseStreams[stream.id];\n });\n };\n\n var origAddStream = window.RTCPeerConnection.prototype.addStream;\n\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n var _this12 = this;\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n stream.getTracks().forEach(function (track) {\n var alreadyExists = _this12.getSenders().find(function (s) {\n return s.track === track;\n });\n\n if (alreadyExists) {\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\n }\n });\n\n if (!this._reverseStreams[stream.id]) {\n var newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n\n origAddStream.apply(this, [stream]);\n };\n\n var origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n\n window.RTCPeerConnection.prototype.removeStream = function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n origRemoveStream.apply(this, [this._streams[stream.id] || stream]);\n delete this._reverseStreams[this._streams[stream.id] ? this._streams[stream.id].id : stream.id];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack = function addTrack(track, stream) {\n var _this13 = this;\n\n if (this.signalingState === \"closed\") {\n throw new DOMException(\"The RTCPeerConnection's signalingState is 'closed'.\", \"InvalidStateError\");\n }\n\n var streams = [].slice.call(arguments, 1);\n\n if (streams.length !== 1 || !streams[0].getTracks().find(function (t) {\n return t === track;\n })) {\n throw new DOMException(\"The adapter.js addTrack polyfill only supports a single \" + \" stream which is associated with the specified track.\", \"NotSupportedError\");\n }\n\n var alreadyExists = this.getSenders().find(function (s) {\n return s.track === track;\n });\n\n if (alreadyExists) {\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n var oldStream = this._streams[stream.id];\n\n if (oldStream) {\n oldStream.addTrack(track);\n Promise.resolve().then(function () {\n _this13.dispatchEvent(new Event(\"negotiationneeded\"));\n });\n } else {\n var newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n\n return this.getSenders().find(function (s) {\n return s.track === track;\n });\n };\n\n function replaceInternalStreamId(pc, description) {\n var sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(function (internalId) {\n var externalStream = pc._reverseStreams[internalId];\n var internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, \"g\"), externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp: sdp\n });\n }\n\n function replaceExternalStreamId(pc, description) {\n var sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(function (internalId) {\n var externalStream = pc._reverseStreams[internalId];\n var internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, \"g\"), internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp: sdp\n });\n }\n\n [\"createOffer\", \"createAnswer\"].forEach(function (method) {\n var nativeMethod = window.RTCPeerConnection.prototype[method];\n\n var methodObj = _defineProperty({}, method, function () {\n var _this14 = this;\n\n var args = arguments;\n var isLegacyCall = arguments.length && typeof arguments[0] === \"function\";\n\n if (isLegacyCall) {\n return nativeMethod.apply(this, [function (description) {\n var desc = replaceInternalStreamId(_this14, description);\n args[0].apply(null, [desc]);\n }, function (err) {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]]);\n }\n\n return nativeMethod.apply(this, arguments).then(function (description) {\n return replaceInternalStreamId(_this14, description);\n });\n });\n\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n var origSetLocalDescription = window.RTCPeerConnection.prototype.setLocalDescription;\n\n window.RTCPeerConnection.prototype.setLocalDescription = function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n var origLocalDescription = Object.getOwnPropertyDescriptor(window.RTCPeerConnection.prototype, \"localDescription\");\n Object.defineProperty(window.RTCPeerConnection.prototype, \"localDescription\", {\n get: function get() {\n var description = origLocalDescription.get.apply(this);\n\n if (description.type === \"\") {\n return description;\n }\n\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(sender) {\n var _this15 = this;\n\n if (this.signalingState === \"closed\") {\n throw new DOMException(\"The RTCPeerConnection's signalingState is 'closed'.\", \"InvalidStateError\");\n }\n\n if (!sender._pc) {\n throw new DOMException(\"Argument 1 of RTCPeerConnection.removeTrack \" + \"does not implement interface RTCRtpSender.\", \"TypeError\");\n }\n\n var isLocal = sender._pc === this;\n\n if (!isLocal) {\n throw new DOMException(\"Sender was not created by this connection.\", \"InvalidAccessError\");\n }\n\n this._streams = this._streams || {};\n var stream;\n Object.keys(this._streams).forEach(function (streamid) {\n var hasTrack = _this15._streams[streamid].getTracks().find(function (track) {\n return sender.track === track;\n });\n\n if (hasTrack) {\n stream = _this15._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n stream.removeTrack(sender.track);\n }\n\n this.dispatchEvent(new Event(\"negotiationneeded\"));\n }\n };\n }\n\n function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (browserDetails.version < 53) {\n [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"].forEach(function (method) {\n var nativeMethod = window.RTCPeerConnection.prototype[method];\n\n var methodObj = _defineProperty({}, method, function () {\n arguments[0] = new (method === \"addIceCandidate\" ? window.RTCIceCandidate : window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n });\n\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n }\n\n function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, \"negotiationneeded\", function (e) {\n var pc = e.target;\n\n if (browserDetails.version < 72 || pc.getConfiguration && pc.getConfiguration().sdpSemantics === \"plan-b\") {\n if (pc.signalingState !== \"stable\") {\n return;\n }\n }\n\n return e;\n });\n }\n }, {\n \"../utils.js\": 11,\n \"./getdisplaymedia\": 4,\n \"./getusermedia\": 5\n }],\n 4: [function (require, module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.shimGetDisplayMedia = shimGetDisplayMedia;\n\n function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices && \"getDisplayMedia\" in window.navigator.mediaDevices) {\n return;\n }\n\n if (!window.navigator.mediaDevices) {\n return;\n }\n\n if (typeof getSourceId !== \"function\") {\n console.error(\"shimGetDisplayMedia: getSourceId argument is not \" + \"a function\");\n return;\n }\n\n window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(constraints) {\n return getSourceId(constraints).then(function (sourceId) {\n var widthSpecified = constraints.video && constraints.video.width;\n var heightSpecified = constraints.video && constraints.video.height;\n var frameRateSpecified = constraints.video && constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: \"desktop\",\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n }\n }, {}],\n 5: [function (require, module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.shimGetUserMedia = shimGetUserMedia;\n\n var utils = _interopRequireWildcard(require(\"../utils.js\"));\n\n function _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n }\n\n function _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == _typeof2(Symbol.iterator) ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n }, _typeof(obj);\n }\n\n var logging = utils.log;\n\n function shimGetUserMedia(window, browserDetails) {\n var navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n var constraintsToChrome_ = function constraintsToChrome_(c) {\n if (_typeof(c) !== \"object\" || c.mandatory || c.optional) {\n return c;\n }\n\n var cc = {};\n Object.keys(c).forEach(function (key) {\n if (key === \"require\" || key === \"advanced\" || key === \"mediaSource\") {\n return;\n }\n\n var r = _typeof(c[key]) === \"object\" ? c[key] : {\n ideal: c[key]\n };\n\n if (r.exact !== undefined && typeof r.exact === \"number\") {\n r.min = r.max = r.exact;\n }\n\n var oldname_ = function oldname_(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n\n return name === \"deviceId\" ? \"sourceId\" : name;\n };\n\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n var oc = {};\n\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\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(function (mix) {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n\n return cc;\n };\n\n var shimConstraints_ = function shimConstraints_(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n\n constraints = JSON.parse(JSON.stringify(constraints));\n\n if (constraints && _typeof(constraints.audio) === \"object\") {\n var remap = function remap(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\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\n if (constraints && _typeof(constraints.video) === \"object\") {\n var face = constraints.video.facingMode;\n face = face && (_typeof(face) === \"object\" ? face : {\n ideal: face\n });\n var getSupportedFacingModeLies = browserDetails.version < 66;\n\n if (face && (face.exact === \"user\" || face.exact === \"environment\" || face.ideal === \"user\" || face.ideal === \"environment\") && !(navigator.mediaDevices.getSupportedConstraints && navigator.mediaDevices.getSupportedConstraints().facingMode && !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n var matches;\n\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\n if (matches) {\n return navigator.mediaDevices.enumerateDevices().then(function (devices) {\n devices = devices.filter(function (d) {\n return d.kind === \"videoinput\";\n });\n var dev = devices.find(function (d) {\n return matches.some(function (match) {\n return d.label.toLowerCase().includes(match);\n });\n });\n\n if (!dev && devices.length && matches.includes(\"back\")) {\n dev = devices[devices.length - 1];\n }\n\n if (dev) {\n constraints.video.deviceId = face.exact ? {\n exact: dev.deviceId\n } : {\n ideal: dev.deviceId\n };\n }\n\n constraints.video = constraintsToChrome_(constraints.video);\n logging(\"chrome: \" + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n\n constraints.video = constraintsToChrome_(constraints.video);\n }\n\n logging(\"chrome: \" + JSON.stringify(constraints));\n return func(constraints);\n };\n\n var shimError_ = function shimError_(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\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: function toString() {\n return this.name + (this.message && \": \") + this.message;\n }\n };\n };\n\n var getUserMedia_ = function getUserMedia_(constraints, onSuccess, onError) {\n shimConstraints_(constraints, function (c) {\n navigator.webkitGetUserMedia(c, onSuccess, function (e) {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n if (navigator.mediaDevices.getUserMedia) {\n var origGetUserMedia = navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);\n\n navigator.mediaDevices.getUserMedia = function (cs) {\n return shimConstraints_(cs, function (c) {\n return origGetUserMedia(c).then(function (stream) {\n if (c.audio && !stream.getAudioTracks().length || c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(function (track) {\n track.stop();\n });\n throw new DOMException(\"\", \"NotFoundError\");\n }\n\n return stream;\n }, function (e) {\n return Promise.reject(shimError_(e));\n });\n });\n };\n }\n }\n }, {\n \"../utils.js\": 11\n }],\n 6: [function (require, module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.removeExtmapAllowMixed = removeExtmapAllowMixed;\n exports.shimAddIceCandidateNullOrEmpty = shimAddIceCandidateNullOrEmpty;\n exports.shimConnectionState = shimConnectionState;\n exports.shimMaxMessageSize = shimMaxMessageSize;\n exports.shimParameterlessSetLocalDescription = shimParameterlessSetLocalDescription;\n exports.shimRTCIceCandidate = shimRTCIceCandidate;\n exports.shimRTCIceCandidateRelayProtocol = shimRTCIceCandidateRelayProtocol;\n exports.shimSendThrowTypeError = shimSendThrowTypeError;\n\n var _sdp = _interopRequireDefault(require(\"sdp\"));\n\n var utils = _interopRequireWildcard(require(\"./utils\"));\n\n function _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n }\n\n function _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n }\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == _typeof2(Symbol.iterator) ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n }, _typeof(obj);\n }\n\n function shimRTCIceCandidate(window) {\n if (!window.RTCIceCandidate || window.RTCIceCandidate && \"foundation\" in window.RTCIceCandidate.prototype) {\n return;\n }\n\n var NativeRTCIceCandidate = window.RTCIceCandidate;\n\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n if (_typeof(args) === \"object\" && args.candidate && args.candidate.indexOf(\"a=\") === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substring(2);\n }\n\n if (args.candidate && args.candidate.length) {\n var nativeCandidate = new NativeRTCIceCandidate(args);\n\n var parsedCandidate = _sdp[\"default\"].parseCandidate(args.candidate);\n\n for (var key in parsedCandidate) {\n if (!(key in nativeCandidate)) {\n Object.defineProperty(nativeCandidate, key, {\n value: parsedCandidate[key]\n });\n }\n }\n\n nativeCandidate.toJSON = function toJSON() {\n return {\n candidate: nativeCandidate.candidate,\n sdpMid: nativeCandidate.sdpMid,\n sdpMLineIndex: nativeCandidate.sdpMLineIndex,\n usernameFragment: nativeCandidate.usernameFragment\n };\n };\n\n return nativeCandidate;\n }\n\n return new NativeRTCIceCandidate(args);\n };\n\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n utils.wrapPeerConnectionEvent(window, \"icecandidate\", function (e) {\n if (e.candidate) {\n Object.defineProperty(e, \"candidate\", {\n value: new window.RTCIceCandidate(e.candidate),\n writable: \"false\"\n });\n }\n\n return e;\n });\n }\n\n function shimRTCIceCandidateRelayProtocol(window) {\n if (!window.RTCIceCandidate || window.RTCIceCandidate && \"relayProtocol\" in window.RTCIceCandidate.prototype) {\n return;\n }\n\n utils.wrapPeerConnectionEvent(window, \"icecandidate\", function (e) {\n if (e.candidate) {\n var parsedCandidate = _sdp[\"default\"].parseCandidate(e.candidate.candidate);\n\n if (parsedCandidate.type === \"relay\") {\n e.candidate.relayProtocol = {\n 0: \"tls\",\n 1: \"tcp\",\n 2: \"udp\"\n }[parsedCandidate.priority >> 24];\n }\n }\n\n return e;\n });\n }\n\n 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: function get() {\n return typeof this._sctp === \"undefined\" ? null : this._sctp;\n }\n });\n }\n\n var sctpInDescription = function sctpInDescription(description) {\n if (!description || !description.sdp) {\n return false;\n }\n\n var sections = _sdp[\"default\"].splitSections(description.sdp);\n\n sections.shift();\n return sections.some(function (mediaSection) {\n var mLine = _sdp[\"default\"].parseMLine(mediaSection);\n\n return mLine && mLine.kind === \"application\" && mLine.protocol.indexOf(\"SCTP\") !== -1;\n });\n };\n\n var getRemoteFirefoxVersion = function getRemoteFirefoxVersion(description) {\n var match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n\n if (match === null || match.length < 2) {\n return -1;\n }\n\n var version = parseInt(match[1], 10);\n return version !== version ? -1 : version;\n };\n\n var getCanSendMaxMessageSize = function getCanSendMaxMessageSize(remoteIsFirefox) {\n var canSendMaxMessageSize = 65536;\n\n if (browserDetails.browser === \"firefox\") {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n canSendMaxMessageSize = 16384;\n } else {\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n canSendMaxMessageSize = browserDetails.version === 57 ? 65535 : 65536;\n } else {\n canSendMaxMessageSize = 2147483637;\n }\n }\n\n return canSendMaxMessageSize;\n };\n\n var getMaxMessageSize = function getMaxMessageSize(description, remoteIsFirefox) {\n var maxMessageSize = 65536;\n\n if (browserDetails.browser === \"firefox\" && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n var match = _sdp[\"default\"].matchPrefix(description.sdp, \"a=max-message-size:\");\n\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substring(19), 10);\n } else if (browserDetails.browser === \"firefox\" && remoteIsFirefox !== -1) {\n maxMessageSize = 2147483637;\n }\n\n return maxMessageSize;\n };\n\n var origSetRemoteDescription = window.RTCPeerConnection.prototype.setRemoteDescription;\n\n window.RTCPeerConnection.prototype.setRemoteDescription = function setRemoteDescription() {\n this._sctp = null;\n\n if (browserDetails.browser === \"chrome\" && browserDetails.version >= 76) {\n var _this$getConfiguratio = this.getConfiguration(),\n sdpSemantics = _this$getConfiguratio.sdpSemantics;\n\n if (sdpSemantics === \"plan-b\") {\n Object.defineProperty(this, \"sctp\", {\n get: function 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 var isFirefox = getRemoteFirefoxVersion(arguments[0]);\n var canSendMMS = getCanSendMaxMessageSize(isFirefox);\n var remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n var maxMessageSize;\n\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 var sctp = {};\n Object.defineProperty(sctp, \"maxMessageSize\", {\n get: function get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n }\n\n function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection && \"createDataChannel\" in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n function wrapDcSend(dc, pc) {\n var origDataChannelSend = dc.send;\n\n dc.send = function send() {\n var data = arguments[0];\n var length = data.length || data.size || data.byteLength;\n\n if (dc.readyState === \"open\" && pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError(\"Message too large (can send a maximum of \" + pc.sctp.maxMessageSize + \" bytes)\");\n }\n\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n\n var origCreateDataChannel = window.RTCPeerConnection.prototype.createDataChannel;\n\n window.RTCPeerConnection.prototype.createDataChannel = function createDataChannel() {\n var dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n\n utils.wrapPeerConnectionEvent(window, \"datachannel\", function (e) {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n }\n\n function shimConnectionState(window) {\n if (!window.RTCPeerConnection || \"connectionState\" in window.RTCPeerConnection.prototype) {\n return;\n }\n\n var proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, \"connectionState\", {\n get: function 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: function get() {\n return this._onconnectionstatechange || null;\n },\n set: function set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener(\"connectionstatechange\", this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n\n if (cb) {\n this.addEventListener(\"connectionstatechange\", this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n [\"setLocalDescription\", \"setRemoteDescription\"].forEach(function (method) {\n var origMethod = proto[method];\n\n proto[method] = function () {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = function (e) {\n var pc = e.target;\n\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n var newEvent = new Event(\"connectionstatechange\", e);\n pc.dispatchEvent(newEvent);\n }\n\n return e;\n };\n\n this.addEventListener(\"iceconnectionstatechange\", this._connectionstatechangepoly);\n }\n\n return origMethod.apply(this, arguments);\n };\n });\n }\n\n function removeExtmapAllowMixed(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (browserDetails.browser === \"chrome\" && browserDetails.version >= 71) {\n return;\n }\n\n if (browserDetails.browser === \"safari\" && browserDetails.version >= 605) {\n return;\n }\n\n var nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n\n window.RTCPeerConnection.prototype.setRemoteDescription = function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf(\"\\na=extmap-allow-mixed\") !== -1) {\n var sdp = desc.sdp.split(\"\\n\").filter(function (line) {\n return line.trim() !== \"a=extmap-allow-mixed\";\n }).join(\"\\n\");\n\n if (window.RTCSessionDescription && desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp: sdp\n });\n } else {\n desc.sdp = sdp;\n }\n }\n\n return nativeSRD.apply(this, arguments);\n };\n }\n\n function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n\n var nativeAddIceCandidate = window.RTCPeerConnection.prototype.addIceCandidate;\n\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n\n window.RTCPeerConnection.prototype.addIceCandidate = function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n\n return Promise.resolve();\n }\n\n if ((browserDetails.browser === \"chrome\" && browserDetails.version < 78 || browserDetails.browser === \"firefox\" && browserDetails.version < 68 || browserDetails.browser === \"safari\") && arguments[0] && arguments[0].candidate === \"\") {\n return Promise.resolve();\n }\n\n return nativeAddIceCandidate.apply(this, arguments);\n };\n }\n\n function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n\n var nativeSetLocalDescription = window.RTCPeerConnection.prototype.setLocalDescription;\n\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n\n window.RTCPeerConnection.prototype.setLocalDescription = function setLocalDescription() {\n var _this = this;\n\n var desc = arguments[0] || {};\n\n if (_typeof(desc) !== \"object\" || desc.type && desc.sdp) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n\n desc = {\n type: desc.type,\n sdp: desc.sdp\n };\n\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\n default:\n desc.type = \"answer\";\n break;\n }\n }\n\n if (desc.sdp || desc.type !== \"offer\" && desc.type !== \"answer\") {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n\n var func = desc.type === \"offer\" ? this.createOffer : this.createAnswer;\n return func.apply(this).then(function (d) {\n return nativeSetLocalDescription.apply(_this, [d]);\n });\n };\n }\n }, {\n \"./utils\": 11,\n sdp: 12\n }],\n 7: [function (require, module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.shimAddTransceiver = shimAddTransceiver;\n exports.shimCreateAnswer = shimCreateAnswer;\n exports.shimCreateOffer = shimCreateOffer;\n Object.defineProperty(exports, \"shimGetDisplayMedia\", {\n enumerable: true,\n get: function get() {\n return _getdisplaymedia.shimGetDisplayMedia;\n }\n });\n exports.shimGetParameters = shimGetParameters;\n Object.defineProperty(exports, \"shimGetUserMedia\", {\n enumerable: true,\n get: function get() {\n return _getusermedia.shimGetUserMedia;\n }\n });\n exports.shimOnTrack = shimOnTrack;\n exports.shimPeerConnection = shimPeerConnection;\n exports.shimRTCDataChannel = shimRTCDataChannel;\n exports.shimReceiverGetStats = shimReceiverGetStats;\n exports.shimRemoveStream = shimRemoveStream;\n exports.shimSenderGetStats = shimSenderGetStats;\n\n var utils = _interopRequireWildcard(require(\"../utils\"));\n\n var _getusermedia = require(\"./getusermedia\");\n\n var _getdisplaymedia = require(\"./getdisplaymedia\");\n\n function _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n }\n\n function _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n\n return _typeof(key) === \"symbol\" ? key : String(key);\n }\n\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (hint === \"string\" ? String : Number)(input);\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == _typeof2(Symbol.iterator) ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n }, _typeof(obj);\n }\n\n function shimOnTrack(window) {\n if (_typeof(window) === \"object\" && window.RTCTrackEvent && \"receiver\" in window.RTCTrackEvent.prototype && !(\"transceiver\" in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, \"transceiver\", {\n get: function get() {\n return {\n receiver: this.receiver\n };\n }\n });\n }\n }\n\n function shimPeerConnection(window, browserDetails) {\n if (_typeof(window) !== \"object\" || !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return;\n }\n\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"].forEach(function (method) {\n var nativeMethod = window.RTCPeerConnection.prototype[method];\n\n var methodObj = _defineProperty({}, method, function () {\n arguments[0] = new (method === \"addIceCandidate\" ? window.RTCIceCandidate : window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n });\n\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n var modernStatsTypes = {\n inboundrtp: \"inbound-rtp\",\n outboundrtp: \"outbound-rtp\",\n candidatepair: \"candidate-pair\",\n localcandidate: \"local-candidate\",\n remotecandidate: \"remote-candidate\"\n };\n var nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n var _arguments = Array.prototype.slice.call(arguments),\n selector = _arguments[0],\n onSucc = _arguments[1],\n onErr = _arguments[2];\n\n return nativeGetStats.apply(this, [selector || null]).then(function (stats) {\n if (browserDetails.version < 53 && !onSucc) {\n try {\n stats.forEach(function (stat) {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== \"TypeError\") {\n throw e;\n }\n\n stats.forEach(function (stat, i) {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n\n return stats;\n }).then(onSucc, onErr);\n };\n }\n\n function shimSenderGetStats(window) {\n if (!(_typeof(window) === \"object\" && window.RTCPeerConnection && window.RTCRtpSender)) {\n return;\n }\n\n if (window.RTCRtpSender && \"getStats\" in window.RTCRtpSender.prototype) {\n return;\n }\n\n var origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n var _this = this;\n\n var senders = origGetSenders.apply(this, []);\n senders.forEach(function (sender) {\n return sender._pc = _this;\n });\n return senders;\n };\n }\n\n var origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n var sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) : Promise.resolve(new Map());\n };\n }\n\n function shimReceiverGetStats(window) {\n if (!(_typeof(window) === \"object\" && window.RTCPeerConnection && window.RTCRtpSender)) {\n return;\n }\n\n if (window.RTCRtpSender && \"getStats\" in window.RTCRtpReceiver.prototype) {\n return;\n }\n\n var origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n var _this2 = this;\n\n var receivers = origGetReceivers.apply(this, []);\n receivers.forEach(function (receiver) {\n return receiver._pc = _this2;\n });\n return receivers;\n };\n }\n\n utils.wrapPeerConnectionEvent(window, \"track\", function (e) {\n e.receiver._pc = e.srcElement;\n return e;\n });\n\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n }\n\n function shimRemoveStream(window) {\n if (!window.RTCPeerConnection || \"removeStream\" in window.RTCPeerConnection.prototype) {\n return;\n }\n\n window.RTCPeerConnection.prototype.removeStream = function removeStream(stream) {\n var _this3 = this;\n\n utils.deprecated(\"removeStream\", \"removeTrack\");\n this.getSenders().forEach(function (sender) {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n _this3.removeTrack(sender);\n }\n });\n };\n }\n\n function shimRTCDataChannel(window) {\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n }\n\n function shimAddTransceiver(window) {\n if (!(_typeof(window) === \"object\" && window.RTCPeerConnection)) {\n return;\n }\n\n var origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver = function addTransceiver() {\n this.setParametersPromises = [];\n var sendEncodings = arguments[1] && arguments[1].sendEncodings;\n\n if (sendEncodings === undefined) {\n sendEncodings = [];\n }\n\n sendEncodings = _toConsumableArray(sendEncodings);\n var shouldPerformCheck = sendEncodings.length > 0;\n\n if (shouldPerformCheck) {\n sendEncodings.forEach(function (encodingParam) {\n if (\"rid\" in encodingParam) {\n var ridRegex = /^[a-z0-9]{0,16}$/i;\n\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError(\"Invalid RID value provided.\");\n }\n }\n\n if (\"scaleResolutionDownBy\" in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1)) {\n throw new RangeError(\"scale_resolution_down_by must be >= 1.0\");\n }\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\n var transceiver = origAddTransceiver.apply(this, arguments);\n\n if (shouldPerformCheck) {\n var sender = transceiver.sender;\n var params = sender.getParameters();\n\n if (!(\"encodings\" in params) || params.encodings.length === 1 && Object.keys(params.encodings[0]).length === 0) {\n params.encodings = sendEncodings;\n sender.sendEncodings = sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params).then(function () {\n delete sender.sendEncodings;\n })[\"catch\"](function () {\n delete sender.sendEncodings;\n }));\n }\n }\n\n return transceiver;\n };\n }\n }\n\n function shimGetParameters(window) {\n if (!(_typeof(window) === \"object\" && window.RTCRtpSender)) {\n return;\n }\n\n var origGetParameters = window.RTCRtpSender.prototype.getParameters;\n\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters = function getParameters() {\n var params = origGetParameters.apply(this, arguments);\n\n if (!(\"encodings\" in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n\n return params;\n };\n }\n }\n\n function shimCreateOffer(window) {\n if (!(_typeof(window) === \"object\" && window.RTCPeerConnection)) {\n return;\n }\n\n var origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n var _arguments2 = arguments,\n _this4 = this;\n\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises).then(function () {\n return origCreateOffer.apply(_this4, _arguments2);\n })[\"finally\"](function () {\n _this4.setParametersPromises = [];\n });\n }\n\n return origCreateOffer.apply(this, arguments);\n };\n }\n\n function shimCreateAnswer(window) {\n if (!(_typeof(window) === \"object\" && window.RTCPeerConnection)) {\n return;\n }\n\n var origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n var _arguments3 = arguments,\n _this5 = this;\n\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises).then(function () {\n return origCreateAnswer.apply(_this5, _arguments3);\n })[\"finally\"](function () {\n _this5.setParametersPromises = [];\n });\n }\n\n return origCreateAnswer.apply(this, arguments);\n };\n }\n }, {\n \"../utils\": 11,\n \"./getdisplaymedia\": 8,\n \"./getusermedia\": 9\n }],\n 8: [function (require, module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.shimGetDisplayMedia = shimGetDisplayMedia;\n\n function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices && \"getDisplayMedia\" in window.navigator.mediaDevices) {\n return;\n }\n\n if (!window.navigator.mediaDevices) {\n return;\n }\n\n window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n var err = new DOMException(\"getDisplayMedia without video \" + \"constraints is undefined\");\n err.name = \"NotFoundError\";\n err.code = 8;\n return Promise.reject(err);\n }\n\n if (constraints.video === true) {\n constraints.video = {\n mediaSource: preferredMediaSource\n };\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n }\n }, {}],\n 9: [function (require, module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.shimGetUserMedia = shimGetUserMedia;\n\n var utils = _interopRequireWildcard(require(\"../utils\"));\n\n function _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n }\n\n function _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == _typeof2(Symbol.iterator) ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n }, _typeof(obj);\n }\n\n function shimGetUserMedia(window, browserDetails) {\n var navigator = window && window.navigator;\n var MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function (constraints, onSuccess, onError) {\n utils.deprecated(\"navigator.getUserMedia\", \"navigator.mediaDevices.getUserMedia\");\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 && \"autoGainControl\" in navigator.mediaDevices.getSupportedConstraints())) {\n var remap = function remap(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n var nativeGetUserMedia = navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);\n\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\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n var nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n\n MediaStreamTrack.prototype.getSettings = function () {\n var 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 var nativeApplyConstraints = MediaStreamTrack.prototype.applyConstraints;\n\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\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n }\n }, {\n \"../utils\": 11\n }],\n 10: [function (require, module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.shimAudioContext = shimAudioContext;\n exports.shimCallbacksAPI = shimCallbacksAPI;\n exports.shimConstraints = shimConstraints;\n exports.shimCreateOfferLegacy = shimCreateOfferLegacy;\n exports.shimGetUserMedia = shimGetUserMedia;\n exports.shimLocalStreamsAPI = shimLocalStreamsAPI;\n exports.shimRTCIceServerUrls = shimRTCIceServerUrls;\n exports.shimRemoteStreamsAPI = shimRemoteStreamsAPI;\n exports.shimTrackEventTransceiver = shimTrackEventTransceiver;\n\n var utils = _interopRequireWildcard(require(\"../utils\"));\n\n function _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n }\n\n function _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == _typeof2(Symbol.iterator) ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n }, _typeof(obj);\n }\n\n function shimLocalStreamsAPI(window) {\n if (_typeof(window) !== \"object\" || !window.RTCPeerConnection) {\n return;\n }\n\n if (!(\"getLocalStreams\" in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams = function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n\n return this._localStreams;\n };\n }\n\n if (!(\"addStream\" in window.RTCPeerConnection.prototype)) {\n var _addTrack = window.RTCPeerConnection.prototype.addTrack;\n\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n var _this = this;\n\n if (!this._localStreams) {\n this._localStreams = [];\n }\n\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n\n stream.getAudioTracks().forEach(function (track) {\n return _addTrack.call(_this, track, stream);\n });\n stream.getVideoTracks().forEach(function (track) {\n return _addTrack.call(_this, track, stream);\n });\n };\n\n window.RTCPeerConnection.prototype.addTrack = function addTrack(track) {\n var _this2 = this;\n\n for (var _len = arguments.length, streams = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n streams[_key - 1] = arguments[_key];\n }\n\n if (streams) {\n streams.forEach(function (stream) {\n if (!_this2._localStreams) {\n _this2._localStreams = [stream];\n } else if (!_this2._localStreams.includes(stream)) {\n _this2._localStreams.push(stream);\n }\n });\n }\n\n return _addTrack.apply(this, arguments);\n };\n }\n\n if (!(\"removeStream\" in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream = function removeStream(stream) {\n var _this3 = this;\n\n if (!this._localStreams) {\n this._localStreams = [];\n }\n\n var index = this._localStreams.indexOf(stream);\n\n if (index === -1) {\n return;\n }\n\n this._localStreams.splice(index, 1);\n\n var tracks = stream.getTracks();\n this.getSenders().forEach(function (sender) {\n if (tracks.includes(sender.track)) {\n _this3.removeTrack(sender);\n }\n });\n };\n }\n }\n\n function shimRemoteStreamsAPI(window) {\n if (_typeof(window) !== \"object\" || !window.RTCPeerConnection) {\n return;\n }\n\n if (!(\"getRemoteStreams\" in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams = function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n\n if (!(\"onaddstream\" in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, \"onaddstream\", {\n get: function get() {\n return this._onaddstream;\n },\n set: function set(f) {\n var _this4 = this;\n\n if (this._onaddstream) {\n this.removeEventListener(\"addstream\", this._onaddstream);\n this.removeEventListener(\"track\", this._onaddstreampoly);\n }\n\n this.addEventListener(\"addstream\", this._onaddstream = f);\n this.addEventListener(\"track\", this._onaddstreampoly = function (e) {\n e.streams.forEach(function (stream) {\n if (!_this4._remoteStreams) {\n _this4._remoteStreams = [];\n }\n\n if (_this4._remoteStreams.includes(stream)) {\n return;\n }\n\n _this4._remoteStreams.push(stream);\n\n var event = new Event(\"addstream\");\n event.stream = stream;\n\n _this4.dispatchEvent(event);\n });\n });\n }\n });\n var origSetRemoteDescription = window.RTCPeerConnection.prototype.setRemoteDescription;\n\n window.RTCPeerConnection.prototype.setRemoteDescription = function setRemoteDescription() {\n var pc = this;\n\n if (!this._onaddstreampoly) {\n this.addEventListener(\"track\", this._onaddstreampoly = function (e) {\n e.streams.forEach(function (stream) {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n\n pc._remoteStreams.push(stream);\n\n var event = new Event(\"addstream\");\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n }\n\n function shimCallbacksAPI(window) {\n if (_typeof(window) !== \"object\" || !window.RTCPeerConnection) {\n return;\n }\n\n var prototype = window.RTCPeerConnection.prototype;\n var origCreateOffer = prototype.createOffer;\n var origCreateAnswer = prototype.createAnswer;\n var setLocalDescription = prototype.setLocalDescription;\n var setRemoteDescription = prototype.setRemoteDescription;\n var addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer = function createOffer(successCallback, failureCallback) {\n var options = arguments.length >= 2 ? arguments[2] : arguments[0];\n var promise = origCreateOffer.apply(this, [options]);\n\n if (!failureCallback) {\n return promise;\n }\n\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer = function createAnswer(successCallback, failureCallback) {\n var options = arguments.length >= 2 ? arguments[2] : arguments[0];\n var promise = origCreateAnswer.apply(this, [options]);\n\n if (!failureCallback) {\n return promise;\n }\n\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n var withCallback = function withCallback(description, successCallback, failureCallback) {\n var promise = setLocalDescription.apply(this, [description]);\n\n if (!failureCallback) {\n return promise;\n }\n\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.setLocalDescription = withCallback;\n\n withCallback = function withCallback(description, successCallback, failureCallback) {\n var promise = setRemoteDescription.apply(this, [description]);\n\n if (!failureCallback) {\n return promise;\n }\n\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function withCallback(candidate, successCallback, failureCallback) {\n var promise = addIceCandidate.apply(this, [candidate]);\n\n if (!failureCallback) {\n return promise;\n }\n\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.addIceCandidate = withCallback;\n }\n\n function shimGetUserMedia(window) {\n var navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n var mediaDevices = navigator.mediaDevices;\n\n var _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n\n navigator.mediaDevices.getUserMedia = function (constraints) {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints).then(cb, errcb);\n }.bind(navigator);\n }\n }\n\n function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({}, constraints, {\n video: utils.compactObject(constraints.video)\n });\n }\n\n return constraints;\n }\n\n function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n var OrigPeerConnection = window.RTCPeerConnection;\n\n window.RTCPeerConnection = function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n var newIceServers = [];\n\n for (var i = 0; i < pcConfig.iceServers.length; i++) {\n var server = pcConfig.iceServers[i];\n\n if (server.urls === undefined && server.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\n pcConfig.iceServers = newIceServers;\n }\n\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n\n if (\"generateCertificate\" in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, \"generateCertificate\", {\n get: function get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n }\n\n function shimTrackEventTransceiver(window) {\n if (_typeof(window) === \"object\" && window.RTCTrackEvent && \"receiver\" in window.RTCTrackEvent.prototype && !(\"transceiver\" in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, \"transceiver\", {\n get: function get() {\n return {\n receiver: this.receiver\n };\n }\n });\n }\n }\n\n function shimCreateOfferLegacy(window) {\n var origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n\n window.RTCPeerConnection.prototype.createOffer = function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== \"undefined\") {\n offerOptions.offerToReceiveAudio = !!offerOptions.offerToReceiveAudio;\n }\n\n var audioTransceiver = this.getTransceivers().find(function (transceiver) {\n return transceiver.receiver.track.kind === \"audio\";\n });\n\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 && !audioTransceiver) {\n this.addTransceiver(\"audio\", {\n direction: \"recvonly\"\n });\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== \"undefined\") {\n offerOptions.offerToReceiveVideo = !!offerOptions.offerToReceiveVideo;\n }\n\n var videoTransceiver = this.getTransceivers().find(function (transceiver) {\n return transceiver.receiver.track.kind === \"video\";\n });\n\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 && !videoTransceiver) {\n this.addTransceiver(\"video\", {\n direction: \"recvonly\"\n });\n }\n }\n\n return origCreateOffer.apply(this, arguments);\n };\n }\n\n function shimAudioContext(window) {\n if (_typeof(window) !== \"object\" || window.AudioContext) {\n return;\n }\n\n window.AudioContext = window.webkitAudioContext;\n }\n }, {\n \"../utils\": 11\n }],\n 11: [function (require, module, exports) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.compactObject = compactObject;\n exports.deprecated = deprecated;\n exports.detectBrowser = detectBrowser;\n exports.disableLog = disableLog;\n exports.disableWarnings = disableWarnings;\n exports.extractVersion = extractVersion;\n exports.filterStats = filterStats;\n exports.log = log;\n exports.walkStats = walkStats;\n exports.wrapPeerConnectionEvent = wrapPeerConnectionEvent;\n\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n\n return _typeof(key) === \"symbol\" ? key : String(key);\n }\n\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n\n return (hint === \"string\" ? String : Number)(input);\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == _typeof2(Symbol.iterator) ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n }, _typeof(obj);\n }\n\n var logDisabled_ = true;\n var deprecationWarnings_ = true;\n\n function extractVersion(uastring, expr, pos) {\n var match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n }\n\n function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n var proto = window.RTCPeerConnection.prototype;\n var nativeAddEventListener = proto.addEventListener;\n\n proto.addEventListener = function (nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n\n var wrappedCallback = function wrappedCallback(e) {\n var modifiedEvent = wrapper(e);\n\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n\n this._eventMap = this._eventMap || {};\n\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n\n return nativeAddEventListener.apply(this, [nativeEventName, wrappedCallback]);\n };\n\n var nativeRemoveEventListener = proto.removeEventListener;\n\n proto.removeEventListener = function (nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n\n var unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n\n this._eventMap[eventNameToWrap][\"delete\"](cb);\n\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n\n return nativeRemoveEventListener.apply(this, [nativeEventName, unwrappedCb]);\n };\n\n Object.defineProperty(proto, \"on\" + eventNameToWrap, {\n get: function get() {\n return this[\"_on\" + eventNameToWrap];\n },\n set: function set(cb) {\n if (this[\"_on\" + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap, this[\"_on\" + eventNameToWrap]);\n delete this[\"_on\" + eventNameToWrap];\n }\n\n if (cb) {\n this.addEventListener(eventNameToWrap, this[\"_on\" + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n }\n\n function disableLog(bool) {\n if (typeof bool !== \"boolean\") {\n return new Error(\"Argument type: \" + _typeof(bool) + \". Please use a boolean.\");\n }\n\n logDisabled_ = bool;\n return bool ? \"adapter.js logging disabled\" : \"adapter.js logging enabled\";\n }\n\n function disableWarnings(bool) {\n if (typeof bool !== \"boolean\") {\n return new Error(\"Argument type: \" + _typeof(bool) + \". Please use a boolean.\");\n }\n\n deprecationWarnings_ = !bool;\n return \"adapter.js deprecation warnings \" + (bool ? \"disabled\" : \"enabled\");\n }\n\n function log() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") {\n if (logDisabled_) {\n return;\n }\n\n if (typeof console !== \"undefined\" && typeof console.log === \"function\") {\n console.log.apply(console, arguments);\n }\n }\n }\n\n function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n\n console.warn(oldMethod + \" is deprecated, please use \" + newMethod + \" instead.\");\n }\n\n function detectBrowser(window) {\n var result = {\n browser: null,\n version: null\n };\n\n if (typeof window === \"undefined\" || !window.navigator || !window.navigator.userAgent) {\n result.browser = \"Not a browser.\";\n return result;\n }\n\n var navigator = window.navigator;\n\n if (navigator.mozGetUserMedia) {\n result.browser = \"firefox\";\n result.version = extractVersion(navigator.userAgent, /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia || window.isSecureContext === false && window.webkitRTCPeerConnection) {\n result.browser = \"chrome\";\n result.version = extractVersion(navigator.userAgent, /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection && navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) {\n result.browser = \"safari\";\n result.version = extractVersion(navigator.userAgent, /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver && \"currentDirection\" in window.RTCRtpTransceiver.prototype;\n } else {\n result.browser = \"Not a supported browser.\";\n return result;\n }\n\n return result;\n }\n\n function isObject(val) {\n return Object.prototype.toString.call(val) === \"[object Object]\";\n }\n\n function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function (accumulator, key) {\n var isObj = isObject(data[key]);\n var value = isObj ? compactObject(data[key]) : data[key];\n var isEmptyObject = isObj && !Object.keys(value).length;\n\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n\n return Object.assign(accumulator, _defineProperty({}, key, value));\n }, {});\n }\n\n function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n\n resultSet.set(base.id, base);\n Object.keys(base).forEach(function (name) {\n if (name.endsWith(\"Id\")) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith(\"Ids\")) {\n base[name].forEach(function (id) {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n }\n\n function filterStats(result, track, outbound) {\n var streamStatsType = outbound ? \"outbound-rtp\" : \"inbound-rtp\";\n var filteredResult = new Map();\n\n if (track === null) {\n return filteredResult;\n }\n\n var trackStats = [];\n result.forEach(function (value) {\n if (value.type === \"track\" && value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(function (trackStat) {\n result.forEach(function (stats) {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n }\n }, {}],\n 12: [function (require, module, exports) {\n \"use strict\";\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var SDPUtils = {};\n\n SDPUtils.generateIdentifier = function () {\n return Math.random().toString(36).substring(2, 12);\n };\n\n SDPUtils.localCName = SDPUtils.generateIdentifier();\n\n SDPUtils.splitLines = function (blob) {\n return blob.trim().split(\"\\n\").map(function (line) {\n return line.trim();\n });\n };\n\n SDPUtils.splitSections = function (blob) {\n var parts = blob.split(\"\\nm=\");\n return parts.map(function (part, index) {\n return (index > 0 ? \"m=\" + part : part).trim() + \"\\r\\n\";\n });\n };\n\n SDPUtils.getDescription = function (blob) {\n var sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n };\n\n SDPUtils.getMediaSections = function (blob) {\n var sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n };\n\n SDPUtils.matchPrefix = function (blob, prefix) {\n return SDPUtils.splitLines(blob).filter(function (line) {\n return line.indexOf(prefix) === 0;\n });\n };\n\n SDPUtils.parseCandidate = function (line) {\n var parts = void 0;\n\n if (line.indexOf(\"a=candidate:\") === 0) {\n parts = line.substring(12).split(\" \");\n } else {\n parts = line.substring(10).split(\" \");\n }\n\n var candidate = {\n foundation: parts[0],\n component: {\n 1: \"rtp\",\n 2: \"rtcp\"\n }[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4],\n port: parseInt(parts[5], 10),\n type: parts[7]\n };\n\n for (var i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case \"raddr\":\n candidate.relatedAddress = parts[i + 1];\n break;\n\n case \"rport\":\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n\n case \"tcptype\":\n candidate.tcpType = parts[i + 1];\n break;\n\n case \"ufrag\":\n candidate.ufrag = parts[i + 1];\n candidate.usernameFragment = parts[i + 1];\n break;\n\n default:\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n\n break;\n }\n }\n\n return candidate;\n };\n\n SDPUtils.writeCandidate = function (candidate) {\n var sdp = [];\n sdp.push(candidate.foundation);\n var component = candidate.component;\n\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\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n var type = candidate.type;\n sdp.push(\"typ\");\n sdp.push(type);\n\n if (type !== \"host\" && candidate.relatedAddress && candidate.relatedPort) {\n sdp.push(\"raddr\");\n sdp.push(candidate.relatedAddress);\n sdp.push(\"rport\");\n sdp.push(candidate.relatedPort);\n }\n\n if (candidate.tcpType && candidate.protocol.toLowerCase() === \"tcp\") {\n sdp.push(\"tcptype\");\n sdp.push(candidate.tcpType);\n }\n\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push(\"ufrag\");\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n\n return \"candidate:\" + sdp.join(\" \");\n };\n\n SDPUtils.parseIceOptions = function (line) {\n return line.substring(14).split(\" \");\n };\n\n SDPUtils.parseRtpMap = function (line) {\n var parts = line.substring(9).split(\" \");\n var parsed = {\n payloadType: parseInt(parts.shift(), 10)\n };\n parts = parts[0].split(\"/\");\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10);\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n parsed.numChannels = parsed.channels;\n return parsed;\n };\n\n SDPUtils.writeRtpMap = function (codec) {\n var pt = codec.payloadType;\n\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n\n var channels = codec.channels || codec.numChannels || 1;\n return \"a=rtpmap:\" + pt + \" \" + codec.name + \"/\" + codec.clockRate + (channels !== 1 ? \"/\" + channels : \"\") + \"\\r\\n\";\n };\n\n SDPUtils.parseExtmap = function (line) {\n var parts = line.substring(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 attributes: parts.slice(2).join(\" \")\n };\n };\n\n SDPUtils.writeExtmap = function (headerExtension) {\n return \"a=extmap:\" + (headerExtension.id || headerExtension.preferredId) + (headerExtension.direction && headerExtension.direction !== \"sendrecv\" ? \"/\" + headerExtension.direction : \"\") + \" \" + headerExtension.uri + (headerExtension.attributes ? \" \" + headerExtension.attributes : \"\") + \"\\r\\n\";\n };\n\n SDPUtils.parseFmtp = function (line) {\n var parsed = {};\n var kv = void 0;\n var parts = line.substring(line.indexOf(\" \") + 1).split(\";\");\n\n for (var j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split(\"=\");\n parsed[kv[0].trim()] = kv[1];\n }\n\n return parsed;\n };\n\n SDPUtils.writeFmtp = function (codec) {\n var line = \"\";\n var pt = codec.payloadType;\n\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n\n if (codec.parameters && Object.keys(codec.parameters).length) {\n var params = [];\n Object.keys(codec.parameters).forEach(function (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\n return line;\n };\n\n SDPUtils.parseRtcpFb = function (line) {\n var parts = line.substring(line.indexOf(\" \") + 1).split(\" \");\n return {\n type: parts.shift(),\n parameter: parts.join(\" \")\n };\n };\n\n SDPUtils.writeRtcpFb = function (codec) {\n var lines = \"\";\n var pt = codec.payloadType;\n\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n codec.rtcpFeedback.forEach(function (fb) {\n lines += \"a=rtcp-fb:\" + pt + \" \" + fb.type + (fb.parameter && fb.parameter.length ? \" \" + fb.parameter : \"\") + \"\\r\\n\";\n });\n }\n\n return lines;\n };\n\n SDPUtils.parseSsrcMedia = function (line) {\n var sp = line.indexOf(\" \");\n var parts = {\n ssrc: parseInt(line.substring(7, sp), 10)\n };\n var colon = line.indexOf(\":\", sp);\n\n if (colon > -1) {\n parts.attribute = line.substring(sp + 1, colon);\n parts.value = line.substring(colon + 1);\n } else {\n parts.attribute = line.substring(sp + 1);\n }\n\n return parts;\n };\n\n SDPUtils.parseSsrcGroup = function (line) {\n var parts = line.substring(13).split(\" \");\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(function (ssrc) {\n return parseInt(ssrc, 10);\n })\n };\n };\n\n SDPUtils.getMid = function (mediaSection) {\n var mid = SDPUtils.matchPrefix(mediaSection, \"a=mid:\")[0];\n\n if (mid) {\n return mid.substring(6);\n }\n };\n\n SDPUtils.parseFingerprint = function (line) {\n var parts = line.substring(14).split(\" \");\n return {\n algorithm: parts[0].toLowerCase(),\n value: parts[1].toUpperCase()\n };\n };\n\n SDPUtils.getDtlsParameters = function (mediaSection, sessionpart) {\n var lines = SDPUtils.matchPrefix(mediaSection + sessionpart, \"a=fingerprint:\");\n return {\n role: \"auto\",\n fingerprints: lines.map(SDPUtils.parseFingerprint)\n };\n };\n\n SDPUtils.writeDtlsParameters = function (params, setupType) {\n var sdp = \"a=setup:\" + setupType + \"\\r\\n\";\n params.fingerprints.forEach(function (fp) {\n sdp += \"a=fingerprint:\" + fp.algorithm + \" \" + fp.value + \"\\r\\n\";\n });\n return sdp;\n };\n\n SDPUtils.parseCryptoLine = function (line) {\n var parts = line.substring(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\n SDPUtils.writeCryptoLine = function (parameters) {\n return \"a=crypto:\" + parameters.tag + \" \" + parameters.cryptoSuite + \" \" + (_typeof(parameters.keyParams) === \"object\" ? SDPUtils.writeCryptoKeyParams(parameters.keyParams) : parameters.keyParams) + (parameters.sessionParams ? \" \" + parameters.sessionParams.join(\" \") : \"\") + \"\\r\\n\";\n };\n\n SDPUtils.parseCryptoKeyParams = function (keyParams) {\n if (keyParams.indexOf(\"inline:\") !== 0) {\n return null;\n }\n\n var parts = keyParams.substring(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\n SDPUtils.writeCryptoKeyParams = function (keyParams) {\n return keyParams.keyMethod + \":\" + keyParams.keySalt + (keyParams.lifeTime ? \"|\" + keyParams.lifeTime : \"\") + (keyParams.mkiValue && keyParams.mkiLength ? \"|\" + keyParams.mkiValue + \":\" + keyParams.mkiLength : \"\");\n };\n\n SDPUtils.getCryptoParameters = function (mediaSection, sessionpart) {\n var lines = SDPUtils.matchPrefix(mediaSection + sessionpart, \"a=crypto:\");\n return lines.map(SDPUtils.parseCryptoLine);\n };\n\n SDPUtils.getIceParameters = function (mediaSection, sessionpart) {\n var ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart, \"a=ice-ufrag:\")[0];\n var pwd = SDPUtils.matchPrefix(mediaSection + sessionpart, \"a=ice-pwd:\")[0];\n\n if (!(ufrag && pwd)) {\n return null;\n }\n\n return {\n usernameFragment: ufrag.substring(12),\n password: pwd.substring(10)\n };\n };\n\n SDPUtils.writeIceParameters = function (params) {\n var sdp = \"a=ice-ufrag:\" + params.usernameFragment + \"\\r\\n\" + \"a=ice-pwd:\" + params.password + \"\\r\\n\";\n\n if (params.iceLite) {\n sdp += \"a=ice-lite\\r\\n\";\n }\n\n return sdp;\n };\n\n SDPUtils.parseRtpParameters = function (mediaSection) {\n var description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: []\n };\n var lines = SDPUtils.splitLines(mediaSection);\n var mline = lines[0].split(\" \");\n description.profile = mline[2];\n\n for (var i = 3; i < mline.length; i++) {\n var pt = mline[i];\n var rtpmapline = SDPUtils.matchPrefix(mediaSection, \"a=rtpmap:\" + pt + \" \")[0];\n\n if (rtpmapline) {\n var codec = SDPUtils.parseRtpMap(rtpmapline);\n var fmtps = SDPUtils.matchPrefix(mediaSection, \"a=fmtp:\" + pt + \" \");\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(mediaSection, \"a=rtcp-fb:\" + pt + \" \").map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n\n switch (codec.name.toUpperCase()) {\n case \"RED\":\n case \"ULPFEC\":\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n\n default:\n break;\n }\n }\n }\n\n SDPUtils.matchPrefix(mediaSection, \"a=extmap:\").forEach(function (line) {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n var wildcardRtcpFb = SDPUtils.matchPrefix(mediaSection, \"a=rtcp-fb:* \").map(SDPUtils.parseRtcpFb);\n description.codecs.forEach(function (codec) {\n wildcardRtcpFb.forEach(function (fb) {\n var duplicate = codec.rtcpFeedback.find(function (existingFeedback) {\n return existingFeedback.type === fb.type && existingFeedback.parameter === fb.parameter;\n });\n\n if (!duplicate) {\n codec.rtcpFeedback.push(fb);\n }\n });\n });\n return description;\n };\n\n SDPUtils.writeRtpDescription = function (kind, caps) {\n var sdp = \"\";\n sdp += \"m=\" + kind + \" \";\n sdp += caps.codecs.length > 0 ? \"9\" : \"0\";\n sdp += \" \" + (caps.profile || \"UDP/TLS/RTP/SAVPF\") + \" \";\n sdp += caps.codecs.map(function (codec) {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n\n return codec.payloadType;\n }).join(\" \") + \"\\r\\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 caps.codecs.forEach(function (codec) {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n var maxptime = 0;\n caps.codecs.forEach(function (codec) {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n\n if (maxptime > 0) {\n sdp += \"a=maxptime:\" + maxptime + \"\\r\\n\";\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(function (extension) {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n\n return sdp;\n };\n\n SDPUtils.parseRtpEncodingParameters = function (mediaSection) {\n var encodingParameters = [];\n var description = SDPUtils.parseRtpParameters(mediaSection);\n var hasRed = description.fecMechanisms.indexOf(\"RED\") !== -1;\n var hasUlpfec = description.fecMechanisms.indexOf(\"ULPFEC\") !== -1;\n var ssrcs = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\").map(function (line) {\n return SDPUtils.parseSsrcMedia(line);\n }).filter(function (parts) {\n return parts.attribute === \"cname\";\n });\n var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n var secondarySsrc = void 0;\n var flows = SDPUtils.matchPrefix(mediaSection, \"a=ssrc-group:FID\").map(function (line) {\n var parts = line.substring(17).split(\" \");\n return parts.map(function (part) {\n return parseInt(part, 10);\n });\n });\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(function (codec) {\n if (codec.name.toUpperCase() === \"RTX\" && codec.parameters.apt) {\n var encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10)\n };\n\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {\n ssrc: secondarySsrc\n };\n }\n\n encodingParameters.push(encParam);\n\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\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc\n });\n }\n\n var bandwidth = SDPUtils.matchPrefix(mediaSection, \"b=\");\n\n if (bandwidth.length) {\n if (bandwidth[0].indexOf(\"b=TIAS:\") === 0) {\n bandwidth = parseInt(bandwidth[0].substring(7), 10);\n } else if (bandwidth[0].indexOf(\"b=AS:\") === 0) {\n bandwidth = parseInt(bandwidth[0].substring(5), 10) * 1e3 * .95 - 50 * 40 * 8;\n } else {\n bandwidth = undefined;\n }\n\n encodingParameters.forEach(function (params) {\n params.maxBitrate = bandwidth;\n });\n }\n\n return encodingParameters;\n };\n\n SDPUtils.parseRtcpParameters = function (mediaSection) {\n var rtcpParameters = {};\n var remoteSsrc = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\").map(function (line) {\n return SDPUtils.parseSsrcMedia(line);\n }).filter(function (obj) {\n return obj.attribute === \"cname\";\n })[0];\n\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n var rsize = SDPUtils.matchPrefix(mediaSection, \"a=rtcp-rsize\");\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n var mux = SDPUtils.matchPrefix(mediaSection, \"a=rtcp-mux\");\n rtcpParameters.mux = mux.length > 0;\n return rtcpParameters;\n };\n\n SDPUtils.writeRtcpParameters = function (rtcpParameters) {\n var sdp = \"\";\n\n if (rtcpParameters.reducedSize) {\n sdp += \"a=rtcp-rsize\\r\\n\";\n }\n\n if (rtcpParameters.mux) {\n sdp += \"a=rtcp-mux\\r\\n\";\n }\n\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += \"a=ssrc:\" + rtcpParameters.ssrc + \" cname:\" + rtcpParameters.cname + \"\\r\\n\";\n }\n\n return sdp;\n };\n\n SDPUtils.parseMsid = function (mediaSection) {\n var parts = void 0;\n var spec = SDPUtils.matchPrefix(mediaSection, \"a=msid:\");\n\n if (spec.length === 1) {\n parts = spec[0].substring(7).split(\" \");\n return {\n stream: parts[0],\n track: parts[1]\n };\n }\n\n var planB = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\").map(function (line) {\n return SDPUtils.parseSsrcMedia(line);\n }).filter(function (msidParts) {\n return msidParts.attribute === \"msid\";\n });\n\n if (planB.length > 0) {\n parts = planB[0].value.split(\" \");\n return {\n stream: parts[0],\n track: parts[1]\n };\n }\n };\n\n SDPUtils.parseSctpDescription = function (mediaSection) {\n var mline = SDPUtils.parseMLine(mediaSection);\n var maxSizeLine = SDPUtils.matchPrefix(mediaSection, \"a=max-message-size:\");\n var maxMessageSize = void 0;\n\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substring(19), 10);\n }\n\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n\n var sctpPort = SDPUtils.matchPrefix(mediaSection, \"a=sctp-port:\");\n\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substring(12), 10),\n protocol: mline.fmt,\n maxMessageSize: maxMessageSize\n };\n }\n\n var sctpMapLines = SDPUtils.matchPrefix(mediaSection, \"a=sctpmap:\");\n\n if (sctpMapLines.length > 0) {\n var parts = sctpMapLines[0].substring(10).split(\" \");\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize: maxMessageSize\n };\n }\n };\n\n SDPUtils.writeSctpDescription = function (media, sctp) {\n var output = [];\n\n if (media.protocol !== \"DTLS/SCTP\") {\n output = [\"m=\" + media.kind + \" 9 \" + media.protocol + \" \" + sctp.protocol + \"\\r\\n\", \"c=IN IP4 0.0.0.0\\r\\n\", \"a=sctp-port:\" + sctp.port + \"\\r\\n\"];\n } else {\n output = [\"m=\" + media.kind + \" 9 \" + media.protocol + \" \" + sctp.port + \"\\r\\n\", \"c=IN IP4 0.0.0.0\\r\\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\n return output.join(\"\");\n };\n\n SDPUtils.generateSessionId = function () {\n return Math.random().toString().substr(2, 22);\n };\n\n SDPUtils.writeSessionBoilerplate = function (sessId, sessVer, sessUser) {\n var sessionId = void 0;\n var version = sessVer !== undefined ? sessVer : 2;\n\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n\n var user = sessUser || \"thisisadapterortc\";\n return \"v=0\\r\\n\" + \"o=\" + user + \" \" + sessionId + \" \" + version + \" IN IP4 127.0.0.1\\r\\n\" + \"s=-\\r\\n\" + \"t=0 0\\r\\n\";\n };\n\n SDPUtils.getDirection = function (mediaSection, sessionpart) {\n var lines = SDPUtils.splitLines(mediaSection);\n\n for (var 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].substring(2);\n\n default:\n }\n }\n\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n\n return \"sendrecv\";\n };\n\n SDPUtils.getKind = function (mediaSection) {\n var lines = SDPUtils.splitLines(mediaSection);\n var mline = lines[0].split(\" \");\n return mline[0].substring(2);\n };\n\n SDPUtils.isRejected = function (mediaSection) {\n return mediaSection.split(\" \", 2)[1] === \"0\";\n };\n\n SDPUtils.parseMLine = function (mediaSection) {\n var lines = SDPUtils.splitLines(mediaSection);\n var parts = lines[0].substring(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\n SDPUtils.parseOLine = function (mediaSection) {\n var line = SDPUtils.matchPrefix(mediaSection, \"o=\")[0];\n var parts = line.substring(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 SDPUtils.isValidSDP = function (blob) {\n if (typeof blob !== \"string\" || blob.length === 0) {\n return false;\n }\n\n var lines = SDPUtils.splitLines(blob);\n\n for (var i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== \"=\") {\n return false;\n }\n }\n\n return true;\n };\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\") {\n module.exports = SDPUtils;\n }\n }, {}]\n }, {}, [1])(1);\n});",{"version":3,"sources":["D:\\dm\\HHHT-fbky\\hhht_fbky\\src\\assets\\js\\tr_webrtc.min.js"],"names":["TRjQuery","global","factory","module","exports","document","w","Error","window","noGlobal","arr","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","support","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","call","get","num","pushStack","elems","ret","merge","prevObject","each","callback","args","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","parseFloat","nodeType","isEmptyObject","globalEval","code","script","indirect","eval","trim","createElement","text","head","appendChild","parentNode","removeChild","camelCase","string","nodeName","toLowerCase","value","isArraylike","makeArray","results","Object","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","MAX_NEGATIVE","pop","push_native","list","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","e","els","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","div","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","dir","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","div1","defaultValue","unique","isXMLDoc","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","is","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","until","truncate","sibling","n","targets","l","closest","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","reverse","rnotwhite","optionsCache","createOptions","object","flag","Callbacks","memory","fired","firing","firingStart","firingLength","firingIndex","stack","once","fire","data","stopOnFalse","disable","remove","lock","locked","fireWith","Deferred","func","tuples","state","promise","always","deferred","fail","then","fns","newDefer","tuple","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","resolveWith","progressContexts","resolveContexts","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","completed","removeEventListener","readyState","setTimeout","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","defineProperty","uid","accepts","descriptor","unlock","defineProperties","set","prop","stored","camel","hasData","discard","data_priv","data_user","rbrace","rmultiDash","dataAttr","parseJSON","removeData","_data","_removeData","camelKey","queue","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","cssExpand","isHidden","el","css","rcheckableType","fragment","createDocumentFragment","checkClone","cloneNode","noCloneChecked","strundefined","focusinBubbles","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","event","types","handleObjIn","eventHandle","events","t","handleObj","special","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","bubbleType","ontype","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","props","fixHooks","keyHooks","original","which","charCode","keyCode","mouseHooks","eventDoc","body","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","originalEvent","fixHook","load","blur","click","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","relatedTarget","attaches","on","one","origFn","rxhtmlTag","rtagName","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","getAll","fixInput","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","buildFragment","scripts","selection","wrap","nodes","createTextNode","cleanData","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","detach","hasScripts","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","actualDisplay","style","display","getDefaultComputedStyle","defaultDisplay","write","close","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","pixelPositionVal","boxSizingReliableVal","container","backgroundClip","clearCloneStyle","cssText","computePixelPositionAndBoxSizingReliable","divStyle","pixelPosition","boxSizingReliable","reliableMarginRight","marginDiv","marginRight","swap","rdisplayswap","rnumsplit","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","showHide","show","hidden","cssHooks","opacity","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","Tween","easing","unit","propHooks","run","percent","eased","duration","step","tween","fx","linear","p","swing","cos","PI","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","createTween","scale","maxIterations","createFxNow","genFx","includeWidth","height","animation","collection","opts","oldfire","checkDisplay","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","Animation","properties","stopped","tick","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","rejectWith","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","optDisabled","radioValue","nodeHook","boolHook","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","rfocusable","removeProp","for","class","notxml","hasAttribute","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","JSON","parse","parseXML","DOMParser","parseFromString","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","ajaxLocation","ajaxLocParts","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","processData","async","contentType","json","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","status","abort","statusText","finalText","success","method","crossDomain","param","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","unwrap","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","xhrId","xhrCallbacks","xhrSuccessStatus","xhrSupported","cors","open","username","xhrFields","onload","onerror","responseText","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","left","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","noConflict","_TRjQuery","$","findLine","sdpLines","substr","findLineInRange","startLine","endLine","realEndLine","getCodecPayloadType","sdpLine","setDefaultCodec","mLine","payload","newLine","FSRTC","useVideo","useStereo","userData","localVideo","screenShare","useCamera","iceServers","videoParams","audioParams","callbacks","onICEComplete","onICE","onOfferSDP","audioEnabled","videoEnabled","mediaData","SDP","profile","candidateList","constraints","offerToReceiveAudio","useSpeak","offerToReceiveVideo","setCompat","checkCompat","validRes","local","stereoHack","sdp","opusIndex","opusPayload","fmtpLineIndex","candidateHack","browserIP","forEach","line","onStreamError","console","log","doCallback","onStreamSuccess","stream","candidate","onChannelError","onICESDP","onAnswerSDP","answer","onMessage","FSRTCattachMediaStream","element","srcObject","onRemoteStream","iOS","navigator","platform","useAudio","remoteStream","onSuccess","onError","peer","addAnswerSDP","stopPeer","localStream","tracks","getTracks","track","localVideoStream","getMute","setMute","audioTracks","getAudioTracks","getVideoMute","setVideoMute","videoTracks","getVideoTracks","createAnswer","remoteSDP","debug","FSRTCPeerConnection","attachStream","offerSDP","turnServer","mediaParams","getMediaParams","audio","video","getUserMedia","deviceId","onsuccess","useMic","exact","bestFrameRate","vertoBestFrameRate","minFrameRate","mozGetUserMedia","dowin","confirm","min","minHeight","maxHeight","mediaSource","sourceId","maxFrameRate","mandatory","optional","frameRate","ideal","screen","offerToSendAudio","getScreenShare","screenShareEnabled","setScreenShare","videoSender","alert","videoTrack00","parameters","getParameters","encodings","maxBitrate","scaleResolutionDownBy","setParameters","mediaDevices","getDisplayMedia","screenStream","videoElement","replaceTrack","catch","gathering","config","default_ice","urls","bundlePolicy","RTCPeerConnection","openOffererChannel","x","ice_handler","localDescription","onicecandidate","addStream","attachStreams","streams","onaddstream","remoteMediaStream","oninactive","onRemoteStreamEnded","createOffer","sessionDescription","serializeSdp","setLocalDescription","onSdpError","setRemoteDescription","RTCSessionDescription","onSdpSuccess","onChannelMessage","setBandwidth","getInteropSDP","chars","extractedChars","getChars","parseInt","inline","channel","_openOffererChannel","createDataChannel","reliable","setChannelEvents","onmessage","onopen","onChannelOpened","onclose","onChannelClosed","warn","openAnswererChannel","ondatachannel","binaryType","useless","cbSuccess","cbError","addICE","addIceCandidate","RTCIceCandidate","sdpMLineIndex","sendData","message","video_constraints","media","getMedia","streaming","resSupported","h","bestResSupported","resList","resI","ttl","checkRes","cam","res","localStorage","setItem","stringify","info","getValidRes","used","getItem","checkPerms","runtime","check_audio","check_video","JsonRpcClient","ajaxUrl","socketUrl","login","passwd","sessid","loginParams","userVariables","getSocket","onmessage_cb","_getSocket","ws_cnt","wsOnMessage","_wsOnMessage","_ws_socket","_ws_callbacks","_current_id","speedTest","bytes","cb","socket","speedCB","speedBytes","loops","rem","success_cb","error_cb","request","jsonrpc","_wsCall","textStatus","errorThrown","batch","all_done_cb","_batchObject","_execute","socketReady","closeSocket","loginData","connectSocket","authing","WebSocket","ws_sleep","onWSClose","wsFallbackURL","onWSConnect","req","q","stopRetrying","request_json","request_obj","up_dur","substring","down_dur","up_kps","toFixed","down_kps","upDur","downDur","upKPS","downKPS","orig_req","onWSLogin","eventData","reply","jsonrpcclient","_requests","batch_request","_batchCb","sources","generateGUID","crypto","getRandomValues","buf","Uint16Array","S4","c","r","verto","saved","localTag","deviceParams","onResCheck","ringSleep","dialogs","eventSUBS","rpcClient","handleMessage","o","purge","ringFile","ringTag","ringer","logout","sendMethod","processReply","unauthorizedChannels","drop_bad","subscribedChannels","mark_ready","do_sub","readyHandler","SERNO","do_subscribe","subChannels","sparams","eventChannel","serno","isnew","subscribe","subParams","unsubscribe","unsubChannels","sendChannels","repl","u","broadcast","callID","setState","enum","hangup","dialog","newCall","direction","outbound","invite","rtc","handleAnswer","handleMedia","handleDisplay","handleInfo","attach","inbound","recovering","wantVideo","pvtEvent","sendMessage","sub","onEvent","from","clientReady","del_array","array","hashArray","vha","reorder","clear","insertAt","redraw","del","arrayLen","asArray","dump","str","liveArray","la","lastSerno","binding","user_obj","userObj","_add","_del","_reorder","_clear","errs","onChange","action","checkSerno","onErr","bootstrap","bootObj","modify","ok","eventHandler","packet","wireSerno","hashKey","arrIndex","destroy","sendCommand","cmd","command","changepage","heartbeat","hb_pid","liveTable","jq","dt","dataTable","fnDestroy","genRow","oldStatus","genArray","iserr","aoColumns","sTitle","fnClearTable","fnAddData","fnAdjustColumnSizing","fnUpdate","fnDeleteRow","lastState","new","answered","verto_h_conf_web","verto_h_conf_web_area","verto_h_video_web","verto_h_video_web_area","audioStream","videoStream","RTCcallbacks","display_direction","remote_caller_id_name","caller_id_name","remote_caller_id_number","caller_id_number","callee_id_name","callee_id_number","destination_number","requesting","answering","reload","onStream","permissionCallback","onGranted","onDenied","cause","ring","dialogParams","noDialogParams","checkStateChange","oldS","newS","states","find_name","audioOutDevices","label","setAudioPlaybackDevice","sinkId","devname","setSinkId","errorMessage","ringing","stopRinging","onDialogState","early","speaker","trying","holdState","held","causeCode","indicateRing","verto_h_autoanswer","play","dtmf","digits","rtt","pobj","txt","transfer","destination","replaceCallID","unhold","toggleHold","gotAnswer","gotEarly","cidString","enc","party","display_name","display_number","ENUM","freeze","unloadJobs","f","haltClosure","warnOnUnload","videoDevices","audioInDevices","checkDevices","aud_in","aud_out","vid","has_video","has_audio","Xstream","gotDevices","deviceInfos","deviceInfo","kind","handleError","checkTypes","devs","enumerateDevices","refreshDevices","skipPermCheck","skipDeviceCheck","genUUID","vertoHandle","cur_call_map","verto_login","verto_password","first_login","online_visible","userCallback","localIp","peerTag","mic","speak","Proxy","propKey","originalMethod","googAutoGainControl","googNoiseSuppression","googHighpassFilter","vertoCallbacks","online","rtcLogin","rtcLogout","rtcHangupAll","onLogin","onLogout","d","onRinging","onCalling","onAnswer","onHangup","onHold","onRecover","rtcHold","rtcUnhold","rtcHoldUnhold","rtcDtmf","rtcHangup","rtcDial","destinationNumber","cur_call","outgoingBandwidth","incomingBandwidth","email","mirrorInput","rtcAnswer","videoFlag","rtcGetMuteState","rtcMute","rtcUnmute","rtcMuteUnmute","rtcGetMuteVideoState","rtcMuteVideo","rtcUnmuteVideo","rtcMuteUnmuteVideo","bandwidthTestData","rtcTestBandwidth","bytesToSendAndReceive","Promise","upBand","ceil","downBand","getMediaDevices","devices","audioInputDevices","audioOutputDevices","device","rtcStartScreenShare","getVideoSendersByCallId","peerConn","getPeerConnByCallId","onnegotiationneeded","offer","rtcStopScreenShare","rtcStartStopScreenShare","rtcGetScreenShareState","senders","getSenders","rtcRtpSender00","callRtc","getVideoDevices","getAudioInDevices","getAudioOutDevices","rtcHelper","rtcHelperWithLogging","g","adapter","require","_adapter_factory","adapterFactory","_typeof","Symbol","iterator","utils","_interopRequireWildcard","chromeShim","firefoxShim","safariShim","commonShim","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","__esModule","default","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","_ref","shimChrome","shimFirefox","shimSafari","logging","browserDetails","detectBrowser","extractVersion","disableLog","disableWarnings","browser","shimPeerConnection","browserShim","shimAddIceCandidateNullOrEmpty","shimParameterlessSetLocalDescription","shimGetUserMedia","shimMediaStream","shimOnTrack","shimAddTrackRemoveTrack","shimGetSendersWithDtmf","shimGetStats","shimSenderReceiverGetStats","fixNegotiationNeeded","shimRTCIceCandidate","shimRTCIceCandidateRelayProtocol","shimConnectionState","shimMaxMessageSize","shimSendThrowTypeError","removeExtmapAllowMixed","shimRemoveStream","shimSenderGetStats","shimReceiverGetStats","shimRTCDataChannel","shimAddTransceiver","shimGetParameters","shimCreateOffer","shimCreateAnswer","shimRTCIceServerUrls","shimCreateOfferLegacy","shimCallbacksAPI","shimLocalStreamsAPI","shimRemoteStreamsAPI","shimTrackEventTransceiver","shimAudioContext","shimAddTrackRemoveTrackWithNative","enumerable","_getdisplaymedia","shimGetDisplayMedia","_getusermedia","_defineProperty","_toPropertyKey","configurable","writable","_toPrimitive","hint","prim","toPrimitive","TypeError","Number","MediaStream","webkitMediaStream","_ontrack","origSetRemoteDescription","_this","_ontrackpoly","te","receiver","getReceivers","transceiver","dispatchEvent","wrapPeerConnectionEvent","shimSenderWithDtmf","pc","_dtmf","createDTMFSender","_pc","_senders","origAddTrack","addTrack","sender","origRemoveTrack","removeTrack","origAddStream","_this2","origRemoveStream","removeStream","_this3","RTCRtpSender","origGetSenders","_this4","origGetStats","getStats","_this5","_arguments","onSucc","fixChromeStats_","standardReport","reports","report","standardStats","timestamp","localcandidate","remotecandidate","names","stat","makeMapStats","stats","Map","successCallbackWrapper_","RTCRtpReceiver","_this6","filterStats","origGetReceivers","_this7","receivers","srcElement","MediaStreamTrack","DOMException","getLocalStreams","_this8","_shimmedLocalStreams","streamId","_this9","alreadyExists","existingSenders","newSenders","newSender","_this10","origGetLocalStreams","_this11","nativeStreams","_reverseStreams","_this12","_streams","newStream","_this13","signalingState","oldStream","replaceInternalStreamId","description","internalId","externalStream","internalStream","replaceExternalStreamId","nativeMethod","methodObj","_this14","isLegacyCall","origSetLocalDescription","origLocalDescription","_this15","streamid","hasTrack","webkitRTCPeerConnection","getConfiguration","sdpSemantics","getSourceId","widthSpecified","heightSpecified","frameRateSpecified","chromeMediaSource","chromeMediaSourceId","constraintsToChrome_","cc","oldname_","charAt","oc","mix","advanced","shimConstraints_","remap","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","dev","some","includes","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","getUserMedia_","webkitGetUserMedia","origGetUserMedia","cs","_sdp","_interopRequireDefault","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","parseCandidate","toJSON","sdpMid","usernameFragment","relayProtocol","priority","_sctp","sctpInDescription","sections","splitSections","mediaSection","parseMLine","protocol","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","maxMessageSize","matchPrefix","_this$getConfiguratio","isFirefox","canSendMMS","remoteMMS","POSITIVE_INFINITY","sctp","wrapDcSend","dc","origDataChannelSend","byteLength","origCreateDataChannel","dataChannel","proto","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","nativeSRD","nativeAddIceCandidate","nativeSetLocalDescription","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","iter","arr2","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","assign","deprecated","DataChannel","RTCDataChannel","origAddTransceiver","addTransceiver","setParametersPromises","sendEncodings","shouldPerformCheck","encodingParam","ridRegex","rid","RangeError","maxFramerate","origGetParameters","origCreateOffer","_arguments2","origCreateAnswer","_arguments3","preferredMediaSource","nativeGetUserMedia","getSettings","nativeGetSettings","applyConstraints","nativeApplyConstraints","shimConstraints","_localStreams","_addTrack","_len","_key","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","successCallback","failureCallback","withCallback","_getUserMedia","errcb","compactObject","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","server","generateCertificate","offerOptions","audioTransceiver","getTransceivers","setDirection","videoTransceiver","AudioContext","webkitAudioContext","walkStats","logDisabled_","deprecationWarnings_","uastring","eventNameToWrap","wrapper","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","handleEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","oldMethod","newMethod","userAgent","isSecureContext","supportsUnifiedPlan","RTCRtpTransceiver","isObject","reduce","accumulator","isObj","resultSet","endsWith","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","SDPUtils","generateIdentifier","localCName","splitLines","blob","part","getDescription","getMediaSections","foundation","component","ip","address","port","relatedAddress","relatedPort","tcpType","ufrag","writeCandidate","parseIceOptions","parseRtpMap","payloadType","clockRate","channels","numChannels","writeRtpMap","codec","pt","preferredPayloadType","parseExtmap","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","ssrc","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mid","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","writeIceParameters","iceLite","parseRtpParameters","codecs","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","wildcardRtcpFb","duplicate","existingFeedback","writeRtpDescription","caps","maxptime","extension","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","maxSizeLine","isNaN","sctpPort","fmt","sctpMapLines","writeSctpDescription","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","user","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP"],"mappings":"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","sourcesContent":["let TRjQuery;(function(global,factory){if(typeof module===\"object\"&&typeof module.exports===\"object\"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error(\"jQuery requires a window with a document\")}return factory(w)}}else{factory(global)}})(typeof window!==\"undefined\"?window:this,function(window,noGlobal){var arr=[];var slice=arr.slice;var concat=arr.concat;var push=arr.push;var indexOf=arr.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var support={};var document=window.document,version=\"2.1.4\",jQuery=function(selector,context){return new jQuery.fn.init(selector,context)},rtrim=/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,rmsPrefix=/^-ms-/,rdashAlpha=/-([\\da-z])/gi,fcamelCase=function(all,letter){return letter.toUpperCase()};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,selector:\"\",length:0,toArray:function(){return slice.call(this)},get:function(num){return num!=null?num<0?this[num+this.length]:this[num]:slice.call(this)},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;ret.context=this.context;return ret},each:function(callback,args){return jQuery.each(this,callback,args)},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},slice:function(){return this.pushStack(slice.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:push,sort:arr.sort,splice:arr.splice};jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target===\"boolean\"){deep=target;target=arguments[i]||{};i++}if(typeof target!==\"object\"&&!jQuery.isFunction(target)){target={}}if(i===length){target=this;i--}for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue}if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[]}else{clone=src&&jQuery.isPlainObject(src)?src:{}}target[name]=jQuery.extend(deep,clone,copy)}else if(copy!==undefined){target[name]=copy}}}}return target};jQuery.extend({expando:\"jQuery\"+(version+Math.random()).replace(/\\D/g,\"\"),isReady:true,error:function(msg){throw new Error(msg)},noop:function(){},isFunction:function(obj){return jQuery.type(obj)===\"function\"},isArray:Array.isArray,isWindow:function(obj){return obj!=null&&obj===obj.window},isNumeric:function(obj){return!jQuery.isArray(obj)&&obj-parseFloat(obj)+1>=0},isPlainObject:function(obj){if(jQuery.type(obj)!==\"object\"||obj.nodeType||jQuery.isWindow(obj)){return false}if(obj.constructor&&!hasOwn.call(obj.constructor.prototype,\"isPrototypeOf\")){return false}return true},isEmptyObject:function(obj){var name;for(name in obj){return false}return true},type:function(obj){if(obj==null){return obj+\"\"}return typeof obj===\"object\"||typeof obj===\"function\"?class2type[toString.call(obj)]||\"object\":typeof obj},globalEval:function(code){var script,indirect=eval;code=jQuery.trim(code);if(code){if(code.indexOf(\"use strict\")===1){script=document.createElement(\"script\");script.text=code;document.head.appendChild(script).parentNode.removeChild(script)}else{indirect(code)}}},camelCase:function(string){return string.replace(rmsPrefix,\"ms-\").replace(rdashAlpha,fcamelCase)},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase()},each:function(obj,callback,args){var value,i=0,length=obj.length,isArray=isArraylike(obj);if(args){if(isArray){for(;i<length;i++){value=callback.apply(obj[i],args);if(value===false){break}}}else{for(i in obj){value=callback.apply(obj[i],args);if(value===false){break}}}}else{if(isArray){for(;i<length;i++){value=callback.call(obj[i],i,obj[i]);if(value===false){break}}}else{for(i in obj){value=callback.call(obj[i],i,obj[i]);if(value===false){break}}}}return obj},trim:function(text){return text==null?\"\":(text+\"\").replace(rtrim,\"\")},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArraylike(Object(arr))){jQuery.merge(ret,typeof arr===\"string\"?[arr]:arr)}else{push.call(ret,arr)}}return ret},inArray:function(elem,arr,i){return arr==null?-1:indexOf.call(arr,elem,i)},merge:function(first,second){var len=+second.length,j=0,i=first.length;for(;j<len;j++){first[i++]=second[j]}first.length=i;return first},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i])}}return matches},map:function(elems,callback,arg){var value,i=0,length=elems.length,isArray=isArraylike(elems),ret=[];if(isArray){for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}return concat.apply([],ret)},guid:1,proxy:function(fn,context){var tmp,args,proxy;if(typeof context===\"string\"){tmp=fn[context];context=fn;fn=tmp}if(!jQuery.isFunction(fn)){return undefined}args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)))};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy},now:Date.now,support:support});jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"),function(i,name){class2type[\"[object \"+name+\"]\"]=name.toLowerCase()});function isArraylike(obj){var length=\"length\"in obj&&obj.length,type=jQuery.type(obj);if(type===\"function\"||jQuery.isWindow(obj)){return false}if(obj.nodeType===1&&length){return true}return type===\"array\"||length===0||typeof length===\"number\"&&length>0&&length-1 in obj}var Sizzle=function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando=\"sizzle\"+1*new Date,preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true}return 0},MAX_NEGATIVE=1<<31,hasOwn={}.hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){var i=0,len=list.length;for(;i<len;i++){if(list[i]===elem){return i}}return-1},booleans=\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",whitespace=\"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",characterEncoding=\"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",identifier=characterEncoding.replace(\"w\",\"w#\"),attributes=\"\\\\[\"+whitespace+\"*(\"+characterEncoding+\")(?:\"+whitespace+\"*([*^$|!~]?=)\"+whitespace+\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\"+identifier+\"))|)\"+whitespace+\"*\\\\]\",pseudos=\":(\"+characterEncoding+\")(?:\\\\((\"+\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\"+\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\"+attributes+\")*)|\"+\".*\"+\")\\\\)|)\",rwhitespace=new RegExp(whitespace+\"+\",\"g\"),rtrim=new RegExp(\"^\"+whitespace+\"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\"+whitespace+\"+$\",\"g\"),rcomma=new RegExp(\"^\"+whitespace+\"*,\"+whitespace+\"*\"),rcombinators=new RegExp(\"^\"+whitespace+\"*([>+~]|\"+whitespace+\")\"+whitespace+\"*\"),rattributeQuotes=new RegExp(\"=\"+whitespace+\"*([^\\\\]'\\\"]*?)\"+whitespace+\"*\\\\]\",\"g\"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp(\"^\"+identifier+\"$\"),matchExpr={ID:new RegExp(\"^#(\"+characterEncoding+\")\"),CLASS:new RegExp(\"^\\\\.(\"+characterEncoding+\")\"),TAG:new RegExp(\"^(\"+characterEncoding.replace(\"w\",\"w*\")+\")\"),ATTR:new RegExp(\"^\"+attributes),PSEUDO:new RegExp(\"^\"+pseudos),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+whitespace+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+whitespace+\"*(?:([+-]|)\"+whitespace+\"*(\\\\d+)|))\"+whitespace+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+booleans+\")$\",\"i\"),needsContext:new RegExp(\"^\"+whitespace+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+whitespace+\"*((?:-\\\\d)?\\\\d*)\"+whitespace+\"*\\\\)|)(?=[^-]|$)\",\"i\")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\\d$/i,rnative=/^[^{]+\\{\\s*\\[native \\w/,rquickExpr=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,rsibling=/[+~]/,rescape=/'|\\\\/g,runescape=new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\"+whitespace+\"?|(\"+whitespace+\")|.)\",\"ig\"),funescape=function(_,escaped,escapedWhitespace){var high=\"0x\"+escaped-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)},unloadHandler=function(){setDocument()};try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){var j=target.length,i=0;while(target[j++]=els[i++]){}target.length=j-1}}}function Sizzle(selector,context,results,seed){var match,elem,m,nodeType,i,groups,old,nid,newContext,newSelector;if((context?context.ownerDocument||context:preferredDoc)!==document){setDocument(context)}context=context||document;results=results||[];nodeType=context.nodeType;if(typeof selector!==\"string\"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11){return results}if(!seed&&documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if(m=match[1]){if(nodeType===9){elem=context.getElementById(m);if(elem&&elem.parentNode){if(elem.id===m){results.push(elem);return results}}else{return results}}else{if(context.ownerDocument&&(elem=context.ownerDocument.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results}else if((m=match[3])&&support.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results}}if(support.qsa&&(!rbuggyQSA||!rbuggyQSA.test(selector))){nid=old=expando;newContext=context;newSelector=nodeType!==1&&selector;if(nodeType===1&&context.nodeName.toLowerCase()!==\"object\"){groups=tokenize(selector);if(old=context.getAttribute(\"id\")){nid=old.replace(rescape,\"\\\\$&\")}else{context.setAttribute(\"id\",nid)}nid=\"[id='\"+nid+\"'] \";i=groups.length;while(i--){groups[i]=nid+toSelector(groups[i])}newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;newSelector=groups.join(\",\")}if(newSelector){try{push.apply(results,newContext.querySelectorAll(newSelector));return results}catch(qsaError){}finally{if(!old){context.removeAttribute(\"id\")}}}}}return select(selector.replace(rtrim,\"$1\"),context,results,seed)}function createCache(){var keys=[];function cache(key,value){if(keys.push(key+\" \")>Expr.cacheLength){delete cache[keys.shift()]}return cache[key+\" \"]=value}return cache}function markFunction(fn){fn[expando]=true;return fn}function assert(fn){var div=document.createElement(\"div\");try{return!!fn(div)}catch(e){return false}finally{if(div.parentNode){div.parentNode.removeChild(div)}div=null}}function addHandle(attrs,handler){var arr=attrs.split(\"|\"),i=attrs.length;while(i--){Expr.attrHandle[arr[i]]=handler}}function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&(~b.sourceIndex||MAX_NEGATIVE)-(~a.sourceIndex||MAX_NEGATIVE);if(diff){return diff}if(cur){while(cur=cur.nextSibling){if(cur===b){return-1}}}return a?1:-1}function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name===\"input\"&&elem.type===type}}function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name===\"input\"||name===\"button\")&&elem.type===type}}function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[j=matchIndexes[i]]){seed[j]=!(matches[j]=seed[j])}}})})}function testContext(context){return context&&typeof context.getElementsByTagName!==\"undefined\"&&context}support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?documentElement.nodeName!==\"HTML\":false};setDocument=Sizzle.setDocument=function(node){var hasCompare,parent,doc=node?node.ownerDocument||node:preferredDoc;if(doc===document||doc.nodeType!==9||!doc.documentElement){return document}document=doc;docElem=doc.documentElement;parent=doc.defaultView;if(parent&&parent!==parent.top){if(parent.addEventListener){parent.addEventListener(\"unload\",unloadHandler,false)}else if(parent.attachEvent){parent.attachEvent(\"onunload\",unloadHandler)}}documentIsHTML=!isXML(doc);support.attributes=assert(function(div){div.className=\"i\";return!div.getAttribute(\"className\")});support.getElementsByTagName=assert(function(div){div.appendChild(doc.createComment(\"\"));return!div.getElementsByTagName(\"*\").length});support.getElementsByClassName=rnative.test(doc.getElementsByClassName);support.getById=assert(function(div){docElem.appendChild(div).id=expando;return!doc.getElementsByName||!doc.getElementsByName(expando).length});if(support.getById){Expr.find[\"ID\"]=function(id,context){if(typeof context.getElementById!==\"undefined\"&&documentIsHTML){var m=context.getElementById(id);return m&&m.parentNode?[m]:[]}};Expr.filter[\"ID\"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute(\"id\")===attrId}}}else{delete Expr.find[\"ID\"];Expr.filter[\"ID\"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!==\"undefined\"&&elem.getAttributeNode(\"id\");return node&&node.value===attrId}}}Expr.find[\"TAG\"]=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!==\"undefined\"){return context.getElementsByTagName(tag)}else if(support.qsa){return context.querySelectorAll(tag)}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag===\"*\"){while(elem=results[i++]){if(elem.nodeType===1){tmp.push(elem)}}return tmp}return results};Expr.find[\"CLASS\"]=support.getElementsByClassName&&function(className,context){if(documentIsHTML){return context.getElementsByClassName(className)}};rbuggyMatches=[];rbuggyQSA=[];if(support.qsa=rnative.test(doc.querySelectorAll)){assert(function(div){docElem.appendChild(div).innerHTML=\"<a id='\"+expando+\"'></a>\"+\"<select id='\"+expando+\"-\\f]' msallowcapture=''>\"+\"<option selected=''></option></select>\";if(div.querySelectorAll(\"[msallowcapture^='']\").length){rbuggyQSA.push(\"[*^$]=\"+whitespace+\"*(?:''|\\\"\\\")\")}if(!div.querySelectorAll(\"[selected]\").length){rbuggyQSA.push(\"\\\\[\"+whitespace+\"*(?:value|\"+booleans+\")\")}if(!div.querySelectorAll(\"[id~=\"+expando+\"-]\").length){rbuggyQSA.push(\"~=\")}if(!div.querySelectorAll(\":checked\").length){rbuggyQSA.push(\":checked\")}if(!div.querySelectorAll(\"a#\"+expando+\"+*\").length){rbuggyQSA.push(\".#.+[+~]\")}});assert(function(div){var input=doc.createElement(\"input\");input.setAttribute(\"type\",\"hidden\");div.appendChild(input).setAttribute(\"name\",\"D\");if(div.querySelectorAll(\"[name=d]\").length){rbuggyQSA.push(\"name\"+whitespace+\"*[*^$|!~]?=\")}if(!div.querySelectorAll(\":enabled\").length){rbuggyQSA.push(\":enabled\",\":disabled\")}div.querySelectorAll(\"*,:x\");rbuggyQSA.push(\",.*:\")})}if(support.matchesSelector=rnative.test(matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)){assert(function(div){support.disconnectedMatch=matches.call(div,\"div\");matches.call(div,\"[s!='']:x\");rbuggyMatches.push(\"!=\",pseudos)})}rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join(\"|\"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join(\"|\"));hasCompare=rnative.test(docElem.compareDocumentPosition);contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=a.nodeType===9?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16))}:function(a,b){if(b){while(b=b.parentNode){if(b===a){return true}}}return false};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=true;return 0}var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare}compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||!support.sortDetached&&b.compareDocumentPosition(a)===compare){if(a===doc||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)){return-1}if(b===doc||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)){return 1}return sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}return compare&4?-1:1}:function(a,b){if(a===b){hasDuplicate=true;return 0}var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a===doc?-1:b===doc?1:aup?-1:bup?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}else if(aup===bup){return siblingCheck(a,b)}cur=a;while(cur=cur.parentNode){ap.unshift(cur)}cur=b;while(cur=cur.parentNode){bp.unshift(cur)}while(ap[i]===bp[i]){i++}return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0};return doc};Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements)};Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document){setDocument(elem)}expr=expr.replace(rattributeQuotes,\"='$1']\");if(support.matchesSelector&&documentIsHTML&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret}}catch(e){}}return Sizzle(expr,document,null,[elem]).length>0};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!==document){setDocument(context)}return contains(context,elem)};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!==document){setDocument(elem)}var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;return val!==undefined?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null};Sizzle.error=function(msg){throw new Error(\"Syntax error, unrecognized expression: \"+msg)};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.detectDuplicates;sortInput=!support.sortStable&&results.slice(0);results.sort(sortOrder);if(hasDuplicate){while(elem=results[i++]){if(elem===results[i]){j=duplicates.push(i)}}while(j--){results.splice(duplicates[j],1)}}sortInput=null;return results};getText=Sizzle.getText=function(elem){var node,ret=\"\",i=0,nodeType=elem.nodeType;if(!nodeType){while(node=elem[i++]){ret+=getText(node)}}else if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent===\"string\"){return elem.textContent}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem)}}}else if(nodeType===3||nodeType===4){return elem.nodeValue}return ret};Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{\">\":{dir:\"parentNode\",first:true},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:true},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||\"\").replace(runescape,funescape);if(match[2]===\"~=\"){match[3]=\" \"+match[3]+\" \"}return match.slice(0,4)},CHILD:function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)===\"nth\"){if(!match[3]){Sizzle.error(match[0])}match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]===\"even\"||match[3]===\"odd\"));match[5]=+(match[7]+match[8]||match[3]===\"odd\")}else if(match[3]){Sizzle.error(match[0])}return match},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr[\"CHILD\"].test(match[0])){return null}if(match[3]){match[2]=match[4]||match[5]||\"\"}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(\")\",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess)}return match.slice(0,3)}},filter:{TAG:function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector===\"*\"?function(){return true}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName}},CLASS:function(className){var pattern=classCache[className+\" \"];return pattern||(pattern=new RegExp(\"(^|\"+whitespace+\")\"+className+\"(\"+whitespace+\"|$)\"))&&classCache(className,function(elem){return pattern.test(typeof elem.className===\"string\"&&elem.className||typeof elem.getAttribute!==\"undefined\"&&elem.getAttribute(\"class\")||\"\")})},ATTR:function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);if(result==null){return operator===\"!=\"}if(!operator){return true}result+=\"\";return operator===\"=\"?result===check:operator===\"!=\"?result!==check:operator===\"^=\"?check&&result.indexOf(check)===0:operator===\"*=\"?check&&result.indexOf(check)>-1:operator===\"$=\"?check&&result.slice(-check.length)===check:operator===\"~=\"?(\" \"+result.replace(rwhitespace,\" \")+\" \").indexOf(check)>-1:operator===\"|=\"?result===check||result.slice(0,check.length+1)===check+\"-\":false}},CHILD:function(type,what,argument,first,last){var simple=type.slice(0,3)!==\"nth\",forward=type.slice(-4)!==\"last\",ofType=what===\"of-type\";return first===1&&last===0?function(elem){return!!elem.parentNode}:function(elem,context,xml){var cache,outerCache,node,diff,nodeIndex,start,dir=simple!==forward?\"nextSibling\":\"previousSibling\",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType;if(parent){if(simple){while(dir){node=elem;while(node=node[dir]){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return false}}start=dir=type===\"only\"&&!start&&\"nextSibling\"}return true}start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){outerCache=parent[expando]||(parent[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=cache[0]===dirruns&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if(node.nodeType===1&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break}}}else if(useCache&&(cache=(elem[expando]||(elem[expando]={}))[type])&&cache[0]===dirruns){diff=cache[1]}else{while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){(node[expando]||(node[expando]={}))[type]=[dirruns,diff]}if(node===elem){break}}}}diff-=last;return diff===first||diff%first===0&&diff/first>=0}}},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error(\"unsupported pseudo: \"+pseudo);if(fn[expando]){return fn(argument)}if(fn.length>1){args=[pseudo,pseudo,\"\",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i])}}):function(elem){return fn(elem,0,args)}}return fn}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,\"$1\"));return matcher[expando]?markFunction(function(seed,matches,context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if(elem=unmatched[i]){seed[i]=!(matches[i]=elem)}}}):function(elem,context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return!results.pop()}}),has:markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0}}),contains:markFunction(function(text){text=text.replace(runescape,funescape);return function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1}}),lang:markFunction(function(lang){if(!ridentifier.test(lang||\"\")){Sizzle.error(\"unsupported lang: \"+lang)}lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if(elemLang=documentIsHTML?elem.lang:elem.getAttribute(\"xml:lang\")||elem.getAttribute(\"lang\")){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+\"-\")===0}}while((elem=elem.parentNode)&&elem.nodeType===1);return false}}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id},root:function(elem){return elem===docElem},focus:function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex)},enabled:function(elem){return elem.disabled===false},disabled:function(elem){return elem.disabled===true},checked:function(elem){var nodeName=elem.nodeName.toLowerCase();return nodeName===\"input\"&&!!elem.checked||nodeName===\"option\"&&!!elem.selected},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex}return elem.selected===true},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false}}return true},parent:function(elem){return!Expr.pseudos[\"empty\"](elem)},header:function(elem){return rheader.test(elem.nodeName)},input:function(elem){return rinputs.test(elem.nodeName)},button:function(elem){var name=elem.nodeName.toLowerCase();return name===\"input\"&&elem.type===\"button\"||name===\"button\"},text:function(elem){var attr;return elem.nodeName.toLowerCase()===\"input\"&&elem.type===\"text\"&&((attr=elem.getAttribute(\"type\"))==null||attr.toLowerCase()===\"text\")},first:createPositionalPseudo(function(){return[0]}),last:createPositionalPseudo(function(matchIndexes,length){return[length-1]}),eq:createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument]}),even:createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i)}return matchIndexes}),odd:createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i)}return matchIndexes}),lt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;--i>=0;){matchIndexes.push(i)}return matchIndexes}),gt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i)}return matchIndexes})}};Expr.pseudos[\"nth\"]=Expr.pseudos[\"eq\"];for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i)}for(i in{submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i)}function setFilters(){}setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters;tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+\" \"];if(cached){return parseOnly?0:cached.slice(0)}soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar}groups.push(tokens=[])}matched=false;if(match=rcombinators.exec(soFar)){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim,\" \")});soFar=soFar.slice(matched.length)}for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length)}}if(!matched){break}}return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0)};function toSelector(tokens){var i=0,len=tokens.length,selector=\"\";for(;i<len;i++){selector+=tokens[i].value}return selector}function addCombinator(matcher,combinator,base){var dir=combinator.dir,checkNonElements=base&&dir===\"parentNode\",doneName=done++;return combinator.first?function(elem,context,xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml)}}}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true}}}}else{while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});if((oldCache=outerCache[dir])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return newCache[2]=oldCache[2]}else{outerCache[dir]=newCache;if(newCache[2]=matcher(elem,context,xml)){return true}}}}}}}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false}}return true}:matchers[0]}function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){Sizzle(selector,contexts[i],results)}return results}function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if(elem=unmatched[i]){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i)}}}}return newUnmatched}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter)}if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector)}return markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||\"*\",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml)}if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if(elem=temp[i]){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem)}}}if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if(elem=matcherOut[i]){temp.push(matcherIn[i]=elem)}}postFinder(null,matcherOut=[],temp,xml)}i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem)}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml)}else{push.apply(results,matcherOut)}}})}function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[\" \"],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1},implicitRelative,true),matchers=[function(elem,context,xml){var ret=!leadingRelative&&(xml||context!==outermostContext)||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret}];for(;i<len;i++){if(matcher=Expr.relative[tokens[i].type]){matchers=[addCombinator(elementMatcher(matchers),matcher)]}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break}}return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===\" \"?\"*\":\"\"})).replace(rtrim,\"$1\"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens(tokens=tokens.slice(j)),j<len&&toSelector(tokens))}matchers.push(matcher)}}return elementMatcher(matchers)}function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i=\"0\",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find[\"TAG\"](\"*\",outermost),dirrunsUnique=dirruns+=contextBackup==null?1:Math.random()||.1,len=elems.length;if(outermost){outermostContext=context!==document&&context}for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;while(matcher=elementMatchers[j++]){if(matcher(elem,context,xml)){results.push(elem);break}}if(outermost){dirruns=dirrunsUnique}}if(bySet){if(elem=!matcher&&elem){matchedCount--}if(seed){unmatched.push(elem)}}}matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while(matcher=setMatchers[j++]){matcher(unmatched,setMatched,context,xml)}if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results)}}}setMatched=condense(setMatched)}push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1){Sizzle.uniqueSort(results)}}if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup}return unmatched};return bySet?markFunction(superMatcher):superMatcher}compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+\" \"];if(!cached){if(!match){match=tokenize(selector)}i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached)}else{elementMatchers.push(cached)}}cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector}return cached};select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector===\"function\"&&selector,match=!seed&&tokenize(selector=compiled.selector||selector);results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type===\"ID\"&&support.getById&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find[\"ID\"](token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results}else if(compiled){context=context.parentNode}selector=selector.slice(tokens.shift().value.length)}i=matchExpr[\"needsContext\"].test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[type=token.type]){break}if(find=Expr.find[type]){if(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context)){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results}break}}}}(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,rsibling.test(selector)&&testContext(context.parentNode)||context);return results};support.sortStable=expando.split(\"\").sort(sortOrder).join(\"\")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(div1){return div1.compareDocumentPosition(document.createElement(\"div\"))&1});if(!assert(function(div){div.innerHTML=\"<a href='#'></a>\";return div.firstChild.getAttribute(\"href\")===\"#\"})){addHandle(\"type|href|height|width\",function(elem,name,isXML){if(!isXML){return elem.getAttribute(name,name.toLowerCase()===\"type\"?1:2)}})}if(!support.attributes||!assert(function(div){div.innerHTML=\"<input/>\";div.firstChild.setAttribute(\"value\",\"\");return div.firstChild.getAttribute(\"value\")===\"\"})){addHandle(\"value\",function(elem,name,isXML){if(!isXML&&elem.nodeName.toLowerCase()===\"input\"){return elem.defaultValue}})}if(!assert(function(div){return div.getAttribute(\"disabled\")==null})){addHandle(booleans,function(elem,name,isXML){var val;if(!isXML){return elem[name]===true?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null}})}return Sizzle}(window);jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[\":\"]=jQuery.expr.pseudos;jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/;var risSimple=/^.[^:#\\[\\.,]*$/;function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not})}if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return elem===qualifier!==not})}if(typeof qualifier===\"string\"){if(risSimple.test(qualifier)){return jQuery.filter(qualifier,elements,not)}qualifier=jQuery.filter(qualifier,elements)}return jQuery.grep(elements,function(elem){return indexOf.call(qualifier,elem)>=0!==not})}jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=\":not(\"+expr+\")\"}return elems.length===1&&elem.nodeType===1?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1}))};jQuery.fn.extend({find:function(selector){var i,len=this.length,ret=[],self=this;if(typeof selector!==\"string\"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true}}}))}for(i=0;i<len;i++){jQuery.find(selector,self[i],ret)}ret=this.pushStack(len>1?jQuery.unique(ret):ret);ret.selector=this.selector?this.selector+\" \"+selector:selector;return ret},filter:function(selector){return this.pushStack(winnow(this,selector||[],false))},not:function(selector){return this.pushStack(winnow(this,selector||[],true))},is:function(selector){return!!winnow(this,typeof selector===\"string\"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length}});var rootjQuery,rquickExpr=/^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,init=jQuery.fn.init=function(selector,context){var match,elem;if(!selector){return this}if(typeof selector===\"string\"){if(selector[0]===\"<\"&&selector[selector.length-1]===\">\"&&selector.length>=3){match=[null,selector,null]}else{match=rquickExpr.exec(selector)}if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(jQuery.isFunction(this[match])){this[match](context[match])}else{this.attr(match,context[match])}}}return this}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){this.length=1;this[0]=elem}this.context=document;this.selector=selector;return this}}else if(!context||context.jquery){return(context||rootjQuery).find(selector)}else{return this.constructor(context).find(selector)}}else if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this}else if(jQuery.isFunction(selector)){return typeof rootjQuery.ready!==\"undefined\"?rootjQuery.ready(selector):selector(jQuery)}if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context}return jQuery.makeArray(selector,this)};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.extend({dir:function(elem,dir,until){var matched=[],truncate=until!==undefined;while((elem=elem[dir])&&elem.nodeType!==9){if(elem.nodeType===1){if(truncate&&jQuery(elem).is(until)){break}matched.push(elem)}}return matched},sibling:function(n,elem){var matched=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){matched.push(n)}}return matched}});jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){var i=0;for(;i<l;i++){if(jQuery.contains(this,targets[i])){return true}}})},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],pos=rneedsContext.test(selectors)||typeof selectors!==\"string\"?jQuery(selectors,context||this.context):0;for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(pos?pos.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break}}}return this.pushStack(matched.length>1?jQuery.unique(matched):matched)},index:function(elem){if(!elem){return this[0]&&this[0].parentNode?this.first().prevAll().length:-1}if(typeof elem===\"string\"){return indexOf.call(jQuery(elem),this[0])}return indexOf.call(this,elem.jquery?elem[0]:elem)},add:function(selector,context){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),jQuery(selector,context))))},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector))}});function sibling(cur,dir){while((cur=cur[dir])&&cur.nodeType!==1){}return cur}jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null},parents:function(elem){return jQuery.dir(elem,\"parentNode\")},parentsUntil:function(elem,i,until){return jQuery.dir(elem,\"parentNode\",until)},next:function(elem){return sibling(elem,\"nextSibling\")},prev:function(elem){return sibling(elem,\"previousSibling\")},nextAll:function(elem){return jQuery.dir(elem,\"nextSibling\")},prevAll:function(elem){return jQuery.dir(elem,\"previousSibling\")},nextUntil:function(elem,i,until){return jQuery.dir(elem,\"nextSibling\",until)},prevUntil:function(elem,i,until){return jQuery.dir(elem,\"previousSibling\",until)},siblings:function(elem){return jQuery.sibling((elem.parentNode||{}).firstChild,elem)},children:function(elem){return jQuery.sibling(elem.firstChild)},contents:function(elem){return elem.contentDocument||jQuery.merge([],elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);if(name.slice(-5)!==\"Until\"){selector=until}if(selector&&typeof selector===\"string\"){matched=jQuery.filter(selector,matched)}if(this.length>1){if(!guaranteedUnique[name]){jQuery.unique(matched)}if(rparentsprev.test(name)){matched.reverse()}}return this.pushStack(matched)}});var rnotwhite=/\\S+/g;var optionsCache={};function createOptions(options){var object=optionsCache[options]={};jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=true});return object}jQuery.Callbacks=function(options){options=typeof options===\"string\"?optionsCache[options]||createOptions(options):jQuery.extend({},options);var memory,fired,firing,firingStart,firingLength,firingIndex,list=[],stack=!options.once&&[],fire=function(data){memory=options.memory&&data;fired=true;firingIndex=firingStart||0;firingStart=0;firingLength=list.length;firing=true;for(;list&&firingIndex<firingLength;firingIndex++){if(list[firingIndex].apply(data[0],data[1])===false&&options.stopOnFalse){memory=false;break}}firing=false;if(list){if(stack){if(stack.length){fire(stack.shift())}}else if(memory){list=[]}else{self.disable()}}},self={add:function(){if(list){var start=list.length;(function add(args){jQuery.each(args,function(_,arg){var type=jQuery.type(arg);if(type===\"function\"){if(!options.unique||!self.has(arg)){list.push(arg)}}else if(arg&&arg.length&&type!==\"string\"){add(arg)}})})(arguments);if(firing){firingLength=list.length}else if(memory){firingStart=start;fire(memory)}}return this},remove:function(){if(list){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(firing){if(index<=firingLength){firingLength--}if(index<=firingIndex){firingIndex--}}}})}return this},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:!!(list&&list.length)},empty:function(){list=[];firingLength=0;return this},disable:function(){list=stack=memory=undefined;return this},disabled:function(){return!list},lock:function(){stack=undefined;if(!memory){self.disable()}return this},locked:function(){return!stack},fireWith:function(context,args){if(list&&(!fired||stack)){args=args||[];args=[context,args.slice?args.slice():args];if(firing){stack.push(args)}else{fire(args)}}return this},fire:function(){self.fireWith(this,arguments);return this},fired:function(){return!!fired}};return self};jQuery.extend({Deferred:function(func){var tuples=[[\"resolve\",\"done\",jQuery.Callbacks(\"once memory\"),\"resolved\"],[\"reject\",\"fail\",jQuery.Callbacks(\"once memory\"),\"rejected\"],[\"notify\",\"progress\",jQuery.Callbacks(\"memory\")]],state=\"pending\",promise={state:function(){return state},always:function(){deferred.done(arguments).fail(arguments);return this},then:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[i])&&fns[i];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify)}else{newDefer[tuple[0]+\"With\"](this===promise?newDefer.promise():this,fn?[returned]:arguments)}})});fns=null}).promise()},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise}},deferred={};promise.pipe=promise.then;jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[3];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString},tuples[i^1][2].disable,tuples[2][2].lock)}deferred[tuple[0]]=function(){deferred[tuple[0]+\"With\"](this===deferred?promise:this,arguments);return this};deferred[tuple[0]+\"With\"]=list.fireWith});promise.promise(deferred);if(func){func.call(deferred,deferred)}return deferred},when:function(subordinate){var i=0,resolveValues=slice.call(arguments),length=resolveValues.length,remaining=length!==1||subordinate&&jQuery.isFunction(subordinate.promise)?length:0,deferred=remaining===1?subordinate:jQuery.Deferred(),updateFunc=function(i,contexts,values){return function(value){contexts[i]=this;values[i]=arguments.length>1?slice.call(arguments):value;if(values===progressValues){deferred.notifyWith(contexts,values)}else if(!--remaining){deferred.resolveWith(contexts,values)}}},progressValues,progressContexts,resolveContexts;if(length>1){progressValues=new Array(length);progressContexts=new Array(length);resolveContexts=new Array(length);for(;i<length;i++){if(resolveValues[i]&&jQuery.isFunction(resolveValues[i].promise)){resolveValues[i].promise().done(updateFunc(i,resolveContexts,resolveValues)).fail(deferred.reject).progress(updateFunc(i,progressContexts,progressValues))}else{--remaining}}}if(!remaining){deferred.resolveWith(resolveContexts,resolveValues)}return deferred.promise()}});var readyList;jQuery.fn.ready=function(fn){jQuery.ready.promise().done(fn);return this};jQuery.extend({isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++}else{jQuery.ready(true)}},ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return}jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return}readyList.resolveWith(document,[jQuery]);if(jQuery.fn.triggerHandler){jQuery(document).triggerHandler(\"ready\");jQuery(document).off(\"ready\")}}});function completed(){document.removeEventListener(\"DOMContentLoaded\",completed,false);window.removeEventListener(\"load\",completed,false);jQuery.ready()}jQuery.ready.promise=function(obj){if(!readyList){readyList=jQuery.Deferred();if(document.readyState===\"complete\"){setTimeout(jQuery.ready)}else{document.addEventListener(\"DOMContentLoaded\",completed,false);window.addEventListener(\"load\",completed,false)}}return readyList.promise(obj)};jQuery.ready.promise();var access=jQuery.access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=key==null;if(jQuery.type(key)===\"object\"){chainable=true;for(i in key){jQuery.access(elems,fn,i,key[i],true,emptyGet,raw)}}else if(value!==undefined){chainable=true;if(!jQuery.isFunction(value)){raw=true}if(bulk){if(raw){fn.call(elems,value);fn=null}else{bulk=fn;fn=function(elem,key,value){return bulk.call(jQuery(elem),value)}}}if(fn){for(;i<len;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)))}}}return chainable?elems:bulk?fn.call(elems):len?fn(elems[0],key):emptyGet};jQuery.acceptData=function(owner){return owner.nodeType===1||owner.nodeType===9||!+owner.nodeType};function Data(){Object.defineProperty(this.cache={},0,{get:function(){return{}}});this.expando=jQuery.expando+Data.uid++}Data.uid=1;Data.accepts=jQuery.acceptData;Data.prototype={key:function(owner){if(!Data.accepts(owner)){return 0}var descriptor={},unlock=owner[this.expando];if(!unlock){unlock=Data.uid++;try{descriptor[this.expando]={value:unlock};Object.defineProperties(owner,descriptor)}catch(e){descriptor[this.expando]=unlock;jQuery.extend(owner,descriptor)}}if(!this.cache[unlock]){this.cache[unlock]={}}return unlock},set:function(owner,data,value){var prop,unlock=this.key(owner),cache=this.cache[unlock];if(typeof data===\"string\"){cache[data]=value}else{if(jQuery.isEmptyObject(cache)){jQuery.extend(this.cache[unlock],data)}else{for(prop in data){cache[prop]=data[prop]}}}return cache},get:function(owner,key){var cache=this.cache[this.key(owner)];return key===undefined?cache:cache[key]},access:function(owner,key,value){var stored;if(key===undefined||key&&typeof key===\"string\"&&value===undefined){stored=this.get(owner,key);return stored!==undefined?stored:this.get(owner,jQuery.camelCase(key))}this.set(owner,key,value);return value!==undefined?value:key},remove:function(owner,key){var i,name,camel,unlock=this.key(owner),cache=this.cache[unlock];if(key===undefined){this.cache[unlock]={}}else{if(jQuery.isArray(key)){name=key.concat(key.map(jQuery.camelCase))}else{camel=jQuery.camelCase(key);if(key in cache){name=[key,camel]}else{name=camel;name=name in cache?[name]:name.match(rnotwhite)||[]}}i=name.length;while(i--){delete cache[name[i]]}}},hasData:function(owner){return!jQuery.isEmptyObject(this.cache[owner[this.expando]]||{})},discard:function(owner){if(owner[this.expando]){delete this.cache[owner[this.expando]]}}};var data_priv=new Data;var data_user=new Data;var rbrace=/^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,rmultiDash=/([A-Z])/g;function dataAttr(elem,key,data){var name;if(data===undefined&&elem.nodeType===1){name=\"data-\"+key.replace(rmultiDash,\"-$1\").toLowerCase();data=elem.getAttribute(name);if(typeof data===\"string\"){try{data=data===\"true\"?true:data===\"false\"?false:data===\"null\"?null:+data+\"\"===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}data_user.set(elem,key,data)}else{data=undefined}}return data}jQuery.extend({hasData:function(elem){return data_user.hasData(elem)||data_priv.hasData(elem)},data:function(elem,name,data){return data_user.access(elem,name,data)},removeData:function(elem,name){data_user.remove(elem,name)},_data:function(elem,name,data){return data_priv.access(elem,name,data)},_removeData:function(elem,name){data_priv.remove(elem,name)}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=data_user.get(elem);if(elem.nodeType===1&&!data_priv.get(elem,\"hasDataAttrs\")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf(\"data-\")===0){name=jQuery.camelCase(name.slice(5));dataAttr(elem,name,data[name])}}}data_priv.set(elem,\"hasDataAttrs\",true)}}return data}if(typeof key===\"object\"){return this.each(function(){data_user.set(this,key)})}return access(this,function(value){var data,camelKey=jQuery.camelCase(key);if(elem&&value===undefined){data=data_user.get(elem,key);if(data!==undefined){return data}data=data_user.get(elem,camelKey);if(data!==undefined){return data}data=dataAttr(elem,camelKey,undefined);if(data!==undefined){return data}return}this.each(function(){var data=data_user.get(this,camelKey);data_user.set(this,camelKey,value);if(key.indexOf(\"-\")!==-1&&data!==undefined){data_user.set(this,key,value)}})},null,value,arguments.length>1,null,true)},removeData:function(key){return this.each(function(){data_user.remove(this,key)})}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||\"fx\")+\"queue\";queue=data_priv.get(elem,type);if(data){if(!queue||jQuery.isArray(data)){queue=data_priv.access(elem,type,jQuery.makeArray(data))}else{queue.push(data)}}return queue||[]}},dequeue:function(elem,type){type=type||\"fx\";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type)};if(fn===\"inprogress\"){fn=queue.shift();startLength--}if(fn){if(type===\"fx\"){queue.unshift(\"inprogress\")}delete hooks.stop;fn.call(elem,next,hooks)}if(!startLength&&hooks){hooks.empty.fire()}},_queueHooks:function(elem,type){var key=type+\"queueHooks\";return data_priv.get(elem,key)||data_priv.access(elem,key,{empty:jQuery.Callbacks(\"once memory\").add(function(){data_priv.remove(elem,[type+\"queue\",key])})})}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!==\"string\"){data=type;type=\"fx\";setter--}if(arguments.length<setter){return jQuery.queue(this[0],type)}return data===undefined?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type===\"fx\"&&queue[0]!==\"inprogress\"){jQuery.dequeue(this,type)}})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},clearQueue:function(type){return this.queue(type||\"fx\",[])},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!--count){defer.resolveWith(elements,[elements])}};if(typeof type!==\"string\"){obj=type;type=undefined}type=type||\"fx\";while(i--){tmp=data_priv.get(elements[i],type+\"queueHooks\");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve)}}resolve();return defer.promise(obj)}});var pnum=/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;var cssExpand=[\"Top\",\"Right\",\"Bottom\",\"Left\"];var isHidden=function(elem,el){elem=el||elem;return jQuery.css(elem,\"display\")===\"none\"||!jQuery.contains(elem.ownerDocument,elem)};var rcheckableType=/^(?:checkbox|radio)$/i;(function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement(\"div\")),input=document.createElement(\"input\");input.setAttribute(\"type\",\"radio\");input.setAttribute(\"checked\",\"checked\");input.setAttribute(\"name\",\"t\");div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML=\"<textarea>x</textarea>\";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue})();var strundefined=typeof undefined;support.focusinBubbles=\"onfocusin\"in window;var rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu)|click/,rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,rtypenamespace=/^([^.]*)(?:\\.(.+)|)$/;function returnTrue(){return true}function returnFalse(){return false}function safeActiveElement(){try{return document.activeElement}catch(err){}}jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=data_priv.get(elem);if(!elemData){return}if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector}if(!handler.guid){handler.guid=jQuery.guid++}if(!(events=elemData.events)){events=elemData.events={}}if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!==strundefined&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):undefined}}types=(types||\"\").match(rnotwhite)||[\"\"];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||\"\").split(\".\").sort();if(!type){continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(\".\")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false)}}}if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid}}if(selector){handlers.splice(handlers.delegateCount++,0,handleObj)}else{handlers.push(handleObj)}jQuery.event.global[type]=true}},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=data_priv.hasData(elem)&&data_priv.get(elem);if(!elemData||!(events=elemData.events)){return}types=(types||\"\").match(rnotwhite)||[\"\"];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||\"\").split(\".\").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true)}continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp(\"(^|\\\\.)\"+namespaces.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector===\"**\"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--}if(special.remove){special.remove.call(elem,handleObj)}}}if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle)}delete events[type]}}if(jQuery.isEmptyObject(events)){delete elemData.handle;data_priv.remove(elem,\"events\")}},trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,eventPath=[elem||document],type=hasOwn.call(event,\"type\")?event.type:event,namespaces=hasOwn.call(event,\"namespace\")?event.namespace.split(\".\"):[];cur=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return}if(rfocusMorph.test(type+jQuery.event.triggered)){return}if(type.indexOf(\".\")>=0){namespaces=type.split(\".\");type=namespaces.shift();namespaces.sort()}ontype=type.indexOf(\":\")<0&&\"on\"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event===\"object\"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(\".\");event.namespace_re=event.namespace?new RegExp(\"(^|\\\\.)\"+namespaces.join(\"\\\\.(?:.*\\\\.|)\")+\"(\\\\.|$)\"):null;event.result=undefined;if(!event.target){event.target=elem}data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return}if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode}for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur}if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window)}}i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){event.type=i>1?bubbleType:special.bindType||type;handle=(data_priv.get(cur,\"events\")||{})[event.type]&&data_priv.get(cur,\"handle\");if(handle){handle.apply(cur,data)}handle=ontype&&cur[ontype];if(handle&&handle.apply&&jQuery.acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault()}}}event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&jQuery.acceptData(elem)){if(ontype&&jQuery.isFunction(elem[type])&&!jQuery.isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null}jQuery.event.triggered=type;elem[type]();jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp}}}}return event.result},dispatch:function(event){event=jQuery.event.fix(event);var i,j,ret,matched,handleObj,handlerQueue=[],args=slice.call(arguments),handlers=(data_priv.get(this,\"events\")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return}handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.namespace_re||event.namespace_re.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation()}}}}}if(special.postDispatch){special.postDispatch.call(this,event)}return event.result},handlers:function(event,handlers){var i,matches,sel,handleObj,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&(!event.button||event.type!==\"click\")){for(;cur!==this;cur=cur.parentNode||this){if(cur.disabled!==true||event.type!==\"click\"){matches=[];for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+\" \";if(matches[sel]===undefined){matches[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>=0:jQuery.find(sel,this,null,[cur]).length}if(matches[sel]){matches.push(handleObj)}}if(matches.length){handlerQueue.push({elem:cur,handlers:matches})}}}}if(delegateCount<handlers.length){handlerQueue.push({elem:this,handlers:handlers.slice(delegateCount)})}return handlerQueue},props:\"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),fixHooks:{},keyHooks:{props:\"char charCode key keyCode\".split(\" \"),filter:function(event,original){if(event.which==null){event.which=original.charCode!=null?original.charCode:original.keyCode}return event}},mouseHooks:{props:\"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),filter:function(event,original){var eventDoc,doc,body,button=original.button;if(event.pageX==null&&original.clientX!=null){eventDoc=event.target.ownerDocument||document;doc=eventDoc.documentElement;body=eventDoc.body;event.pageX=original.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=original.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}if(!event.which&&button!==undefined){event.which=button&1?1:button&2?3:button&4?2:0}return event}},fix:function(event){if(event[jQuery.expando]){return event}var i,prop,copy,type=event.type,originalEvent=event,fixHook=this.fixHooks[type];if(!fixHook){this.fixHooks[type]=fixHook=rmouseEvent.test(type)?this.mouseHooks:rkeyEvent.test(type)?this.keyHooks:{}}copy=fixHook.props?this.props.concat(fixHook.props):this.props;event=new jQuery.Event(originalEvent);i=copy.length;while(i--){prop=copy[i];event[prop]=originalEvent[prop]}if(!event.target){event.target=document}if(event.target.nodeType===3){event.target=event.target.parentNode}return fixHook.filter?fixHook.filter(event,originalEvent):event},special:{load:{noBubble:true},focus:{trigger:function(){if(this!==safeActiveElement()&&this.focus){this.focus();return false}},delegateType:\"focusin\"},blur:{trigger:function(){if(this===safeActiveElement()&&this.blur){this.blur();return false}},delegateType:\"focusout\"},click:{trigger:function(){if(this.type===\"checkbox\"&&this.click&&jQuery.nodeName(this,\"input\")){this.click();return false}},_default:function(event){return jQuery.nodeName(event.target,\"a\")}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result}}}},simulate:function(type,elem,event,bubble){var e=jQuery.extend(new jQuery.Event,event,{type:type,isSimulated:true,originalEvent:{}});if(bubble){jQuery.event.trigger(e,null,elem)}else{jQuery.event.dispatch.call(elem,e)}if(e.isDefaultPrevented()){event.preventDefault()}}};jQuery.removeEvent=function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle,false)}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props)}if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse}else{this.type=src}if(props){jQuery.extend(this,props)}this.timeStamp=src&&src.timeStamp||jQuery.now();this[jQuery.expando]=true};jQuery.Event.prototype={isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(e&&e.preventDefault){e.preventDefault()}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(e&&e.stopPropagation){e.stopPropagation()}},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&e.stopImmediatePropagation){e.stopImmediatePropagation()}this.stopPropagation()}};jQuery.each({mouseenter:\"mouseover\",mouseleave:\"mouseout\",pointerenter:\"pointerover\",pointerleave:\"pointerout\"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||related!==target&&!jQuery.contains(target,related)){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix}return ret}}});if(!support.focusinBubbles){jQuery.each({focus:\"focusin\",blur:\"focusout\"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event),true)};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=data_priv.access(doc,fix);if(!attaches){doc.addEventListener(orig,handler,true)}data_priv.access(doc,fix,(attaches||0)+1)},teardown:function(){var doc=this.ownerDocument||this,attaches=data_priv.access(doc,fix)-1;if(!attaches){doc.removeEventListener(orig,handler,true);data_priv.remove(doc,fix)}else{data_priv.access(doc,fix,attaches)}}}})}jQuery.fn.extend({on:function(types,selector,data,fn,one){var origFn,type;if(typeof types===\"object\"){if(typeof selector!==\"string\"){data=data||selector;selector=undefined}for(type in types){this.on(type,selector,data,types[type],one)}return this}if(data==null&&fn==null){fn=selector;data=selector=undefined}else if(fn==null){if(typeof selector===\"string\"){fn=data;data=undefined}else{fn=data;data=selector;selector=undefined}}if(fn===false){fn=returnFalse}else if(!fn){return this}if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments)};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++)}return this.each(function(){jQuery.event.add(this,types,fn,data,selector)})},one:function(types,selector,data,fn){return this.on(types,selector,data,fn,1)},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+\".\"+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this}if(typeof types===\"object\"){for(type in types){this.off(type,selector,types[type])}return this}if(selector===false||typeof selector===\"function\"){fn=selector;selector=undefined}if(fn===false){fn=returnFalse}return this.each(function(){jQuery.event.remove(this,types,fn,selector)})},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true)}}});var rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,rtagName=/<([\\w:]+)/,rhtml=/<|&#?\\w+;/,rnoInnerhtml=/<(?:script|style|link)/i,rchecked=/checked\\s*(?:[^=]|=\\s*.checked.)/i,rscriptType=/^$|\\/(?:java|ecma)script/i,rscriptTypeMasked=/^true\\/(.*)/,rcleanScript=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,wrapMap={option:[1,\"<select multiple='multiple'>\",\"</select>\"],thead:[1,\"<table>\",\"</table>\"],col:[2,\"<table><colgroup>\",\"</colgroup></table>\"],tr:[2,\"<table><tbody>\",\"</tbody></table>\"],td:[3,\"<table><tbody><tr>\",\"</tr></tbody></table>\"],_default:[0,\"\",\"\"]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;function manipulationTarget(elem,content){return jQuery.nodeName(elem,\"table\")&&jQuery.nodeName(content.nodeType!==11?content:content.firstChild,\"tr\")?elem.getElementsByTagName(\"tbody\")[0]||elem.appendChild(elem.ownerDocument.createElement(\"tbody\")):elem}function disableScript(elem){elem.type=(elem.getAttribute(\"type\")!==null)+\"/\"+elem.type;return elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);if(match){elem.type=match[1]}else{elem.removeAttribute(\"type\")}return elem}function setGlobalEval(elems,refElements){var i=0,l=elems.length;for(;i<l;i++){data_priv.set(elems[i],\"globalEval\",!refElements||data_priv.get(refElements[i],\"globalEval\"))}}function cloneCopyEvent(src,dest){var i,l,type,pdataOld,pdataCur,udataOld,udataCur,events;if(dest.nodeType!==1){return}if(data_priv.hasData(src)){pdataOld=data_priv.access(src);pdataCur=data_priv.set(dest,pdataOld);events=pdataOld.events;if(events){delete pdataCur.handle;pdataCur.events={};for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i])}}}}if(data_user.hasData(src)){udataOld=data_user.access(src);udataCur=jQuery.extend({},udataOld);data_user.set(dest,udataCur)}}function getAll(context,tag){var ret=context.getElementsByTagName?context.getElementsByTagName(tag||\"*\"):context.querySelectorAll?context.querySelectorAll(tag||\"*\"):[];return tag===undefined||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],ret):ret}function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();if(nodeName===\"input\"&&rcheckableType.test(src.type)){dest.checked=src.checked}else if(nodeName===\"input\"||nodeName===\"textarea\"){dest.defaultValue=src.defaultValue}}jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(true),inPage=jQuery.contains(elem.ownerDocument,elem);if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0,l=srcElements.length;i<l;i++){fixInput(srcElements[i],destElements[i])}}if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0,l=srcElements.length;i<l;i++){cloneCopyEvent(srcElements[i],destElements[i])}}else{cloneCopyEvent(elem,clone)}}destElements=getAll(clone,\"script\");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,\"script\"))}return clone},buildFragment:function(elems,context,scripts,selection){var elem,tmp,tag,wrap,contains,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(jQuery.type(elem)===\"object\"){jQuery.merge(nodes,elem.nodeType?[elem]:elem)}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem))}else{tmp=tmp||fragment.appendChild(context.createElement(\"div\"));tag=(rtagName.exec(elem)||[\"\",\"\"])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+elem.replace(rxhtmlTag,\"<$1></$2>\")+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild}jQuery.merge(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent=\"\"}}}fragment.textContent=\"\";i=0;while(elem=nodes[i++]){if(selection&&jQuery.inArray(elem,selection)!==-1){continue}contains=jQuery.contains(elem.ownerDocument,elem);tmp=getAll(fragment.appendChild(elem),\"script\");if(contains){setGlobalEval(tmp)}if(scripts){j=0;while(elem=tmp[j++]){if(rscriptType.test(elem.type||\"\")){scripts.push(elem)}}}}return fragment},cleanData:function(elems){var data,elem,type,key,special=jQuery.event.special,i=0;for(;(elem=elems[i])!==undefined;i++){if(jQuery.acceptData(elem)){key=elem[data_priv.expando];if(key&&(data=data_priv.cache[key])){if(data.events){for(type in data.events){if(special[type]){jQuery.event.remove(elem,type)}else{jQuery.removeEvent(elem,type,data.handle)}}}if(data_priv.cache[key]){delete data_priv.cache[key]}}}delete data_user.cache[elem[data_user.expando]]}}});jQuery.fn.extend({text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().each(function(){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.textContent=value}})},null,value,arguments.length)},append:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem)}})},prepend:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild)}})},before:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this)}})},after:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling)}})},remove:function(selector,keepData){var elem,elems=selector?jQuery.filter(selector,this):this,i=0;for(;(elem=elems[i])!=null;i++){if(!keepData&&elem.nodeType===1){jQuery.cleanData(getAll(elem))}if(elem.parentNode){if(keepData&&jQuery.contains(elem.ownerDocument,elem)){setGlobalEval(getAll(elem,\"script\"))}elem.parentNode.removeChild(elem)}}return this},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.textContent=\"\"}}return this},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined&&elem.nodeType===1){return elem.innerHTML}if(typeof value===\"string\"&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||[\"\",\"\"])[1].toLowerCase()]){value=value.replace(rxhtmlTag,\"<$1></$2>\");try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value}}elem=0}catch(e){}}if(elem){this.empty().append(value)}},null,value,arguments.length)},replaceWith:function(){var arg=arguments[0];this.domManip(arguments,function(elem){arg=this.parentNode;jQuery.cleanData(getAll(this));if(arg){arg.replaceChild(elem,this)}});return arg&&(arg.length||arg.nodeType)?this:this.remove()},detach:function(selector){return this.remove(selector,true)},domManip:function(args,callback){args=concat.apply([],args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=this.length,set=this,iNoClone=l-1,value=args[0],isFunction=jQuery.isFunction(value);if(isFunction||l>1&&typeof value===\"string\"&&!support.checkClone&&rchecked.test(value)){return this.each(function(index){var self=set.eq(index);if(isFunction){args[0]=value.call(this,index,self.html())}self.domManip(args,callback)})}if(l){fragment=jQuery.buildFragment(args,this[0].ownerDocument,false,this);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first}if(first){scripts=jQuery.map(getAll(fragment,\"script\"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,\"script\"))}}callback.call(this[i],node,i)}if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||\"\")&&!data_priv.access(node,\"globalEval\")&&jQuery.contains(doc,node)){if(node.src){if(jQuery._evalUrl){jQuery._evalUrl(node.src)}}else{jQuery.globalEval(node.textContent.replace(rcleanScript,\"\"))}}}}}}return this}});jQuery.each({appendTo:\"append\",prependTo:\"prepend\",insertBefore:\"before\",insertAfter:\"after\",replaceAll:\"replaceWith\"},function(name,original){jQuery.fn[name]=function(selector){var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get())}return this.pushStack(ret)}});var iframe,elemdisplay={};function actualDisplay(name,doc){var style,elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=window.getDefaultComputedStyle&&(style=window.getDefaultComputedStyle(elem[0]))?style.display:jQuery.css(elem[0],\"display\");elem.detach();return display}function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];if(!display){display=actualDisplay(nodeName,doc);if(display===\"none\"||!display){iframe=(iframe||jQuery(\"<iframe frameborder='0' width='0' height='0'/>\")).appendTo(doc.documentElement);doc=iframe[0].contentDocument;doc.write();doc.close();display=actualDisplay(nodeName,doc);iframe.detach()}elemdisplay[nodeName]=display}return display}var rmargin=/^margin/;var rnumnonpx=new RegExp(\"^(\"+pnum+\")(?!px)[a-z%]+$\",\"i\");var getStyles=function(elem){if(elem.ownerDocument.defaultView.opener){return elem.ownerDocument.defaultView.getComputedStyle(elem,null)}return window.getComputedStyle(elem,null)};function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;computed=computed||getStyles(elem);if(computed){ret=computed.getPropertyValue(name)||computed[name]}if(computed){if(ret===\"\"&&!jQuery.contains(elem.ownerDocument,elem)){ret=jQuery.style(elem,name)}if(rnumnonpx.test(ret)&&rmargin.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth}}return ret!==undefined?ret+\"\":ret}function addGetHookIf(conditionFn,hookFn){return{get:function(){if(conditionFn()){delete this.get;return}return(this.get=hookFn).apply(this,arguments)}}}(function(){var pixelPositionVal,boxSizingReliableVal,docElem=document.documentElement,container=document.createElement(\"div\"),div=document.createElement(\"div\");if(!div.style){return}div.style.backgroundClip=\"content-box\";div.cloneNode(true).style.backgroundClip=\"\";support.clearCloneStyle=div.style.backgroundClip===\"content-box\";container.style.cssText=\"border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;\"+\"position:absolute\";container.appendChild(div);function computePixelPositionAndBoxSizingReliable(){div.style.cssText=\"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;\"+\"box-sizing:border-box;display:block;margin-top:1%;top:1%;\"+\"border:1px;padding:1px;width:4px;position:absolute\";div.innerHTML=\"\";docElem.appendChild(container);var divStyle=window.getComputedStyle(div,null);pixelPositionVal=divStyle.top!==\"1%\";boxSizingReliableVal=divStyle.width===\"4px\";docElem.removeChild(container)}if(window.getComputedStyle){jQuery.extend(support,{pixelPosition:function(){computePixelPositionAndBoxSizingReliable();return pixelPositionVal},boxSizingReliable:function(){if(boxSizingReliableVal==null){computePixelPositionAndBoxSizingReliable()}return boxSizingReliableVal},reliableMarginRight:function(){var ret,marginDiv=div.appendChild(document.createElement(\"div\"));marginDiv.style.cssText=div.style.cssText=\"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\"+\"box-sizing:content-box;display:block;margin:0;border:0;padding:0\";marginDiv.style.marginRight=marginDiv.style.width=\"0\";div.style.width=\"1px\";docElem.appendChild(container);ret=!parseFloat(window.getComputedStyle(marginDiv,null).marginRight);docElem.removeChild(container);div.removeChild(marginDiv);return ret}})}})();jQuery.swap=function(elem,options,callback,args){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name]}ret=callback.apply(elem,args||[]);for(name in options){elem.style[name]=old[name]}return ret};var rdisplayswap=/^(none|table(?!-c[ea]).+)/,rnumsplit=new RegExp(\"^(\"+pnum+\")(.*)$\",\"i\"),rrelNum=new RegExp(\"^([+-])=(\"+pnum+\")\",\"i\"),cssShow={position:\"absolute\",visibility:\"hidden\",display:\"block\"},cssNormalTransform={letterSpacing:\"0\",fontWeight:\"400\"},cssPrefixes=[\"Webkit\",\"O\",\"Moz\",\"ms\"];function vendorPropName(style,name){if(name in style){return name}var capName=name[0].toUpperCase()+name.slice(1),origName=name,i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in style){return name}}return origName}function setPositiveNumber(elem,value,subtract){var matches=rnumsplit.exec(value);return matches?Math.max(0,matches[1]-(subtract||0))+(matches[2]||\"px\"):value}function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){var i=extra===(isBorderBox?\"border\":\"content\")?4:name===\"width\"?1:0,val=0;for(;i<4;i+=2){if(extra===\"margin\"){val+=jQuery.css(elem,extra+cssExpand[i],true,styles)}if(isBorderBox){if(extra===\"content\"){val-=jQuery.css(elem,\"padding\"+cssExpand[i],true,styles)}if(extra!==\"margin\"){val-=jQuery.css(elem,\"border\"+cssExpand[i]+\"Width\",true,styles)}}else{val+=jQuery.css(elem,\"padding\"+cssExpand[i],true,styles);if(extra!==\"padding\"){val+=jQuery.css(elem,\"border\"+cssExpand[i]+\"Width\",true,styles)}}}return val}function getWidthOrHeight(elem,name,extra){var valueIsBorderBox=true,val=name===\"width\"?elem.offsetWidth:elem.offsetHeight,styles=getStyles(elem),isBorderBox=jQuery.css(elem,\"boxSizing\",false,styles)===\"border-box\";if(val<=0||val==null){val=curCSS(elem,name,styles);if(val<0||val==null){val=elem.style[name]}if(rnumnonpx.test(val)){return val}valueIsBorderBox=isBorderBox&&(support.boxSizingReliable()||val===elem.style[name]);val=parseFloat(val)||0}return val+augmentWidthOrHeight(elem,name,extra||(isBorderBox?\"border\":\"content\"),valueIsBorderBox,styles)+\"px\"}function showHide(elements,show){var display,elem,hidden,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue}values[index]=data_priv.get(elem,\"olddisplay\");display=elem.style.display;if(show){if(!values[index]&&display===\"none\"){elem.style.display=\"\"}if(elem.style.display===\"\"&&isHidden(elem)){values[index]=data_priv.access(elem,\"olddisplay\",defaultDisplay(elem.nodeName))}}else{hidden=isHidden(elem);if(display!==\"none\"||!hidden){data_priv.set(elem,\"olddisplay\",hidden?display:jQuery.css(elem,\"display\"))}}}for(index=0;index<length;index++){elem=elements[index];if(!elem.style){continue}if(!show||elem.style.display===\"none\"||elem.style.display===\"\"){elem.style.display=show?values[index]||\"\":\"none\"}}return elements}jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,\"opacity\");return ret===\"\"?\"1\":ret}}}},cssNumber:{columnCount:true,fillOpacity:true,flexGrow:true,flexShrink:true,fontWeight:true,lineHeight:true,opacity:true,order:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{float:\"cssFloat\"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return}var ret,type,hooks,origName=jQuery.camelCase(name),style=elem.style;name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type===\"string\"&&(ret=rrelNum.exec(value))){value=(ret[1]+1)*ret[2]+parseFloat(jQuery.css(elem,name));type=\"number\"}if(value==null||value!==value){return}if(type===\"number\"&&!jQuery.cssNumber[origName]){value+=\"px\"}if(!support.clearCloneStyle&&value===\"\"&&name.indexOf(\"background\")===0){style[name]=\"inherit\"}if(!hooks||!(\"set\"in hooks)||(value=hooks.set(elem,value,extra))!==undefined){style[name]=value}}else{if(hooks&&\"get\"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret}return style[name]}},css:function(elem,name,extra,styles){var val,num,hooks,origName=jQuery.camelCase(name);name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(elem.style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&\"get\"in hooks){val=hooks.get(elem,true,extra)}if(val===undefined){val=curCSS(elem,name,styles)}if(val===\"normal\"&&name in cssNormalTransform){val=cssNormalTransform[name]}if(extra===\"\"||extra){num=parseFloat(val);return extra===true||jQuery.isNumeric(num)?num||0:val}return val}});jQuery.each([\"height\",\"width\"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,\"display\"))&&elem.offsetWidth===0?jQuery.swap(elem,cssShow,function(){return getWidthOrHeight(elem,name,extra)}):getWidthOrHeight(elem,name,extra)}},set:function(elem,value,extra){var styles=extra&&getStyles(elem);return setPositiveNumber(elem,value,extra?augmentWidthOrHeight(elem,name,extra,jQuery.css(elem,\"boxSizing\",false,styles)===\"border-box\",styles):0)}}});jQuery.cssHooks.marginRight=addGetHookIf(support.reliableMarginRight,function(elem,computed){if(computed){return jQuery.swap(elem,{display:\"inline-block\"},curCSS,[elem,\"marginRight\"])}});jQuery.each({margin:\"\",padding:\"\",border:\"Width\"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value===\"string\"?value.split(\" \"):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0]}return expanded}};if(!rmargin.test(prefix)){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(jQuery.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles)}return map}return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name)},name,value,arguments.length>1)},show:function(){return showHide(this,true)},hide:function(){return showHide(this)},toggle:function(state){if(typeof state===\"boolean\"){return state?this.show():this.hide()}return this.each(function(){if(isHidden(this)){jQuery(this).show()}else{jQuery(this).hide()}})}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing)}jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||\"swing\";this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?\"\":\"px\")},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this)},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration)}else{this.pos=eased=percent}this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this)}if(hooks&&hooks.set){hooks.set(this)}else{Tween.propHooks._default.set(this)}return this}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem[tween.prop]!=null&&(!tween.elem.style||tween.elem.style[tween.prop]==null)){return tween.elem[tween.prop]}result=jQuery.css(tween.elem,tween.prop,\"\");return!result||result===\"auto\"?0:result},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween)}else if(tween.elem.style&&(tween.elem.style[jQuery.cssProps[tween.prop]]!=null||jQuery.cssHooks[tween.prop])){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit)}else{tween.elem[tween.prop]=tween.now}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now}}};jQuery.easing={linear:function(p){return p},swing:function(p){return.5-Math.cos(p*Math.PI)/2}};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=new RegExp(\"^(?:([+-])=|)(\"+pnum+\")([a-z%]*)$\",\"i\"),rrun=/queueHooks$/,animationPrefilters=[defaultPrefilter],tweeners={\"*\":[function(prop,value){var tween=this.createTween(prop,value),target=tween.cur(),parts=rfxnum.exec(value),unit=parts&&parts[3]||(jQuery.cssNumber[prop]?\"\":\"px\"),start=(jQuery.cssNumber[prop]||unit!==\"px\"&&+target)&&rfxnum.exec(jQuery.css(tween.elem,prop)),scale=1,maxIterations=20;if(start&&start[3]!==unit){unit=unit||start[3];parts=parts||[];start=+target||1;do{scale=scale||\".5\";start=start/scale;jQuery.style(tween.elem,prop,start+unit)}while(scale!==(scale=tween.cur()/target)&&scale!==1&&--maxIterations)}if(parts){start=tween.start=+start||+target||0;tween.unit=unit;tween.end=parts[1]?start+(parts[1]+1)*parts[2]:+parts[2]}return tween}]};function createFxNow(){setTimeout(function(){fxNow=undefined});return fxNow=jQuery.now()}function genFx(type,includeWidth){var which,i=0,attrs={height:type};includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs[\"margin\"+which]=attrs[\"padding\"+which]=type}if(includeWidth){attrs.opacity=attrs.width=type}return attrs}function createTween(value,prop,animation){var tween,collection=(tweeners[prop]||[]).concat(tweeners[\"*\"]),index=0,length=collection.length;for(;index<length;index++){if(tween=collection[index].call(animation,prop,value)){return tween}}}function defaultPrefilter(elem,props,opts){var prop,value,toggle,tween,hooks,oldfire,display,checkDisplay,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHidden(elem),dataShow=data_priv.get(elem,\"fxshow\");if(!opts.queue){hooks=jQuery._queueHooks(elem,\"fx\");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire()}}}hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,\"fx\").length){hooks.empty.fire()}})})}if(elem.nodeType===1&&(\"height\"in props||\"width\"in props)){opts.overflow=[style.overflow,style.overflowX,style.overflowY];display=jQuery.css(elem,\"display\");checkDisplay=display===\"none\"?data_priv.get(elem,\"olddisplay\")||defaultDisplay(elem.nodeName):display;if(checkDisplay===\"inline\"&&jQuery.css(elem,\"float\")===\"none\"){style.display=\"inline-block\"}}if(opts.overflow){style.overflow=\"hidden\";anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2]})}for(prop in props){value=props[prop];if(rfxtypes.exec(value)){delete props[prop];toggle=toggle||value===\"toggle\";if(value===(hidden?\"hide\":\"show\")){if(value===\"show\"&&dataShow&&dataShow[prop]!==undefined){hidden=true}else{continue}}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop)}else{display=undefined}}if(!jQuery.isEmptyObject(orig)){if(dataShow){if(\"hidden\"in dataShow){hidden=dataShow.hidden}}else{dataShow=data_priv.access(elem,\"fxshow\",{})}if(toggle){dataShow.hidden=!hidden}if(hidden){jQuery(elem).show()}else{anim.done(function(){jQuery(elem).hide()})}anim.done(function(){var prop;data_priv.remove(elem,\"fxshow\");for(prop in orig){jQuery.style(elem,prop,orig[prop])}});for(prop in orig){tween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=tween.start;if(hidden){tween.end=tween.start;tween.start=prop===\"width\"||prop===\"height\"?1:0}}}}else if((display===\"none\"?defaultDisplay(elem.nodeName):display)===\"inline\"){style.display=display}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=jQuery.camelCase(index);easing=specialEasing[name];value=props[index];if(jQuery.isArray(value)){easing=value[1];value=props[index]=value[0]}if(index!==name){props[name]=value;delete props[index]}hooks=jQuery.cssHooks[name];if(hooks&&\"expand\"in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing}}}else{specialEasing[name]=easing}}}function Animation(elem,properties,options){var result,stopped,index=0,length=animationPrefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem}),tick=function(){if(stopped){return false}var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent)}deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining}else{deferred.resolveWith(elem,[animation]);return false}},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{}},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this}stopped=true;for(;index<length;index++){animation.tweens[index].run(1)}if(gotoEnd){deferred.resolveWith(elem,[animation,gotoEnd])}else{deferred.rejectWith(elem,[animation,gotoEnd])}return this}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=animationPrefilters[index].call(animation,elem,props,animation.opts);if(result){return result}}jQuery.map(props,createTween,animation);if(jQuery.isFunction(animation.opts.start)){animation.opts.start.call(elem,animation)}jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always)}jQuery.Animation=jQuery.extend(Animation,{tweener:function(props,callback){if(jQuery.isFunction(props)){callback=props;props=[\"*\"]}else{props=props.split(\" \")}var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];tweeners[prop]=tweeners[prop]||[];tweeners[prop].unshift(callback)}},prefilter:function(callback,prepend){if(prepend){animationPrefilters.unshift(callback)}else{animationPrefilters.push(callback)}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed===\"object\"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration===\"number\"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;if(opt.queue==null||opt.queue===true){opt.queue=\"fx\"}opt.old=opt.complete;opt.complete=function(){if(jQuery.isFunction(opt.old)){opt.old.call(this)}if(opt.queue){jQuery.dequeue(this,opt.queue)}};return opt};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHidden).css(\"opacity\",0).show().end().animate({opacity:to},speed,easing,callback)},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||data_priv.get(this,\"finish\")){anim.stop(true)}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation)},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd)};if(typeof type!==\"string\"){gotoEnd=clearQueue;clearQueue=type;type=undefined}if(clearQueue&&type!==false){this.queue(type||\"fx\",[])}return this.each(function(){var dequeue=true,index=type!=null&&type+\"queueHooks\",timers=jQuery.timers,data=data_priv.get(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index])}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index])}}}for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1)}}if(dequeue||!gotoEnd){jQuery.dequeue(this,type)}})},finish:function(type){if(type!==false){type=type||\"fx\"}return this.each(function(){var index,data=data_priv.get(this),queue=data[type+\"queue\"],hooks=data[type+\"queueHooks\"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true)}for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1)}}for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this)}}delete data.finish})}});jQuery.each([\"toggle\",\"show\",\"hide\"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed===\"boolean\"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback)}});jQuery.each({slideDown:genFx(\"show\"),slideUp:genFx(\"hide\"),slideToggle:genFx(\"toggle\"),fadeIn:{opacity:\"show\"},fadeOut:{opacity:\"hide\"},fadeToggle:{opacity:\"toggle\"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback)}});jQuery.timers=[];jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;fxNow=jQuery.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1)}}if(!timers.length){jQuery.fx.stop()}fxNow=undefined};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);if(timer()){jQuery.fx.start()}else{jQuery.timers.pop()}};jQuery.fx.interval=13;jQuery.fx.start=function(){if(!timerId){timerId=setInterval(jQuery.fx.tick,jQuery.fx.interval)}};jQuery.fx.stop=function(){clearInterval(timerId);timerId=null};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||\"fx\";return this.queue(type,function(next,hooks){var timeout=setTimeout(next,time);hooks.stop=function(){clearTimeout(timeout)}})};(function(){var input=document.createElement(\"input\"),select=document.createElement(\"select\"),opt=select.appendChild(document.createElement(\"option\"));input.type=\"checkbox\";support.checkOn=input.value!==\"\";support.optSelected=opt.selected;select.disabled=true;support.optDisabled=!opt.disabled;input=document.createElement(\"input\");input.value=\"t\";input.type=\"radio\";support.radioValue=input.value===\"t\"})();var nodeHook,boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})}});jQuery.extend({attr:function(elem,name,value){var hooks,ret,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return}if(typeof elem.getAttribute===strundefined){return jQuery.prop(elem,name,value)}if(nType!==1||!jQuery.isXMLDoc(elem)){name=name.toLowerCase();hooks=jQuery.attrHooks[name]||(jQuery.expr.match.bool.test(name)?boolHook:nodeHook)}if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name)}else if(hooks&&\"set\"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret}else{elem.setAttribute(name,value+\"\");return value}}else if(hooks&&\"get\"in hooks&&(ret=hooks.get(elem,name))!==null){return ret}else{ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret}},removeAttr:function(elem,value){var name,propName,i=0,attrNames=value&&value.match(rnotwhite);if(attrNames&&elem.nodeType===1){while(name=attrNames[i++]){propName=jQuery.propFix[name]||name;if(jQuery.expr.match.bool.test(name)){elem[propName]=false}elem.removeAttribute(name)}}},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value===\"radio\"&&jQuery.nodeName(elem,\"input\")){var val=elem.value;elem.setAttribute(\"type\",value);if(val){elem.value=val}return value}}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name)}else{elem.setAttribute(name,name)}return name}};jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle;if(!isXML){handle=attrHandle[name];attrHandle[name]=ret;ret=getter(elem,name,isXML)!=null?name.toLowerCase():null;attrHandle[name]=handle}return ret}});var rfocusable=/^(?:input|select|textarea|button)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1)},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name]})}});jQuery.extend({propFix:{for:\"htmlFor\",class:\"className\"},prop:function(elem,name,value){var ret,hooks,notxml,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return}notxml=nType!==1||!jQuery.isXMLDoc(elem);if(notxml){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name]}if(value!==undefined){return hooks&&\"set\"in hooks&&(ret=hooks.set(elem,value,name))!==undefined?ret:elem[name]=value}else{return hooks&&\"get\"in hooks&&(ret=hooks.get(elem,name))!==null?ret:elem[name]}},propHooks:{tabIndex:{get:function(elem){return elem.hasAttribute(\"tabindex\")||rfocusable.test(elem.nodeName)||elem.href?elem.tabIndex:-1}}}});if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent&&parent.parentNode){parent.parentNode.selectedIndex}return null}}}jQuery.each([\"tabIndex\",\"readOnly\",\"maxLength\",\"cellSpacing\",\"cellPadding\",\"rowSpan\",\"colSpan\",\"useMap\",\"frameBorder\",\"contentEditable\"],function(){jQuery.propFix[this.toLowerCase()]=this});var rclass=/[\\t\\r\\n\\f]/g;jQuery.fn.extend({addClass:function(value){var classes,elem,cur,clazz,j,finalValue,proceed=typeof value===\"string\"&&value,i=0,len=this.length;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,this.className))})}if(proceed){classes=(value||\"\").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(\" \"+elem.className+\" \").replace(rclass,\" \"):\" \");if(cur){j=0;while(clazz=classes[j++]){if(cur.indexOf(\" \"+clazz+\" \")<0){cur+=clazz+\" \"}}finalValue=jQuery.trim(cur);if(elem.className!==finalValue){elem.className=finalValue}}}}return this},removeClass:function(value){var classes,elem,cur,clazz,j,finalValue,proceed=arguments.length===0||typeof value===\"string\"&&value,i=0,len=this.length;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,this.className))})}if(proceed){classes=(value||\"\").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(\" \"+elem.className+\" \").replace(rclass,\" \"):\"\");if(cur){j=0;while(clazz=classes[j++]){while(cur.indexOf(\" \"+clazz+\" \")>=0){cur=cur.replace(\" \"+clazz+\" \",\" \")}}finalValue=value?jQuery.trim(cur):\"\";if(elem.className!==finalValue){elem.className=finalValue}}}}return this},toggleClass:function(value,stateVal){var type=typeof value;if(typeof stateVal===\"boolean\"&&type===\"string\"){return stateVal?this.addClass(value):this.removeClass(value)}if(jQuery.isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,this.className,stateVal),stateVal)})}return this.each(function(){if(type===\"string\"){var className,i=0,self=jQuery(this),classNames=value.match(rnotwhite)||[];while(className=classNames[i++]){if(self.hasClass(className)){self.removeClass(className)}else{self.addClass(className)}}}else if(type===strundefined||type===\"boolean\"){if(this.className){data_priv.set(this,\"__className__\",this.className)}this.className=this.className||value===false?\"\":data_priv.get(this,\"__className__\")||\"\"}})},hasClass:function(selector){var className=\" \"+selector+\" \",i=0,l=this.length;for(;i<l;i++){if(this[i].nodeType===1&&(\" \"+this[i].className+\" \").replace(rclass,\" \").indexOf(className)>=0){return true}}return false}});var rreturn=/\\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,isFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&\"get\"in hooks&&(ret=hooks.get(elem,\"value\"))!==undefined){return ret}ret=elem.value;return typeof ret===\"string\"?ret.replace(rreturn,\"\"):ret==null?\"\":ret}return}isFunction=jQuery.isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return}if(isFunction){val=value.call(this,i,jQuery(this).val())}else{val=value}if(val==null){val=\"\"}else if(typeof val===\"number\"){val+=\"\"}else if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?\"\":value+\"\"})}hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!(\"set\"in hooks)||hooks.set(this,val,\"value\")===undefined){this.value=val}})}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,\"value\");return val!=null?val:jQuery.trim(jQuery.text(elem))}},select:{get:function(elem){var value,option,options=elem.options,index=elem.selectedIndex,one=elem.type===\"select-one\"||index<0,values=one?null:[],max=one?index+1:options.length,i=index<0?max:one?index:0;for(;i<max;i++){option=options[i];if((option.selected||i===index)&&(support.optDisabled?!option.disabled:option.getAttribute(\"disabled\")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,\"optgroup\"))){value=jQuery(option).val();if(one){return value}values.push(value)}}return values},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if(option.selected=jQuery.inArray(option.value,values)>=0){optionSet=true}}if(!optionSet){elem.selectedIndex=-1}return values}}}});jQuery.each([\"radio\",\"checkbox\"],function(){jQuery.valHooks[this]={set:function(elem,value){if(jQuery.isArray(value)){return elem.checked=jQuery.inArray(jQuery(elem).val(),value)>=0}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute(\"value\")===null?\"on\":elem.value}}});jQuery.each((\"blur focus focusin focusout load resize scroll unload click dblclick \"+\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \"+\"change select submit keydown keypress keyup error contextmenu\").split(\" \"),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name)}});jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)},bind:function(types,data,fn){return this.on(types,null,data,fn)},unbind:function(types,fn){return this.off(types,null,fn)},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn)},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,\"**\"):this.off(types,selector||\"**\",fn)}});var nonce=jQuery.now();var rquery=/\\?/;jQuery.parseJSON=function(data){return JSON.parse(data+\"\")};jQuery.parseXML=function(data){var xml,tmp;if(!data||typeof data!==\"string\"){return null}try{tmp=new DOMParser;xml=tmp.parseFromString(data,\"text/xml\")}catch(e){xml=undefined}if(!xml||xml.getElementsByTagName(\"parsererror\").length){jQuery.error(\"Invalid XML: \"+data)}return xml};var rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \\t]*([^\\r\\n]*)$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\\/\\//,rurl=/^([\\w.+-]+:)(?:\\/\\/(?:[^\\/?#]*@|)([^\\/?#:]*)(?::(\\d+)|)|)/,prefilters={},transports={},allTypes=\"*/\".concat(\"*\"),ajaxLocation=window.location.href,ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!==\"string\"){func=dataTypeExpression;dataTypeExpression=\"*\"}var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnotwhite)||[];if(jQuery.isFunction(func)){while(dataType=dataTypes[i++]){if(dataType[0]===\"+\"){dataType=dataType.slice(1)||\"*\";(structure[dataType]=structure[dataType]||[]).unshift(func)}else{(structure[dataType]=structure[dataType]||[]).push(func)}}}}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=structure===transports;function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport===\"string\"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false}else if(seekingTransport){return!(selected=dataTypeOrTransport)}});return selected}return inspect(options.dataTypes[0])||!inspected[\"*\"]&&inspect(\"*\")}function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:deep||(deep={}))[key]=src[key]}}if(deep){jQuery.extend(true,target,deep)}return target}function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]===\"*\"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader(\"Content-Type\")}}if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}}}if(dataTypes[0]in responses){finalDataType=dataTypes[0]}else{for(type in responses){if(!dataTypes[0]||s.converters[type+\" \"+dataTypes[0]]){finalDataType=type;break}if(!firstDataType){firstDataType=type}}finalDataType=finalDataType||firstDataType}if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType)}return responses[finalDataType]}}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv]}}current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response}if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType)}prev=current;current=dataTypes.shift();if(current){if(current===\"*\"){current=prev}else if(prev!==\"*\"&&prev!==current){conv=converters[prev+\" \"+current]||converters[\"* \"+current];if(!conv){for(conv2 in converters){tmp=conv2.split(\" \");if(tmp[1]===current){conv=converters[prev+\" \"+tmp[0]]||converters[\"* \"+tmp[0]];if(conv){if(conv===true){conv=converters[conv2]}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1])}break}}}}if(conv!==true){if(conv&&s[\"throws\"]){response=conv(response)}else{try{response=conv(response)}catch(e){return{state:\"parsererror\",error:conv?e:\"No conversion from \"+prev+\" to \"+current}}}}}}}return{state:\"success\",data:response}}jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ajaxLocation,type:\"GET\",isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,processData:true,async:true,contentType:\"application/x-www-form-urlencoded; charset=UTF-8\",accepts:{\"*\":allTypes,text:\"text/plain\",html:\"text/html\",xml:\"application/xml, text/xml\",json:\"application/json, text/javascript\"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:\"responseXML\",text:\"responseText\",json:\"responseJSON\"},converters:{\"* text\":String,\"text html\":true,\"text json\":jQuery.parseJSON,\"text xml\":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url===\"object\"){options=url;url=undefined}options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,parts,fireGlobals,i,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks(\"once memory\"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},state=0,strAbort=\"canceled\",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while(match=rheaders.exec(responseHeadersString)){responseHeaders[match[1].toLowerCase()]=match[2]}}match=responseHeaders[key.toLowerCase()]}return match==null?null:match},getAllResponseHeaders:function(){return state===2?responseHeadersString:null},setRequestHeader:function(name,value){var lname=name.toLowerCase();if(!state){name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value}return this},overrideMimeType:function(type){if(!state){s.mimeType=type}return this},statusCode:function(map){var code;if(map){if(state<2){for(code in map){statusCode[code]=[statusCode[code],map[code]]}}else{jqXHR.always(map[jqXHR.status])}}return this},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText)}done(0,finalText);return this}};deferred.promise(jqXHR).complete=completeDeferred.add;jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;s.url=((url||s.url||ajaxLocation)+\"\").replace(rhash,\"\").replace(rprotocol,ajaxLocParts[1]+\"//\");s.type=options.method||options.type||s.method||s.type;s.dataTypes=jQuery.trim(s.dataType||\"*\").toLowerCase().match(rnotwhite)||[\"\"];if(s.crossDomain==null){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!==ajaxLocParts[1]||parts[2]!==ajaxLocParts[2]||(parts[3]||(parts[1]===\"http:\"?\"80\":\"443\"))!==(ajaxLocParts[3]||(ajaxLocParts[1]===\"http:\"?\"80\":\"443\"))))}if(s.data&&s.processData&&typeof s.data!==\"string\"){s.data=jQuery.param(s.data,s.traditional)}inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return jqXHR}fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger(\"ajaxStart\")}s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url;if(!s.hasContent){if(s.data){cacheURL=s.url+=(rquery.test(cacheURL)?\"&\":\"?\")+s.data;delete s.data}if(s.cache===false){s.url=rts.test(cacheURL)?cacheURL.replace(rts,\"$1_=\"+nonce++):cacheURL+(rquery.test(cacheURL)?\"&\":\"?\")+\"_=\"+nonce++}}if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader(\"If-Modified-Since\",jQuery.lastModified[cacheURL])}if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader(\"If-None-Match\",jQuery.etag[cacheURL])}}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader(\"Content-Type\",s.contentType)}jqXHR.setRequestHeader(\"Accept\",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!==\"*\"?\", \"+allTypes+\"; q=0.01\":\"\"):s.accepts[\"*\"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i])}if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){return jqXHR.abort()}strAbort=\"abort\";for(i in{success:1,error:1,complete:1}){jqXHR[i](s[i])}transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,\"No Transport\")}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger(\"ajaxSend\",[jqXHR,s])}if(s.async&&s.timeout>0){timeoutTimer=setTimeout(function(){jqXHR.abort(\"timeout\")},s.timeout)}try{state=1;transport.send(requestHeaders,done)}catch(e){if(state<2){done(-1,e)}else{throw e}}}function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(state===2){return}state=2;if(timeoutTimer){clearTimeout(timeoutTimer)}transport=undefined;responseHeadersString=headers||\"\";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses)}response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader(\"Last-Modified\");if(modified){jQuery.lastModified[cacheURL]=modified}modified=jqXHR.getResponseHeader(\"etag\");if(modified){jQuery.etag[cacheURL]=modified}}if(status===204||s.type===\"HEAD\"){statusText=\"nocontent\"}else if(status===304){statusText=\"notmodified\"}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error}}else{error=statusText;if(status||!statusText){statusText=\"error\";if(status<0){status=0}}}jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+\"\";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR])}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error])}jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?\"ajaxSuccess\":\"ajaxError\",[jqXHR,s,isSuccess?success:error])}completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger(\"ajaxComplete\",[jqXHR,s]);if(!--jQuery.active){jQuery.event.trigger(\"ajaxStop\")}}}return jqXHR},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,\"json\")},getScript:function(url,callback){return jQuery.get(url,undefined,callback,\"script\")}});jQuery.each([\"get\",\"post\"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined}return jQuery.ajax({url:url,type:method,dataType:type,data:data,success:callback})}});jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:\"GET\",dataType:\"script\",async:false,global:false,throws:true})};jQuery.fn.extend({wrapAll:function(html){var wrap;if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i))})}if(this[0]){wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0])}wrap.map(function(){var elem=this;while(elem.firstElementChild){elem=elem.firstElementChild}return elem}).append(this)}return this},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i))})}return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html)}else{self.append(html)}})},wrap:function(html){var isFunction=jQuery.isFunction(html);return this.each(function(i){jQuery(this).wrapAll(isFunction?html.call(this,i):html)})},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,\"body\")){jQuery(this).replaceWith(this.childNodes)}}).end()}});jQuery.expr.filters.hidden=function(elem){return elem.offsetWidth<=0&&elem.offsetHeight<=0};jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem)};var r20=/%20/g,rbracket=/\\[\\]$/,rCRLF=/\\r?\\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v)}else{buildParams(prefix+\"[\"+(typeof v===\"object\"?i:\"\")+\"]\",v,traditional,add)}})}else if(!traditional&&jQuery.type(obj)===\"object\"){for(name in obj){buildParams(prefix+\"[\"+name+\"]\",obj[name],traditional,add)}}else{add(prefix,obj)}}jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,value){value=jQuery.isFunction(value)?value():value==null?\"\":value;s[s.length]=encodeURIComponent(key)+\"=\"+encodeURIComponent(value)};if(traditional===undefined){traditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional}if(jQuery.isArray(a)||a.jquery&&!jQuery.isPlainObject(a)){jQuery.each(a,function(){add(this.name,this.value)})}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add)}}return s.join(\"&\").replace(r20,\"+\")};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,\"elements\");return elements?jQuery.makeArray(elements):this}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(\":disabled\")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type))}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,\"\\r\\n\")}}):{name:elem.name,value:val.replace(rCRLF,\"\\r\\n\")}}).get()}});jQuery.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(e){}};var xhrId=0,xhrCallbacks={},xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();if(window.attachEvent){window.attachEvent(\"onunload\",function(){for(var key in xhrCallbacks){xhrCallbacks[key]()}})}support.cors=!!xhrSupported&&\"withCredentials\"in xhrSupported;support.ajax=xhrSupported=!!xhrSupported;jQuery.ajaxTransport(function(options){var callback;if(support.cors||xhrSupported&&!options.crossDomain){return{send:function(headers,complete){var i,xhr=options.xhr(),id=++xhrId;xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i]}}if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType)}if(!options.crossDomain&&!headers[\"X-Requested-With\"]){headers[\"X-Requested-With\"]=\"XMLHttpRequest\"}for(i in headers){xhr.setRequestHeader(i,headers[i])}callback=function(type){return function(){if(callback){delete xhrCallbacks[id];callback=xhr.onload=xhr.onerror=null;if(type===\"abort\"){xhr.abort()}else if(type===\"error\"){complete(xhr.status,xhr.statusText)}else{complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,typeof xhr.responseText===\"string\"?{text:xhr.responseText}:undefined,xhr.getAllResponseHeaders())}}}};xhr.onload=callback();xhr.onerror=callback(\"error\");callback=xhrCallbacks[id]=callback(\"abort\");try{xhr.send(options.hasContent&&options.data||null)}catch(e){if(callback){throw e}}},abort:function(){if(callback){callback()}}}}});jQuery.ajaxSetup({accepts:{script:\"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\"},contents:{script:/(?:java|ecma)script/},converters:{\"text script\":function(text){jQuery.globalEval(text);return text}}});jQuery.ajaxPrefilter(\"script\",function(s){if(s.cache===undefined){s.cache=false}if(s.crossDomain){s.type=\"GET\"}});jQuery.ajaxTransport(\"script\",function(s){if(s.crossDomain){var script,callback;return{send:function(_,complete){script=jQuery(\"<script>\").prop({async:true,charset:s.scriptCharset,src:s.url}).on(\"load error\",callback=function(evt){script.remove();callback=null;if(evt){complete(evt.type===\"error\"?404:200,evt.type)}});document.head.appendChild(script[0])},abort:function(){if(callback){callback()}}}}});var oldCallbacks=[],rjsonp=/(=)\\?(?=&|$)|\\?\\?/;jQuery.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var callback=oldCallbacks.pop()||jQuery.expando+\"_\"+nonce++;this[callback]=true;return callback}});jQuery.ajaxPrefilter(\"json jsonp\",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?\"url\":typeof s.data===\"string\"&&!(s.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&rjsonp.test(s.data)&&\"data\");if(jsonProp||s.dataTypes[0]===\"jsonp\"){callbackName=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,\"$1\"+callbackName)}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?\"&\":\"?\")+s.jsonp+\"=\"+callbackName}s.converters[\"script json\"]=function(){if(!responseContainer){jQuery.error(callbackName+\" was not called\")}return responseContainer[0]};s.dataTypes[0]=\"json\";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments};jqXHR.always(function(){window[callbackName]=overwritten;if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName)}if(responseContainer&&jQuery.isFunction(overwritten)){overwritten(responseContainer[0])}responseContainer=overwritten=undefined});return\"script\"}});jQuery.parseHTML=function(data,context,keepScripts){if(!data||typeof data!==\"string\"){return null}if(typeof context===\"boolean\"){keepScripts=context;context=false}context=context||document;var parsed=rsingleTag.exec(data),scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])]}parsed=jQuery.buildFragment([data],context,scripts);if(scripts&&scripts.length){jQuery(scripts).remove()}return jQuery.merge([],parsed.childNodes)};var _load=jQuery.fn.load;jQuery.fn.load=function(url,params,callback){if(typeof url!==\"string\"&&_load){return _load.apply(this,arguments)}var selector,type,response,self=this,off=url.indexOf(\" \");if(off>=0){selector=jQuery.trim(url.slice(off));url=url.slice(0,off)}if(jQuery.isFunction(params)){callback=params;params=undefined}else if(params&&typeof params===\"object\"){type=\"POST\"}if(self.length>0){jQuery.ajax({url:url,type:type,dataType:\"html\",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery(\"<div>\").append(jQuery.parseHTML(responseText)).find(selector):responseText)}).complete(callback&&function(jqXHR,status){self.each(callback,response||[jqXHR.responseText,status,jqXHR])})}return this};jQuery.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn)}});jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length};var docElem=window.document.documentElement;function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9&&elem.defaultView}jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,\"position\"),curElem=jQuery(elem),props={};if(position===\"static\"){elem.style.position=\"relative\"}curOffset=curElem.offset();curCSSTop=jQuery.css(elem,\"top\");curCSSLeft=jQuery.css(elem,\"left\");calculatePosition=(position===\"absolute\"||position===\"fixed\")&&(curCSSTop+curCSSLeft).indexOf(\"auto\")>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0}if(jQuery.isFunction(options)){options=options.call(elem,i,curOffset)}if(options.top!=null){props.top=options.top-curOffset.top+curTop}if(options.left!=null){props.left=options.left-curOffset.left+curLeft}if(\"using\"in options){options.using.call(elem,props)}else{curElem.css(props)}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i)})}var docElem,win,elem=this[0],box={top:0,left:0},doc=elem&&elem.ownerDocument;if(!doc){return}docElem=doc.documentElement;if(!jQuery.contains(docElem,elem)){return box}if(typeof elem.getBoundingClientRect!==strundefined){box=elem.getBoundingClientRect()}win=getWindow(doc);return{top:box.top+win.pageYOffset-docElem.clientTop,left:box.left+win.pageXOffset-docElem.clientLeft}},position:function(){if(!this[0]){return}var offsetParent,offset,elem=this[0],parentOffset={top:0,left:0};if(jQuery.css(elem,\"position\")===\"fixed\"){offset=elem.getBoundingClientRect()}else{offsetParent=this.offsetParent();offset=this.offset();if(!jQuery.nodeName(offsetParent[0],\"html\")){parentOffset=offsetParent.offset()}parentOffset.top+=jQuery.css(offsetParent[0],\"borderTopWidth\",true);parentOffset.left+=jQuery.css(offsetParent[0],\"borderLeftWidth\",true)}return{top:offset.top-parentOffset.top-jQuery.css(elem,\"marginTop\",true),left:offset.left-parentOffset.left-jQuery.css(elem,\"marginLeft\",true)}},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent||docElem;while(offsetParent&&(!jQuery.nodeName(offsetParent,\"html\")&&jQuery.css(offsetParent,\"position\")===\"static\")){offsetParent=offsetParent.offsetParent}return offsetParent||docElem})}});jQuery.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(method,prop){var top=\"pageYOffset\"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win=getWindow(elem);if(val===undefined){return win?win[prop]:elem[method]}if(win){win.scrollTo(!top?val:window.pageXOffset,top?val:window.pageYOffset)}else{elem[method]=val}},method,val,arguments.length,null)}});jQuery.each([\"top\",\"left\"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+\"px\":computed}})});jQuery.each({Height:\"height\",Width:\"width\"},function(name,type){jQuery.each({padding:\"inner\"+name,content:type,\"\":\"outer\"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!==\"boolean\"),extra=defaultExtra||(margin===true||value===true?\"margin\":\"border\");return access(this,function(elem,type,value){var doc;if(jQuery.isWindow(elem)){return elem.document.documentElement[\"client\"+name]}if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body[\"scroll\"+name],doc[\"scroll\"+name],elem.body[\"offset\"+name],doc[\"offset\"+name],doc[\"client\"+name])}return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra)},type,chainable?margin:undefined,chainable,null)}})});jQuery.fn.size=function(){return this.length};jQuery.fn.andSelf=jQuery.fn.addBack;if(typeof define===\"function\"&&define.amd){define(\"jquery\",[],function(){return jQuery})}jQuery.noConflict=function(deep){if(deep&&window.jQuery===jQuery){TRjQuery=_TRjQuery}return jQuery};if(typeof noGlobal===strundefined){TRjQuery=jQuery}return jQuery});(function($){function findLine(sdpLines,prefix,substr){return findLineInRange(sdpLines,0,-1,prefix,substr)}function findLineInRange(sdpLines,startLine,endLine,prefix,substr){var realEndLine=endLine!=-1?endLine:sdpLines.length;for(var i=startLine;i<realEndLine;++i){if(sdpLines[i].indexOf(prefix)===0){if(!substr||sdpLines[i].toLowerCase().indexOf(substr.toLowerCase())!==-1){return i}}}return null}function getCodecPayloadType(sdpLine){var pattern=new RegExp(\"a=rtpmap:(\\\\d+) \\\\w+\\\\/\\\\d+\");var result=sdpLine.match(pattern);return result&&result.length==2?result[1]:null}function setDefaultCodec(mLine,payload){var elements=mLine.split(\" \");var newLine=[];var index=0;for(var i=0;i<elements.length;i++){if(index===3){newLine[index++]=payload}if(elements[i]!==payload)newLine[index++]=elements[i]}return newLine.join(\" \")}$.FSRTC=function(options){this.options=$.extend({useVideo:null,useStereo:false,userData:null,localVideo:null,screenShare:false,useCamera:\"any\",iceServers:false,videoParams:{},audioParams:{},callbacks:{onICEComplete:function(){},onICE:function(){},onOfferSDP:function(){}}},options);this.audioEnabled=true;this.videoEnabled=true;this.mediaData={SDP:null,profile:{},candidateList:[]};this.constraints={offerToReceiveAudio:this.options.useSpeak===\"none\"?false:true,offerToReceiveVideo:this.options.useVideo?true:false};if(self.options.useVideo){self.options.useVideo.style.display=\"none\"}setCompat();checkCompat()};$.FSRTC.validRes=[];$.FSRTC.prototype.useVideo=function(obj,local){var self=this;if(obj){self.options.useVideo=obj;self.options.localVideo=local;self.constraints.offerToReceiveVideo=true}else{self.options.useVideo=null;self.options.localVideo=null;self.constraints.offerToReceiveVideo=false}if(self.options.useVideo){self.options.useVideo.style.display=\"none\"}};$.FSRTC.prototype.useStereo=function(on){var self=this;self.options.useStereo=on};$.FSRTC.prototype.stereoHack=function(sdp){var self=this;if(!self.options.useStereo){return sdp}var sdpLines=sdp.split(\"\\r\\n\");var opusIndex=findLine(sdpLines,\"a=rtpmap\",\"opus/48000\"),opusPayload;if(!opusIndex){return sdp}else{opusPayload=getCodecPayloadType(sdpLines[opusIndex])}var fmtpLineIndex=findLine(sdpLines,\"a=fmtp:\"+opusPayload.toString());if(fmtpLineIndex===null){sdpLines[opusIndex]=sdpLines[opusIndex]+\"\\r\\na=fmtp:\"+opusPayload.toString()+\" stereo=1; sprop-stereo=1\"}else{sdpLines[fmtpLineIndex]=sdpLines[fmtpLineIndex].concat(\"; stereo=1; sprop-stereo=1\")}sdp=sdpLines.join(\"\\r\\n\");return sdp};$.FSRTC.prototype.candidateHack=function(sdp){var self=this;if(!self.options.browserIP){return sdp}var sdpLines=sdp.split(\"\\r\\n\");sdpLines.forEach((line,i)=>{if(line.indexOf(\"a=candidate:\")==0&&line.indexOf(\".local \")!==-1){sdpLines[i]=sdpLines[i].replace(/\\w{8}(-\\w{4}){3}-\\w{12}\\.local/,self.options.browserIP)}});sdp=sdpLines.join(\"\\r\\n\");return sdp};function setCompat(){}function checkCompat(){return true}function onStreamError(self,e){console.log(\"There has been a problem retrieving the streams - did you allow access? Check Device Resolution\",e);doCallback(self,\"onError\",e)}function onStreamSuccess(self,stream){console.log(\"Stream Success\");doCallback(self,\"onStream\",stream)}function onICE(self,candidate){self.mediaData.candidate=candidate;self.mediaData.candidateList.push(self.mediaData.candidate);doCallback(self,\"onICE\")}function doCallback(self,func,arg){if(func in self.options.callbacks){self.options.callbacks[func](self,arg)}}function onICEComplete(self,candidate){console.log(\"ICE Complete\");doCallback(self,\"onICEComplete\")}function onChannelError(self,e){console.error(\"Channel Error\",e);doCallback(self,\"onError\",e)}function onICESDP(self,sdp){self.mediaData.SDP=self.stereoHack(sdp.sdp);self.mediaData.SDP=self.candidateHack(self.mediaData.SDP);console.log(\"ICE SDP\");doCallback(self,\"onICESDP\")}function onAnswerSDP(self,sdp){self.answer.SDP=self.stereoHack(sdp.sdp);console.log(\"ICE ANSWER SDP\");doCallback(self,\"onAnswerSDP\",self.answer.SDP)}function onMessage(self,msg){console.log(\"Message\");doCallback(self,\"onICESDP\",msg)}function FSRTCattachMediaStream(element,stream){if(typeof element.srcObject!==\"undefined\"){element.srcObject=stream}else{console.error(\"Error attaching stream to element.\")}}function onRemoteStream(self,stream){if(self.options.useVideo){self.options.useVideo.style.display=\"block\";var iOS=[\"iPad\",\"iPhone\",\"iPod\"].indexOf(navigator.platform)>=0;if(iOS){self.options.useVideo.setAttribute(\"playsinline\",true);self.options.useVideo.setAttribute(\"controls\",true)}}var element=self.options.useAudio;console.log(\"REMOTE STREAM\",stream,element);FSRTCattachMediaStream(element,stream);self.remoteStream=stream}function onOfferSDP(self,sdp){self.mediaData.SDP=self.stereoHack(sdp.sdp);console.log(\"Offer SDP\");doCallback(self,\"onOfferSDP\")}$.FSRTC.prototype.answer=function(sdp,onSuccess,onError){this.peer.addAnswerSDP({type:\"answer\",sdp:sdp},onSuccess,onError)};$.FSRTC.prototype.stopPeer=function(){if(self.peer){console.log(\"stopping peer\");self.peer.stop()}};$.FSRTC.prototype.stop=function(){var self=this;if(self.options.useVideo){self.options.useVideo.style.display=\"none\";self.options.useVideo[\"src\"]=\"\"}if(self.localStream){if(typeof self.localStream.stop==\"function\"){self.localStream.stop()}else{if(self.localStream.active){var tracks=self.localStream.getTracks();console.log(tracks);tracks.forEach(function(track,index){console.log(track);track.stop()})}}self.localStream=null}if(self.options.localVideoStream){if(typeof self.options.localVideoStream.stop==\"function\"){self.options.localVideoStream.stop()}else{if(self.options.localVideoStream.active){var tracks=self.options.localVideoStream.getTracks();console.log(tracks);tracks.forEach(function(track,index){console.log(track);track.stop()})}}}if(self.peer){console.log(\"stopping peer\");self.peer.stop()}};$.FSRTC.prototype.getMute=function(){var self=this;return self.audioEnabled};$.FSRTC.prototype.setMute=function(what){var self=this;if(!self.localStream){return false}var audioTracks=self.localStream.getAudioTracks();for(var i=0,len=audioTracks.length;i<len;i++){switch(what){case\"on\":audioTracks[i].enabled=true;break;case\"off\":audioTracks[i].enabled=false;break;case\"toggle\":audioTracks[i].enabled=!audioTracks[i].enabled;default:break}self.audioEnabled=audioTracks[i].enabled}return!self.audioEnabled};$.FSRTC.prototype.getVideoMute=function(){var self=this;return self.videoEnabled};$.FSRTC.prototype.setVideoMute=function(what){var self=this;if(!self.localStream){return false}var videoTracks=self.localStream.getVideoTracks();for(var i=0,len=videoTracks.length;i<len;i++){switch(what){case\"on\":videoTracks[i].enabled=true;break;case\"off\":videoTracks[i].enabled=false;break;case\"toggle\":videoTracks[i].enabled=!videoTracks[i].enabled;default:break}self.videoEnabled=videoTracks[i].enabled}return!self.videoEnabled};$.FSRTC.prototype.createAnswer=function(params){var self=this;self.type=\"answer\";self.remoteSDP=params.sdp;console.debug(\"inbound sdp: \",params.sdp);function onSuccess(stream){self.localStream=stream;self.peer=FSRTCPeerConnection({type:self.type,attachStream:self.localStream,onICE:function(candidate){return onICE(self,candidate)},onICEComplete:function(){return onICEComplete(self)},onRemoteStream:function(stream){return onRemoteStream(self,stream)},onICESDP:function(sdp){return onICESDP(self,sdp)},onChannelError:function(e){return onChannelError(self,e)},constraints:self.constraints,iceServers:self.options.iceServers,offerSDP:{type:\"offer\",sdp:self.remoteSDP},turnServer:self.options.turnServer});onStreamSuccess(self,stream)}function onError(e){onStreamError(self,e)}var mediaParams=getMediaParams(self);console.log(\"Audio constraints\",mediaParams.audio);console.log(\"Video constraints\",mediaParams.video);if(mediaParams.audio!==false){if(self.options.useVideo&&self.options.localVideo){getUserMedia({constraints:{audio:false,video:{deviceId:params.useCamera}},localVideo:self.options.localVideo,onsuccess:function(e){self.options.localVideoStream=e;console.log(\"local video ready\")},onerror:function(e){console.error(\"local video error!\")}})}getUserMedia({constraints:{audio:mediaParams.audio,video:mediaParams.video},video:mediaParams.useVideo,onsuccess:onSuccess,onerror:onError})}else{console.log(\"没有麦克风权限,单向通话\");self.peer=FSRTCPeerConnection({type:self.type,onICE:function(candidate){return onICE(self,candidate)},onICEComplete:function(){return onICEComplete(self)},onRemoteStream:function(stream){return onRemoteStream(self,stream)},onICESDP:function(sdp){return onICESDP(self,sdp)},onChannelError:function(e){return onChannelError(self,e)},constraints:self.constraints,iceServers:self.options.iceServers,offerSDP:{type:\"offer\",sdp:self.remoteSDP},turnServer:self.options.turnServer})}};function getMediaParams(obj){var audio;if(obj.options.useMic&&obj.options.useMic===\"none\"){console.log(\"Microphone Disabled\");audio=false}else if(obj.options.videoParams&&obj.options.screenShare){console.error(\"SCREEN SHARE\",obj.options.videoParams);audio=false}else{audio={};if(obj.options.audioParams){audio=obj.options.audioParams}if(obj.options.useMic!==\"any\"){audio.deviceId={exact:obj.options.useMic}}}if(obj.options.useVideo&&obj.options.localVideo){getUserMedia({constraints:{audio:false,video:{deviceId:obj.options.useCamera}},localVideo:obj.options.localVideo,onsuccess:function(e){obj.options.localVideoStream=e;console.log(\"local video ready\")},onerror:function(e){console.error(\"local video error!\")}})}var video={};var bestFrameRate=obj.options.videoParams.vertoBestFrameRate;var minFrameRate=obj.options.videoParams.minFrameRate||15;delete obj.options.videoParams.vertoBestFrameRate;if(obj.options.screenShare){if(!obj.options.useCamera&&!!navigator.mozGetUserMedia){var dowin=window.confirm(\"Do you want to share an application window? If not you can share an entire screen.\");video={width:{min:obj.options.videoParams.minWidth,max:obj.options.videoParams.maxWidth},height:{min:obj.options.videoParams.minHeight,max:obj.options.videoParams.maxHeight},mediaSource:dowin?\"window\":\"screen\"}}else{var opt=[];if(obj.options.useCamera){opt.push({sourceId:obj.options.useCamera})}if(bestFrameRate){opt.push({minFrameRate:bestFrameRate});opt.push({maxFrameRate:bestFrameRate})}video={mandatory:obj.options.videoParams,optional:opt}}}else{video={width:{min:obj.options.videoParams.minWidth,max:obj.options.videoParams.maxWidth},height:{min:obj.options.videoParams.minHeight,max:obj.options.videoParams.maxHeight}};var useVideo=obj.options.useVideo;if(useVideo&&obj.options.useCamera&&obj.options.useCamera!==\"none\"){if(obj.options.useCamera!==\"any\"){video.deviceId=obj.options.useCamera}if(bestFrameRate){video.frameRate={ideal:bestFrameRate,min:minFrameRate,max:30}}}else{console.log(\"Camera Disabled\");video=false;useVideo=false}}return{audio:audio,video:video,useVideo:useVideo}}$.FSRTC.prototype.call=function(profile){checkCompat();var self=this;var screen=false;self.type=\"offer\";if(self.options.videoParams&&self.options.screenShare){screen=true}function onSuccess(stream){self.localStream=stream;if(screen){self.constraints.offerToReceiveVideo=false;self.constraints.offerToReceiveAudio=false;self.constraints.offerToSendAudio=false}self.peer=FSRTCPeerConnection({type:self.type,attachStream:self.localStream,onICE:function(candidate){return onICE(self,candidate)},onICEComplete:function(){return onICEComplete(self)},onRemoteStream:screen?function(stream){}:function(stream){return onRemoteStream(self,stream)},onOfferSDP:function(sdp){return onOfferSDP(self,sdp)},onICESDP:function(sdp){return onICESDP(self,sdp)},onChannelError:function(e){return onChannelError(self,e)},constraints:self.constraints,iceServers:self.options.iceServers,turnServer:self.options.turnServer});onStreamSuccess(self,stream)}function onError(e){onStreamError(self,e)}var mediaParams=getMediaParams(self);console.log(\"Audio constraints\",mediaParams.audio);console.log(\"Video constraints\",mediaParams.video);if(mediaParams.audio||mediaParams.video){getUserMedia({constraints:{audio:mediaParams.audio,video:mediaParams.video},video:mediaParams.useVideo,onsuccess:onSuccess,onerror:onError})}else{onSuccess(null)}};$.FSRTC.prototype.getScreenShare=function(){var self=this;return self.screenShareEnabled};$.FSRTC.prototype.setScreenShare=function(what,videoSender){var self=this;if(!self.localStream){return false}switch(what){case\"on\":self.screenShareEnabled=true;break;case\"off\":self.screenShareEnabled=false;break;case\"toggle\":self.screenShareEnabled=!self.screenShareEnabled;break;default:break}console.log(\"【投屏】\",\"投屏标识:\",self.screenShareEnabled,\",sender\",videoSender);if(!videoSender){console.log(\"【投屏】\",\"投屏sender获取失败\",videoSender);self.screenShareEnabled=false;alert(\"投屏调用失败\");return self.screenShareEnabled}var videoTrack00;if(self.screenShareEnabled){console.log(\"【投屏】\",\"开始投屏\");const parameters=videoSender.getParameters();if(parameters.encodings&&parameters.encodings.length>0){parameters.encodings[0].maxBitrate=25e5;parameters.encodings[0].scaleResolutionDownBy=1}console.log(\"【投屏】参数\",parameters);videoSender.setParameters(parameters).then(()=>{navigator.mediaDevices.getDisplayMedia({video:true}).then(screenStream=>{const videoElement=document.getElementById(\"share_video\");videoElement.srcObject=screenStream;videoTrack00=screenStream.getVideoTracks()[0];videoSender.replaceTrack(videoTrack00)}).catch(error=>{alert(\"浏览器不支持投屏\")})}).catch(error=>{console.error(\"Error adjusting encoding parameters:\",error)})}else{const videoElement=document.getElementById(\"share_video\");videoElement.srcObject=null;console.log(\"【投屏】\",\"切回本地视频\",self.localStream);videoTrack00=self.localStream.getVideoTracks()[0];videoSender.replaceTrack(videoTrack00)}return self.screenShareEnabled};function FSRTCPeerConnection(options){var gathering=false,done=false;var config={};var default_ice=[{urls:[\"stun:stun.l.google.com:19302\"]}];if(self.options.turnServer){default_ice.push(self.options.turnServer)}if(options.iceServers){if(typeof options.iceServers===\"boolean\"){config.iceServers=default_ice}else{config.iceServers=options.iceServers}}config.bundlePolicy=\"max-compat\";var peer=new window.RTCPeerConnection(config);openOffererChannel();var x=0;function ice_handler(){done=true;gathering=null;if(options.onICEComplete){options.onICEComplete()}if(options.type==\"offer\"){options.onICESDP(peer.localDescription)}else{if(!x&&options.onICESDP){options.onICESDP(peer.localDescription)}}}peer.onicecandidate=function(event){if(done){return}if(!gathering){gathering=setTimeout(ice_handler,1e3)}if(event){if(event.candidate){options.onICE(event.candidate)}}else{done=true;if(gathering){clearTimeout(gathering);gathering=null}ice_handler()}};if(options.attachStream)peer.addStream(options.attachStream);if(options.attachStreams&&options.attachStream.length){var streams=options.attachStreams;for(var i=0;i<streams.length;i++){peer.addStream(streams[i])}}peer.onaddstream=function(event){var remoteMediaStream=event.stream;remoteMediaStream.oninactive=function(){if(options.onRemoteStreamEnded)options.onRemoteStreamEnded(remoteMediaStream)};if(options.onRemoteStream)options.onRemoteStream(remoteMediaStream)};function createOffer(){if(!options.onOfferSDP)return;peer.createOffer(function(sessionDescription){sessionDescription.sdp=serializeSdp(sessionDescription.sdp);peer.setLocalDescription(sessionDescription);options.onOfferSDP(sessionDescription)},onSdpError,options.constraints)}function createAnswer(){if(options.type!=\"answer\")return;peer.setRemoteDescription(new window.RTCSessionDescription(options.offerSDP),onSdpSuccess,onSdpError);peer.createAnswer(function(sessionDescription){sessionDescription.sdp=serializeSdp(sessionDescription.sdp);peer.setLocalDescription(sessionDescription);if(options.onAnswerSDP){options.onAnswerSDP(sessionDescription)}},onSdpError)}if(options.onChannelMessage||!options.onChannelMessage){createOffer();createAnswer()}function setBandwidth(sdp){sdp=sdp.replace(/b=AS([^\\r\\n]+\\r\\n)/g,\"\");sdp=sdp.replace(/a=mid:data\\r\\n/g,\"a=mid:data\\r\\nb=AS:1638400\\r\\n\");return sdp}function getInteropSDP(sdp){var chars=\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\".split(\"\"),extractedChars=\"\";function getChars(){extractedChars+=chars[parseInt(Math.random()*40)]||\"\";if(extractedChars.length<40)getChars();return extractedChars}if(options.onAnswerSDP)sdp=sdp.replace(/(a=crypto:0 AES_CM_128_HMAC_SHA1_32)(.*?)(\\r\\n)/g,\"\");var inline=getChars()+\"\\r\\n\"+(extractedChars=\"\");sdp=sdp.indexOf(\"a=crypto\")==-1?sdp.replace(/c=IN/g,\"a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:\"+inline+\"c=IN\"):sdp;return sdp}function serializeSdp(sdp){return sdp}var channel;function openOffererChannel(){if(!options.onChannelMessage)return;_openOffererChannel();return}function _openOffererChannel(){channel=peer.createDataChannel(options.channel||\"RTCDataChannel\",{reliable:false});setChannelEvents()}function setChannelEvents(){channel.onmessage=function(event){if(options.onChannelMessage)options.onChannelMessage(event)};channel.onopen=function(){if(options.onChannelOpened)options.onChannelOpened(channel)};channel.onclose=function(event){if(options.onChannelClosed)options.onChannelClosed(event);console.warn(\"WebRTC DataChannel closed\",event)};channel.onerror=function(event){if(options.onChannelError)options.onChannelError(event);console.error(\"WebRTC DataChannel error\",event)}}function openAnswererChannel(){peer.ondatachannel=function(event){channel=event.channel;channel.binaryType=\"blob\";setChannelEvents()};return}function useless(){log(\"Error in fake:true\")}function onSdpSuccess(){}function onSdpError(e){if(options.onChannelError){options.onChannelError(e)}console.error(\"sdp error:\",e)}return{addAnswerSDP:function(sdp,cbSuccess,cbError){peer.setRemoteDescription(new window.RTCSessionDescription(sdp),cbSuccess?cbSuccess:onSdpSuccess,cbError?cbError:onSdpError)},addICE:function(candidate){peer.addIceCandidate(new window.RTCIceCandidate({sdpMLineIndex:candidate.sdpMLineIndex,candidate:candidate.candidate}))},peer:peer,channel:channel,sendData:function(message){if(channel){channel.send(message)}},stop:function(){peer.close();if(options.attachStream){if(typeof options.attachStream.stop==\"function\"){options.attachStream.stop()}else{let tracks=options.attachStream.getTracks();for(let track of tracks){track.stop()}}}}}}var video_constraints={};function getUserMedia(options){var n=navigator,media;n.getMedia=n.getUserMedia;n.getMedia(options.constraints||{audio:true,video:video_constraints},streaming,options.onerror||function(e){console.error(e)});function streaming(stream){if(options.localVideo){options.localVideo[\"srcObject\"]=stream;options.localVideo.style.display=\"block\"}if(options.onsuccess){options.onsuccess(stream)}media=stream}return media}$.FSRTC.resSupported=function(w,h){for(var i in $.FSRTC.validRes){if($.FSRTC.validRes[i][0]==w&&$.FSRTC.validRes[i][1]==h){return true}}return false};$.FSRTC.bestResSupported=function(){var w=0,h=0;for(var i in $.FSRTC.validRes){if($.FSRTC.validRes[i][0]>=w&&$.FSRTC.validRes[i][1]>=h){w=$.FSRTC.validRes[i][0];h=$.FSRTC.validRes[i][1]}}return[w,h]};var resList=[[160,120],[320,180],[320,240],[640,360],[640,480],[1280,720],[1920,1080]];var resI=0;var ttl=0;var checkRes=function(cam,func){if(resI>=resList.length){var res={validRes:$.FSRTC.validRes,bestResSupported:$.FSRTC.bestResSupported()};localStorage.setItem(\"res_\"+cam,JSON.stringify(res));if(func)return func(res);return}var video={};if(cam){video.deviceId={exact:cam}}let w=resList[resI][0];let h=resList[resI][1];resI++;video={width:{exact:w},height:{exact:h}};getUserMedia({constraints:{audio:ttl++==0,video:video},onsuccess:function(e){e.getTracks().forEach(function(track){track.stop()});console.info(w+\"x\"+h+\" supported.\");$.FSRTC.validRes.push([w,h]);checkRes(cam,func)},onerror:function(e){console.warn(w+\"x\"+h+\" not supported.\");checkRes(cam,func)}})};$.FSRTC.getValidRes=function(cam,func){var used=[];var cached=localStorage.getItem(\"res_\"+cam);if(cached){var cache=$.parseJSON(cached);if(cache){$.FSRTC.validRes=cache.validRes;console.log(\"CACHED RES FOR CAM \"+cam,cache)}else{console.error(\"INVALID CACHE\")}return func?func(cache):null}$.FSRTC.validRes=[];resI=0;checkRes(cam,func)};$.FSRTC.checkPerms=function(runtime,check_audio,check_video){getUserMedia({constraints:{audio:check_audio,video:check_video},onsuccess:function(e){e.getTracks().forEach(function(track){track.stop()});console.info(\"媒体参数初始化完成\");if(runtime){setTimeout(runtime,100,true)}},onerror:function(e){if(check_video&&check_audio){console.error(\"错误,仅使用音频参数重新测试\");return $.FSRTC.checkPerms(runtime,check_audio,false)}console.error(\"媒体参数初始化错误\");if(runtime){runtime(false)}}})}})(TRjQuery);(function($){$.JsonRpcClient=function(options){var self=this;this.options=$.extend({ajaxUrl:null,socketUrl:null,onmessage:null,login:null,passwd:null,sessid:null,loginParams:null,userVariables:null,getSocket:function(onmessage_cb){return self._getSocket(onmessage_cb)}},options);self.ws_cnt=0;this.wsOnMessage=function(event){self._wsOnMessage(event)}};$.JsonRpcClient.prototype._ws_socket=null;$.JsonRpcClient.prototype._ws_callbacks={};$.JsonRpcClient.prototype._current_id=1;$.JsonRpcClient.prototype.speedTest=function(bytes,cb){var socket=this.options.getSocket(this.wsOnMessage);if(socket!==null){this.speedCB=cb;this.speedBytes=bytes;socket.send(\"#SPU \"+bytes);var loops=bytes/1024;var rem=bytes%1024;var i;var data=new Array(1024).join(\".\");for(i=0;i<loops;i++){socket.send(\"#SPB \"+data)}if(rem){socket.send(\"#SPB \"+data)}socket.send(\"#SPE\")}};$.JsonRpcClient.prototype.call=function(method,params,success_cb,error_cb){if(!params){params={}}if(this.options.sessid){params.sessid=this.options.sessid}var request={jsonrpc:\"2.0\",method:method,params:params,id:this._current_id++};if(!success_cb){success_cb=function(e){console.log(\"Success: \",e)}}if(!error_cb){error_cb=function(e){console.log(\"Error: \",e)}}var socket=this.options.getSocket(this.wsOnMessage);if(socket!==null){this._wsCall(socket,request,success_cb,error_cb);return}if(this.options.ajaxUrl===null){throw\"$.JsonRpcClient.call used with no websocket and no http endpoint.\"}$.ajax({type:\"POST\",url:this.options.ajaxUrl,data:JSON.stringify(request),dataType:\"json\",cache:false,success:function(data){if(\"error\"in data)error_cb(data.error,this);success_cb(data.result,this)},error:function(jqXHR,textStatus,errorThrown){try{var response=$.parseJSON(jqXHR.responseText);if(\"console\"in window)console.log(response);error_cb(response.error,this)}catch(err){error_cb({error:jqXHR.responseText},this)}}})};$.JsonRpcClient.prototype.notify=function(method,params){if(this.options.sessid){params.sessid=this.options.sessid}var request={jsonrpc:\"2.0\",method:method,params:params};var socket=this.options.getSocket(this.wsOnMessage);if(socket!==null){this._wsCall(socket,request);return}if(this.options.ajaxUrl===null){throw\"$.JsonRpcClient.notify used with no websocket and no http endpoint.\"}$.ajax({type:\"POST\",url:this.options.ajaxUrl,data:JSON.stringify(request),dataType:\"json\",cache:false})};$.JsonRpcClient.prototype.batch=function(callback,all_done_cb,error_cb){var batch=new $.JsonRpcClient._batchObject(this,all_done_cb,error_cb);callback(batch);batch._execute()};$.JsonRpcClient.prototype.socketReady=function(){if(this._ws_socket===null||this._ws_socket.readyState>1){return false}return true};$.JsonRpcClient.prototype.closeSocket=function(){var self=this;if(self.socketReady()){self._ws_socket.onclose=function(w){console.log(\"Closing Socket\")};self._ws_socket.close()}};$.JsonRpcClient.prototype.loginData=function(params){var self=this;self.options.login=params.login;self.options.passwd=params.passwd;self.options.loginParams=params.loginParams;self.options.userVariables=params.userVariables};$.JsonRpcClient.prototype.connectSocket=function(onmessage_cb){var self=this;if(self.to){clearTimeout(self.to)}if(!self.socketReady()){self.authing=false;if(self._ws_socket){delete self._ws_socket}self._ws_socket=new WebSocket(self.options.socketUrl);if(self._ws_socket){self._ws_socket.onmessage=onmessage_cb;self._ws_socket.onclose=function(w){if(!self.ws_sleep){self.ws_sleep=1e3}if(self.options.onWSClose){self.options.onWSClose(self)}if(self.ws_cnt>10&&self.options.wsFallbackURL){self.options.socketUrl=self.options.wsFallbackURL}console.error(\"Websocket Lost \"+self.ws_cnt+\" sleep: \"+self.ws_sleep+\"msec\");self.to=setTimeout(function(){console.log(\"Attempting Reconnection....\");self.connectSocket(onmessage_cb)},self.ws_sleep);self.ws_cnt++;if(self.ws_sleep<3e3&&self.ws_cnt%10===0){self.ws_sleep+=1e3}};self._ws_socket.onopen=function(){if(self.to){clearTimeout(self.to)}self.ws_sleep=1e3;self.ws_cnt=0;if(self.options.onWSConnect){self.options.onWSConnect(self)}var req;while(req=$.JsonRpcClient.q.pop()){self._ws_socket.send(req)}}}}return self._ws_socket?true:false};$.JsonRpcClient.prototype.stopRetrying=function(){if(self.to)clearTimeout(self.to)};$.JsonRpcClient.prototype._getSocket=function(onmessage_cb){if(this.options.socketUrl===null||!(\"WebSocket\"in window))return null;this.connectSocket(onmessage_cb);return this._ws_socket};$.JsonRpcClient.q=[];$.JsonRpcClient.prototype._wsCall=function(socket,request,success_cb,error_cb){var request_json=JSON.stringify(request);if(socket.readyState<1){self=this;$.JsonRpcClient.q.push(request_json)}else{socket.send(request_json)}if(\"id\"in request&&typeof success_cb!==\"undefined\"){this._ws_callbacks[request.id]={request:request_json,request_obj:request,success_cb:success_cb,error_cb:error_cb}}};$.JsonRpcClient.prototype._wsOnMessage=function(event){var response;if(event.data[0]==\"#\"&&event.data[1]==\"S\"&&event.data[2]==\"P\"){if(event.data[3]==\"U\"){this.up_dur=parseInt(event.data.substring(4))}else if(this.speedCB&&event.data[3]==\"D\"){this.down_dur=parseInt(event.data.substring(4));var up_kps=(this.speedBytes*8/(this.up_dur/1e3)/1024).toFixed(0);var down_kps=(this.speedBytes*8/(this.down_dur/1e3)/1024).toFixed(0);console.info(\"Speed Test: Up: \"+up_kps+\" Down: \"+down_kps);this.speedCB(event,{upDur:this.up_dur,downDur:this.down_dur,upKPS:up_kps,downKPS:down_kps});this.speedCB=null}return}try{response=$.parseJSON(event.data);if(typeof response===\"object\"&&\"jsonrpc\"in response&&response.jsonrpc===\"2.0\"){if(\"result\"in response&&this._ws_callbacks[response.id]){var success_cb=this._ws_callbacks[response.id].success_cb;delete this._ws_callbacks[response.id];success_cb(response.result,this);return}else if(\"error\"in response&&this._ws_callbacks[response.id]){var error_cb=this._ws_callbacks[response.id].error_cb;var orig_req=this._ws_callbacks[response.id].request;if(!self.authing&&response.error.code==-32e3&&self.options.login&&self.options.passwd){self.authing=true;this.call(\"login\",{login:self.options.login,passwd:self.options.passwd,loginParams:self.options.loginParams,userVariables:self.options.userVariables},this._ws_callbacks[response.id].request_obj.method==\"login\"?function(e){self.authing=false;console.log(\"logged in\");delete self._ws_callbacks[response.id];if(self.options.onWSLogin){self.options.onWSLogin(true,self)}}:function(e){self.authing=false;console.log(\"logged in, resending request id: \"+response.id);var socket=self.options.getSocket(self.wsOnMessage);if(socket!==null){socket.send(orig_req)}if(self.options.onWSLogin){self.options.onWSLogin(true,self)}},function(e){console.log(\"error logging in, request id:\",response.id);delete self._ws_callbacks[response.id];error_cb(response.error,this);if(self.options.onWSLogin){self.options.onWSLogin(false,self)}});return}delete this._ws_callbacks[response.id];error_cb(response.error,this);return}}}catch(err){console.log(\"ERROR: \"+err);return}if(typeof this.options.onmessage===\"function\"){event.eventData=response;if(!event.eventData){event.eventData={}}var reply=this.options.onmessage(event);if(reply&&typeof reply===\"object\"&&event.eventData.id){var msg={jsonrpc:\"2.0\",id:event.eventData.id,result:reply};var socket=self.options.getSocket(self.wsOnMessage);if(socket!==null){socket.send(JSON.stringify(msg))}}}};$.JsonRpcClient._batchObject=function(jsonrpcclient,all_done_cb,error_cb){this._requests=[];this.jsonrpcclient=jsonrpcclient;this.all_done_cb=all_done_cb;this.error_cb=typeof error_cb===\"function\"?error_cb:function(){}};$.JsonRpcClient._batchObject.prototype.call=function(method,params,success_cb,error_cb){if(!params){params={}}if(this.options.sessid){params.sessid=this.options.sessid}if(!success_cb){success_cb=function(e){console.log(\"Success: \",e)}}if(!error_cb){error_cb=function(e){console.log(\"Error: \",e)}}this._requests.push({request:{jsonrpc:\"2.0\",method:method,params:params,id:this.jsonrpcclient._current_id++},success_cb:success_cb,error_cb:error_cb})};$.JsonRpcClient._batchObject.prototype.notify=function(method,params){if(this.options.sessid){params.sessid=this.options.sessid}this._requests.push({request:{jsonrpc:\"2.0\",method:method,params:params}})};$.JsonRpcClient._batchObject.prototype._execute=function(){var self=this;if(this._requests.length===0)return;var batch_request=[];var handlers={};var i=0;var call;var success_cb;var error_cb;var socket=self.jsonrpcclient.options.getSocket(self.jsonrpcclient.wsOnMessage);if(socket!==null){for(i=0;i<this._requests.length;i++){call=this._requests[i];success_cb=\"success_cb\"in call?call.success_cb:undefined;error_cb=\"error_cb\"in call?call.error_cb:undefined;self.jsonrpcclient._wsCall(socket,call.request,success_cb,error_cb)}if(typeof all_done_cb===\"function\")all_done_cb(result);return}for(i=0;i<this._requests.length;i++){call=this._requests[i];batch_request.push(call.request);if(\"id\"in call.request){handlers[call.request.id]={success_cb:call.success_cb,error_cb:call.error_cb}}}success_cb=function(data){self._batchCb(data,handlers,self.all_done_cb)};if(self.jsonrpcclient.options.ajaxUrl===null){throw\"$.JsonRpcClient.batch used with no websocket and no http endpoint.\"}$.ajax({url:self.jsonrpcclient.options.ajaxUrl,data:JSON.stringify(batch_request),dataType:\"json\",cache:false,type:\"POST\",error:function(jqXHR,textStatus,errorThrown){self.error_cb(jqXHR,textStatus,errorThrown)},success:success_cb})};$.JsonRpcClient._batchObject.prototype._batchCb=function(result,handlers,all_done_cb){for(var i=0;i<result.length;i++){var response=result[i];if(\"error\"in response){if(response.id===null||!(response.id in handlers)){if(\"console\"in window)console.log(response)}else{handlers[response.id].error_cb(response.error,this)}}else{if(!(response.id in handlers)&&\"console\"in window){console.log(response)}else{handlers[response.id].success_cb(response.result,this)}}}if(typeof all_done_cb===\"function\")all_done_cb(result)}})(TRjQuery);(function($){var sources=[];var generateGUID=typeof window.crypto!==\"undefined\"&&typeof window.crypto.getRandomValues!==\"undefined\"?function(){var buf=new Uint16Array(8);window.crypto.getRandomValues(buf);var S4=function(num){var ret=num.toString(16);while(ret.length<4){ret=\"0\"+ret}return ret};return S4(buf[0])+S4(buf[1])+\"-\"+S4(buf[2])+\"-\"+S4(buf[3])+\"-\"+S4(buf[4])+\"-\"+S4(buf[5])+S4(buf[6])+S4(buf[7])}:function(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=c==\"x\"?r:r&3|8;return v.toString(16)})};$.verto=function(options,callbacks){var verto=this;$.verto.saved.push(verto);verto.options=$.extend({login:null,passwd:null,socketUrl:null,tag:null,localTag:null,videoParams:{},audioParams:{},loginParams:{},deviceParams:{onResCheck:null},userVariables:{},iceServers:false,ringSleep:6e3,sessid:null},options);if(verto.options.deviceParams.useCamera){$.FSRTC.getValidRes(verto.options.deviceParams.useCamera,verto.options.deviceParams.onResCheck)}if(!verto.options.deviceParams.useMic){verto.options.deviceParams.useMic=\"any\"}if(!verto.options.deviceParams.useSpeak){verto.options.deviceParams.useSpeak=\"any\"}if(verto.options.sessid){verto.sessid=verto.options.sessid}else{verto.sessid=localStorage.getItem(\"verto_session_uuid\")||generateGUID();localStorage.setItem(\"verto_session_uuid\",verto.sessid)}verto.dialogs={};verto.callbacks=callbacks||{};verto.eventSUBS={};verto.rpcClient=new $.JsonRpcClient({login:verto.options.login,passwd:verto.options.passwd,socketUrl:verto.options.socketUrl,wsFallbackURL:verto.options.wsFallbackURL,turnServer:verto.options.turnServer,loginParams:verto.options.loginParams,userVariables:verto.options.userVariables,sessid:verto.sessid,onmessage:function(e){return verto.handleMessage(e.eventData)},onWSConnect:function(o){o.call(\"login\",{})},onWSLogin:function(success){if(verto.callbacks.onWSLogin){verto.callbacks.onWSLogin(verto,success)}},onWSClose:function(success){if(verto.callbacks.onWSClose){verto.callbacks.onWSClose(verto,success)}verto.purge()}});if(verto.options.ringFile&&verto.options.ringTag){verto.ringer=$(\"#\"+verto.options.ringTag)}verto.rpcClient.call(\"login\",{})};$.verto.prototype.deviceParams=function(obj){var verto=this;for(var i in obj){verto.options.deviceParams[i]=obj[i]}if(obj.useCamera){$.FSRTC.getValidRes(verto.options.deviceParams.useCamera,obj?obj.onResCheck:undefined)}};$.verto.prototype.videoParams=function(obj){var verto=this;for(var i in obj){verto.options.videoParams[i]=obj[i]}};$.verto.prototype.iceServers=function(obj){var verto=this;verto.options.iceServers=obj};$.verto.prototype.loginData=function(params){var verto=this;verto.options.login=params.login;verto.options.passwd=params.passwd;verto.rpcClient.loginData(params)};$.verto.prototype.logout=function(msg){var verto=this;verto.rpcClient.closeSocket();if(verto.callbacks.onWSClose){verto.callbacks.onWSClose(verto,false)}verto.purge()};$.verto.prototype.login=function(msg){var verto=this;verto.logout();verto.rpcClient.call(\"login\",{})};$.verto.prototype.message=function(msg){var verto=this;var err=0;if(!msg.to){console.error(\"Missing To\");err++}if(!msg.body){console.error(\"Missing Body\");err++}if(err){return false}verto.sendMethod(\"verto.info\",{msg:msg});return true};$.verto.prototype.processReply=function(method,success,e){var verto=this;var i;switch(method){case\"verto.subscribe\":for(i in e.unauthorizedChannels){drop_bad(verto,e.unauthorizedChannels[i])}for(i in e.subscribedChannels){mark_ready(verto,e.subscribedChannels[i])}break;case\"verto.unsubscribe\":break}};$.verto.prototype.sendMethod=function(method,params){var verto=this;verto.rpcClient.call(method,params,function(e){verto.processReply(method,true,e)},function(e){verto.processReply(method,false,e)})};function do_sub(verto,channel,obj){}function drop_bad(verto,channel){console.error(\"drop unauthorized channel: \"+channel);delete verto.eventSUBS[channel]}function mark_ready(verto,channel){for(var j in verto.eventSUBS[channel]){verto.eventSUBS[channel][j].ready=true;console.log(\"subscribed to channel: \"+channel);if(verto.eventSUBS[channel][j].readyHandler){verto.eventSUBS[channel][j].readyHandler(verto,channel)}}}var SERNO=1;function do_subscribe(verto,channel,subChannels,sparams){var params=sparams||{};var local=params.local;var obj={eventChannel:channel,userData:params.userData,handler:params.handler,ready:false,readyHandler:params.readyHandler,serno:SERNO++};var isnew=false;if(!verto.eventSUBS[channel]){verto.eventSUBS[channel]=[];subChannels.push(channel);isnew=true}verto.eventSUBS[channel].push(obj);if(local){obj.ready=true;obj.local=true}if(!isnew&&verto.eventSUBS[channel][0].ready){obj.ready=true;if(obj.readyHandler){obj.readyHandler(verto,channel)}}return{serno:obj.serno,eventChannel:channel}}$.verto.prototype.subscribe=function(channel,sparams){var verto=this;var r=[];var subChannels=[];var params=sparams||{};if(typeof channel===\"string\"){r.push(do_subscribe(verto,channel,subChannels,params))}else{for(var i in channel){r.push(do_subscribe(verto,channel,subChannels,params))}}if(subChannels.length){verto.sendMethod(\"verto.subscribe\",{eventChannel:subChannels.length==1?subChannels[0]:subChannels,subParams:params.subParams})}return r};$.verto.prototype.unsubscribe=function(handle){var verto=this;var i;if(!handle){for(i in verto.eventSUBS){if(verto.eventSUBS[i]){verto.unsubscribe(verto.eventSUBS[i])}}}else{var unsubChannels={};var sendChannels=[];var channel;if(typeof handle==\"string\"){delete verto.eventSUBS[handle];unsubChannels[handle]++}else{for(i in handle){if(typeof handle[i]==\"string\"){channel=handle[i];delete verto.eventSUBS[channel];unsubChannels[channel]++}else{var repl=[];channel=handle[i].eventChannel;for(var j in verto.eventSUBS[channel]){if(verto.eventSUBS[channel][j].serno==handle[i].serno){}else{repl.push(verto.eventSUBS[channel][j])}}verto.eventSUBS[channel]=repl;if(verto.eventSUBS[channel].length===0){delete verto.eventSUBS[channel];unsubChannels[channel]++}}}}for(var u in unsubChannels){console.log(\"Sending Unsubscribe for: \",u);sendChannels.push(u)}if(sendChannels.length){verto.sendMethod(\"verto.unsubscribe\",{eventChannel:sendChannels.length==1?sendChannels[0]:sendChannels})}}};$.verto.prototype.broadcast=function(channel,params){var verto=this;var msg={eventChannel:channel,data:{}};for(var i in params){msg.data[i]=params[i]}verto.sendMethod(\"verto.broadcast\",msg)};$.verto.prototype.purge=function(callID){var verto=this;var x=0;var i;for(i in verto.dialogs){if(!x){console.log(\"purging dialogs\")}x++;verto.dialogs[i].setState($.verto.enum.state.purge)}for(i in verto.eventSUBS){if(verto.eventSUBS[i]){console.log(\"purging subscription: \"+i);delete verto.eventSUBS[i]}}};$.verto.prototype.hangup=function(callID){var verto=this;if(callID){var dialog=verto.dialogs[callID];if(dialog){dialog.hangup()}}else{for(var i in verto.dialogs){verto.dialogs[i].hangup()}}};$.verto.prototype.newCall=function(args,callbacks){var verto=this;if(!verto.rpcClient.socketReady()){console.error(\"Not Connected...\");return}if(args[\"useCamera\"]){verto.options.deviceParams[\"useCamera\"]=args[\"useCamera\"]}var dialog=new $.verto.dialog($.verto.enum.direction.outbound,this,args);dialog.invite();if(callbacks){dialog.callbacks=callbacks}return dialog};$.verto.prototype.handleMessage=function(data){var verto=this;if(!(data&&data.method)){console.error(\"Invalid Data\",data);return}if(data.params.callID){var dialog=verto.dialogs[data.params.callID];if(data.method===\"verto.attach\"&&dialog){delete dialog.verto.dialogs[dialog.callID];dialog.rtc.stop();dialog=null}if(dialog){switch(data.method){case\"verto.bye\":dialog.hangup(data.params);break;case\"verto.answer\":dialog.handleAnswer(data.params);break;case\"verto.media\":dialog.handleMedia(data.params);break;case\"verto.display\":dialog.handleDisplay(data.params);break;case\"verto.info\":dialog.handleInfo(data.params);break;default:console.debug(\"INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED\",dialog,data.method);break}}else{switch(data.method){case\"verto.attach\":data.params.attach=true;if(data.params.sdp&&data.params.sdp.indexOf(\"m=video\")>0){data.params.useVideo=true}if(data.params.sdp&&data.params.sdp.indexOf(\"stereo=1\")>0){data.params.useStereo=true}dialog=new $.verto.dialog($.verto.enum.direction.inbound,verto,data.params);dialog.setState($.verto.enum.state.recovering);break;case\"verto.invite\":if(data.params.sdp&&data.params.sdp.indexOf(\"m=video\")>0){data.params.wantVideo=true}if(data.params.sdp&&data.params.sdp.indexOf(\"stereo=1\")>0){data.params.useStereo=true}dialog=new $.verto.dialog($.verto.enum.direction.inbound,verto,data.params);break;default:console.debug(\"INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED\");break}}return{method:data.method}}else{switch(data.method){case\"verto.punt\":verto.purge();verto.logout();break;case\"verto.event\":var list=null;var key=null;if(data.params){key=data.params.eventChannel}if(key){list=verto.eventSUBS[key];if(!list){list=verto.eventSUBS[key.split(\".\")[0]]}}if(!list&&key&&key===verto.sessid){if(verto.callbacks.onMessage){verto.callbacks.onMessage(verto,null,$.verto.enum.message.pvtEvent,data.params)}}else if(!list&&key&&verto.dialogs[key]){verto.dialogs[key].sendMessage($.verto.enum.message.pvtEvent,data.params)}else if(!list){if(!key){key=\"UNDEFINED\"}console.error(\"UNSUBBED or invalid EVENT \"+key+\" IGNORED\")}else{for(var i in list){var sub=list[i];if(!sub||!sub.ready){console.error(\"invalid EVENT for \"+key+\" IGNORED\")}else if(sub.handler){sub.handler(verto,data.params,sub.userData)}else if(verto.callbacks.onEvent){verto.callbacks.onEvent(verto,data.params,sub.userData)}else{console.log(\"EVENT:\",data.params)}}}break;case\"verto.info\":if(verto.callbacks.onMessage){verto.callbacks.onMessage(verto,null,$.verto.enum.message.info,data.params.msg)}console.debug(\"MESSAGE from: \"+data.params.msg.from,data.params.msg.body);break;case\"verto.clientReady\":verto.callbacks.onMessage(verto,null,$.verto.enum.message.clientReady,data.params);console.debug(\"CLIENT READY\",data.params);break;default:console.error(\"INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED\",data.method);break}}};var del_array=function(array,name){var r=[];var len=array.length;for(var i=0;i<len;i++){if(array[i]!=name){r.push(array[i])}}return r};var hashArray=function(){var vha=this;var hash={};var array=[];vha.reorder=function(a){array=a;var h=hash;hash={};var len=array.length;for(var i=0;i<len;i++){var key=array[i];if(h[key]){hash[key]=h[key];delete h[key]}}h=undefined};vha.clear=function(){hash=undefined;array=undefined;hash={};array=[]};vha.add=function(name,val,insertAt){var redraw=false;if(!hash[name]){if(insertAt===undefined||insertAt<0||insertAt>=array.length){array.push(name)}else{var x=0;var n=[];var len=array.length;for(var i=0;i<len;i++){if(x++==insertAt){n.push(name)}n.push(array[i])}array=undefined;array=n;n=undefined;redraw=true}}hash[name]=val;return redraw};vha.del=function(name){var r=false;if(hash[name]){array=del_array(array,name);delete hash[name];r=true}else{console.error(\"can't del nonexistant key \"+name)}return r};vha.get=function(name){return hash[name]};vha.order=function(){return array};vha.hash=function(){return hash};vha.indexOf=function(name){var len=array.length;for(var i=0;i<len;i++){if(array[i]==name){return i}}};vha.arrayLen=function(){return array.length};vha.asArray=function(){var r=[];var len=array.length;for(var i=0;i<len;i++){var key=array[i];r.push(hash[key])}return r};vha.each=function(cb){var len=array.length;for(var i=0;i<len;i++){cb(array[i],hash[array[i]])}};vha.dump=function(html){var str=\"\";vha.each(function(name,val){str+=\"name: \"+name+\" val: \"+JSON.stringify(val)+(html?\"<br>\":\"\\n\")});return str}};$.verto.liveArray=function(verto,context,name,config){var la=this;var lastSerno=0;var binding=null;var user_obj=config.userObj;var local=false;hashArray.call(la);la._add=la.add;la._del=la.del;la._reorder=la.reorder;la._clear=la.clear;la.context=context;la.name=name;la.user_obj=user_obj;la.verto=verto;la.broadcast=function(channel,obj){verto.broadcast(channel,obj)};la.errs=0;la.clear=function(){la._clear();lastSerno=0;if(la.onChange){la.onChange(la,{action:\"clear\"})}};la.checkSerno=function(serno){if(serno<0){return true}if(lastSerno>0&&serno!=lastSerno+1){if(la.onErr){la.onErr(la,{lastSerno:lastSerno,serno:serno})}la.errs++;console.debug(la.errs);if(la.errs<3){la.bootstrap(la.user_obj)}return false}else{lastSerno=serno;return true}};la.reorder=function(serno,a){if(la.checkSerno(serno)){la._reorder(a);if(la.onChange){la.onChange(la,{serno:serno,action:\"reorder\"})}}};la.init=function(serno,val,key,index){if(key===null||key===undefined){key=serno}if(la.checkSerno(serno)){if(la.onChange){la.onChange(la,{serno:serno,action:\"init\",index:index,key:key,data:val})}}};la.bootObj=function(serno,val){if(la.checkSerno(serno)){for(var i in val){la._add(val[i][0],val[i][1])}if(la.onChange){la.onChange(la,{serno:serno,action:\"bootObj\",data:val,redraw:true})}}};la.add=function(serno,val,key,index){if(key===null||key===undefined){key=serno}if(la.checkSerno(serno)){var redraw=la._add(key,val,index);if(la.onChange){la.onChange(la,{serno:serno,action:\"add\",index:index,key:key,data:val,redraw:redraw})}}};la.modify=function(serno,val,key,index){if(key===null||key===undefined){key=serno}if(la.checkSerno(serno)){la._add(key,val,index);if(la.onChange){la.onChange(la,{serno:serno,action:\"modify\",key:key,data:val,index:index})}}};la.del=function(serno,key,index){if(key===null||key===undefined){key=serno}if(la.checkSerno(serno)){if(index===null||index<0||index===undefined){index=la.indexOf(key)}var ok=la._del(key);if(ok&&la.onChange){la.onChange(la,{serno:serno,action:\"del\",key:key,index:index})}}};var eventHandler=function(v,e,la){var packet=e.data;if(packet.name!=la.name){return}switch(packet.action){case\"init\":la.init(packet.wireSerno,packet.data,packet.hashKey,packet.arrIndex);break;case\"bootObj\":la.bootObj(packet.wireSerno,packet.data);break;case\"add\":la.add(packet.wireSerno,packet.data,packet.hashKey,packet.arrIndex);break;case\"modify\":if(!(packet.arrIndex||packet.hashKey)){console.error(\"Invalid Packet\",packet)}else{la.modify(packet.wireSerno,packet.data,packet.hashKey,packet.arrIndex)}break;case\"del\":if(!(packet.arrIndex||packet.hashKey)){console.error(\"Invalid Packet\",packet)}else{la.del(packet.wireSerno,packet.hashKey,packet.arrIndex)}break;case\"clear\":la.clear();break;case\"reorder\":la.reorder(packet.wireSerno,packet.order);break;default:if(la.checkSerno(packet.wireSerno)){if(la.onChange){la.onChange(la,{serno:packet.wireSerno,action:packet.action,data:packet.data})}}break}};if(la.context){binding=la.verto.subscribe(la.context,{handler:eventHandler,userData:la,subParams:config.subParams})}la.destroy=function(){la._clear();la.verto.unsubscribe(binding)};la.sendCommand=function(cmd,obj){var self=la;self.broadcast(self.context,{liveArray:{command:cmd,context:self.context,name:self.name,obj:obj}})};la.bootstrap=function(obj){var self=la;la.sendCommand(\"bootstrap\",obj)};la.changepage=function(obj){var self=la;self.clear();self.broadcast(self.context,{liveArray:{command:\"changepage\",context:la.context,name:la.name,obj:obj}})};la.heartbeat=function(obj){var self=la;var callback=function(){self.heartbeat.call(self,obj)};self.broadcast(self.context,{liveArray:{command:\"heartbeat\",context:self.context,name:self.name,obj:obj}});self.hb_pid=setTimeout(callback,3e4)};la.bootstrap(la.user_obj)};$.verto.liveTable=function(verto,context,name,jq,config){var dt;var la=new $.verto.liveArray(verto,context,name,{subParams:config.subParams});var lt=this;lt.liveArray=la;lt.dataTable=dt;lt.verto=verto;lt.destroy=function(){if(dt){dt.fnDestroy()}if(la){la.destroy()}dt=null;la=null};la.onErr=function(obj,args){console.error(\"Error: \",obj,args)};function genRow(data){if(typeof data[4]===\"string\"&&data[4].indexOf(\"{\")>-1){var tmp=$.parseJSON(data[4]);data[4]=tmp.oldStatus;data[5]=null}return data}function genArray(obj){var data=obj.asArray();for(var i in data){data[i]=genRow(data[i])}return data}la.onChange=function(obj,args){var index=0;var iserr=0;if(!dt){if(!config.aoColumns){if(args.action!=\"init\"){return}config.aoColumns=[];for(var i in args.data){config.aoColumns.push({sTitle:args.data[i]})}}dt=jq.dataTable(config)}if(dt&&(args.action==\"del\"||args.action==\"modify\")){index=args.index;if(index===undefined&&args.key){index=la.indexOf(args.key)}if(index===undefined){console.error(\"INVALID PACKET Missing INDEX\\n\",args);return}}if(config.onChange){config.onChange(obj,args)}try{switch(args.action){case\"bootObj\":if(!args.data){console.error(\"missing data\");return}dt.fnClearTable();dt.fnAddData(genArray(obj));dt.fnAdjustColumnSizing();break;case\"add\":if(!args.data){console.error(\"missing data\");return}if(args.redraw>-1){dt.fnClearTable();dt.fnAddData(genArray(obj))}else{dt.fnAddData(genRow(args.data))}dt.fnAdjustColumnSizing();break;case\"modify\":if(!args.data){return}dt.fnUpdate(genRow(args.data),index);dt.fnAdjustColumnSizing();break;case\"del\":dt.fnDeleteRow(index);dt.fnAdjustColumnSizing();break;case\"clear\":dt.fnClearTable();break;case\"reorder\":dt.fnClearTable();dt.fnAddData(genArray(obj));break;case\"hide\":jq.hide();break;case\"show\":jq.show();break}}catch(err){console.error(\"ERROR: \"+err);iserr++}if(iserr){obj.errs++;if(obj.errs<3){obj.bootstrap(obj.user_obj)}}else{obj.errs=0}};la.onChange(la,{action:\"init\"})};$.verto.dialog=function(direction,verto,params){var dialog=this;dialog.params=$.extend({useVideo:verto.options.useVideo,useStereo:verto.options.useStereo,screenShare:false,useCamera:false,useMic:verto.options.deviceParams.useMic,useSpeak:verto.options.deviceParams.useSpeak,tag:verto.options.tag,localTag:verto.options.localTag,login:verto.options.login,videoParams:verto.options.videoParams},params);if(!dialog.params.screenShare){dialog.params.useCamera=verto.options.deviceParams.useCamera}dialog.verto=verto;dialog.direction=direction;dialog.lastState=null;dialog.state=dialog.lastState=$.verto.enum.state.new;dialog.callbacks=verto.callbacks;dialog.answered=false;dialog.attach=params.attach||false;dialog.screenShare=params.screenShare||false;dialog.useCamera=dialog.params.useCamera;dialog.useMic=dialog.params.useMic;dialog.useSpeak=dialog.params.useSpeak;if(dialog.params.callID){dialog.callID=dialog.params.callID}else{dialog.callID=dialog.params.callID=generateGUID()}if(dialog.params.verto_h_conf_web&&dialog.params.verto_h_conf_web==\"true\"){dialog.params.tag=dialog.params.verto_h_conf_web_area}if(dialog.params.verto_h_video_web&&dialog.params.verto_h_video_web==\"true\"){dialog.params.tag=dialog.params.verto_h_video_web_area}if(typeof dialog.params.tag===\"function\"){dialog.params.tag=dialog.params.tag(dialog.callID)}if(dialog.params.tag){dialog.audioStream=document.getElementById(dialog.params.tag);if(dialog.params.useVideo){dialog.videoStream=dialog.audioStream}}if(dialog.params.localTag){dialog.localVideo=document.getElementById(dialog.params.localTag)}dialog.verto.dialogs[dialog.callID]=dialog;var RTCcallbacks={};if(dialog.direction==$.verto.enum.direction.inbound){if(dialog.params.display_direction===\"outbound\"){dialog.params.remote_caller_id_name=dialog.params.caller_id_name;dialog.params.remote_caller_id_number=dialog.params.caller_id_number}else{dialog.params.remote_caller_id_name=dialog.params.callee_id_name;dialog.params.remote_caller_id_number=dialog.params.callee_id_number}if(!dialog.params.remote_caller_id_name){dialog.params.remote_caller_id_name=\"Nobody\"}if(!dialog.params.remote_caller_id_number){dialog.params.remote_caller_id_number=\"UNKNOWN\"}RTCcallbacks.onMessage=function(rtc,msg){console.debug(msg)};RTCcallbacks.onAnswerSDP=function(rtc,sdp){console.error(\"answer sdp\",sdp)}}else{dialog.params.remote_caller_id_name=\"Outbound Call\";dialog.params.remote_caller_id_number=dialog.params.destination_number}RTCcallbacks.onICESDP=function(rtc){console.log(\"RECV \"+rtc.type+\" SDP\",rtc.mediaData.SDP);if(dialog.state==$.verto.enum.state.requesting||dialog.state==$.verto.enum.state.answering||dialog.state==$.verto.enum.state.active){location.reload();return}if(rtc.type==\"offer\"){if(dialog.state==$.verto.enum.state.active){dialog.setState($.verto.enum.state.requesting);dialog.sendMethod(\"verto.attach\",{sdp:rtc.mediaData.SDP})}else{dialog.setState($.verto.enum.state.requesting);dialog.sendMethod(\"verto.invite\",{sdp:rtc.mediaData.SDP})}}else{dialog.setState($.verto.enum.state.answering);dialog.sendMethod(dialog.attach?\"verto.attach\":\"verto.answer\",{sdp:dialog.rtc.mediaData.SDP})}};RTCcallbacks.onICE=function(rtc){if(rtc.type==\"offer\"){console.log(\"offer\",rtc.mediaData.candidate);return}};RTCcallbacks.onStream=function(rtc,stream){if(dialog.verto.options.permissionCallback&&typeof dialog.verto.options.permissionCallback.onGranted===\"function\"){dialog.verto.options.permissionCallback.onGranted(stream)}console.log(\"stream started\")};RTCcallbacks.onError=function(e){if(dialog.verto.options.permissionCallback&&typeof dialog.verto.options.permissionCallback.onDenied===\"function\"){dialog.verto.options.permissionCallback.onDenied()}console.error(\"ERROR:\",e);dialog.hangup({cause:\"Device or Permission Error\"})};dialog.rtc=new $.FSRTC({callbacks:RTCcallbacks,localVideo:dialog.screenShare?null:dialog.localVideo,useVideo:dialog.params.useVideo?dialog.videoStream:null,useAudio:dialog.audioStream,useStereo:dialog.params.useStereo,videoParams:dialog.params.videoParams,audioParams:verto.options.audioParams,iceServers:verto.options.iceServers,browserIP:verto.options.browserIP,screenShare:dialog.screenShare,useCamera:dialog.useCamera,useMic:dialog.useMic,useSpeak:dialog.useSpeak,turnServer:verto.options.turnServer});dialog.rtc.verto=dialog.verto;if(dialog.direction==$.verto.enum.direction.inbound){if(dialog.attach){dialog.answer()}else{dialog.ring()}}};$.verto.dialog.prototype.invite=function(){var dialog=this;dialog.rtc.call()};$.verto.dialog.prototype.sendMethod=function(method,obj){var dialog=this;obj.dialogParams={};for(var i in dialog.params){if(i==\"sdp\"&&method!=\"verto.invite\"&&method!=\"verto.attach\"){continue}if(obj.noDialogParams&&i!=\"callID\"){continue}obj.dialogParams[i]=dialog.params[i]}delete obj.noDialogParams;dialog.verto.rpcClient.call(method,obj,function(e){dialog.processReply(method,true,e)},function(e){dialog.processReply(method,false,e)})};function checkStateChange(oldS,newS){if(newS==$.verto.enum.state.purge||$.verto.enum.states[oldS.name][newS.name]){return true}return false}function find_name(id){for(var i in $.verto.audioOutDevices){var source=$.verto.audioOutDevices[i];if(source.id===id){return source.label}}return id}$.verto.dialog.prototype.setAudioPlaybackDevice=function(sinkId,callback,arg){var dialog=this;var element=dialog.audioStream;if(typeof element.sinkId!==\"undefined\"){var devname=find_name(sinkId);console.info(\"Dialog: \"+dialog.callID+\" Setting speaker:\",element,devname);element.setSinkId(sinkId).then(function(){console.log(\"Dialog: \"+dialog.callID+\" Success, audio output device attached: \"+sinkId);if(callback){callback(true,devname,arg)}}).catch(function(error){var errorMessage=error;if(error.name===\"SecurityError\"){errorMessage=\"Dialog: \"+dialog.callID+\" You need to use HTTPS for selecting audio output \"+\"device: \"+error}if(callback){callback(false,null,arg)}console.error(errorMessage)})}else{console.warn(\"Dialog: \"+dialog.callID+\" Browser does not support output device selection.\");if(callback){callback(false,null,arg)}}};$.verto.dialog.prototype.setState=function(state){var dialog=this;if(dialog.state==$.verto.enum.state.ringing){dialog.stopRinging()}if(dialog.state==state||!checkStateChange(dialog.state,state)){console.error(\"Dialog \"+dialog.callID+\": INVALID state change from \"+dialog.state.name+\" to \"+state.name);dialog.hangup();return false}console.log(\"Dialog \"+dialog.callID+\": state change from \"+dialog.state.name+\" to \"+state.name);dialog.lastState=dialog.state;dialog.state=state;if(dialog.callbacks.onDialogState){dialog.callbacks.onDialogState(this)}switch(dialog.state){case $.verto.enum.state.early:case $.verto.enum.state.active:var speaker=dialog.useSpeak;console.info(\"Using Speaker: \",speaker);if(speaker&&speaker!==\"any\"&&speaker!==\"none\"){setTimeout(function(){dialog.setAudioPlaybackDevice(speaker)},500)}break;case $.verto.enum.state.trying:setTimeout(function(){if(dialog.state==$.verto.enum.state.trying){dialog.setState($.verto.enum.state.hangup)}},3e4);break;case $.verto.enum.state.purge:dialog.setState($.verto.enum.state.destroy);break;case $.verto.enum.state.hangup:if(dialog.lastState.val>$.verto.enum.state.requesting.val&&dialog.lastState.val<$.verto.enum.state.hangup.val){dialog.sendMethod(\"verto.bye\",{})}dialog.setState($.verto.enum.state.destroy);break;case $.verto.enum.state.destroy:if(typeof dialog.verto.options.tag===\"function\"){$(\"#\"+dialog.params.tag).remove()}delete dialog.verto.dialogs[dialog.callID];if(dialog.params.screenShare){dialog.rtc.stopPeer()}else{dialog.rtc.stop()}break}return true};$.verto.dialog.prototype.processReply=function(method,success,e){var dialog=this;switch(method){case\"verto.answer\":case\"verto.attach\":if(success){dialog.setState($.verto.enum.state.active)}else{dialog.hangup()}break;case\"verto.invite\":if(success){dialog.setState($.verto.enum.state.trying)}else{dialog.setState($.verto.enum.state.destroy)}break;case\"verto.bye\":dialog.hangup();break;case\"verto.modify\":if(e.holdState){if(e.holdState==\"held\"){if(dialog.state!=$.verto.enum.state.held){dialog.setState($.verto.enum.state.held)}}else if(e.holdState==\"active\"){if(dialog.state!=$.verto.enum.state.active){dialog.setState($.verto.enum.state.active)}}}if(success){}break;default:break}};$.verto.dialog.prototype.hangup=function(params){var dialog=this;if(params){if(params.causeCode){dialog.causeCode=params.causeCode}if(params.cause){dialog.cause=params.cause}}if(!dialog.cause&&!dialog.causeCode){dialog.cause=\"NORMAL_CLEARING\"}if(dialog.state.val>=$.verto.enum.state.new.val&&dialog.state.val<$.verto.enum.state.hangup.val){dialog.setState($.verto.enum.state.hangup)}else if(dialog.state.val<$.verto.enum.state.destroy){dialog.setState($.verto.enum.state.destroy)}};$.verto.dialog.prototype.stopRinging=function(){var dialog=this;if(dialog.verto.ringer){dialog.verto.ringer.stop()}};$.verto.dialog.prototype.indicateRing=function(){var dialog=this;if(dialog.verto.ringer){if(dialog.params.verto_h_autoanswer&&dialog.params.verto_h_autoanswer==\"true\"){return}dialog.verto.ringer.attr(\"src\",dialog.verto.options.ringFile)[0].play();setTimeout(function(){dialog.stopRinging();if(dialog.state==$.verto.enum.state.ringing){dialog.indicateRing()}},dialog.verto.options.ringSleep)}};$.verto.dialog.prototype.ring=function(){var dialog=this;dialog.setState($.verto.enum.state.ringing);dialog.indicateRing()};$.verto.dialog.prototype.useVideo=function(on){var dialog=this;dialog.params.useVideo=on;if(on){dialog.videoStream=dialog.audioStream}else{dialog.videoStream=null}dialog.rtc.useVideo(dialog.videoStream,dialog.localVideo)};$.verto.dialog.prototype.setMute=function(what){var dialog=this;return dialog.rtc.setMute(what)};$.verto.dialog.prototype.getMute=function(){var dialog=this;return dialog.rtc.getMute()};$.verto.dialog.prototype.setVideoMute=function(what){var dialog=this;return dialog.rtc.setVideoMute(what)};$.verto.dialog.prototype.getVideoMute=function(){var dialog=this;return dialog.rtc.getVideoMute()};$.verto.dialog.prototype.setScreenShare=function(what,videoSender){var dialog=this;return dialog.rtc.setScreenShare(what,videoSender)};$.verto.dialog.prototype.getScreenShare=function(){var dialog=this;return dialog.rtc.getScreenShare()};$.verto.dialog.prototype.useStereo=function(on){var dialog=this;dialog.params.useStereo=on;dialog.rtc.useStereo(on)};$.verto.dialog.prototype.dtmf=function(digits){var dialog=this;if(digits){dialog.sendMethod(\"verto.info\",{dtmf:digits})}};$.verto.dialog.prototype.rtt=function(obj){var dialog=this;var pobj={};if(!obj){return false}pobj.code=obj.code;pobj.chars=obj.chars;if(pobj.chars||pobj.code){dialog.sendMethod(\"verto.info\",{txt:obj,noDialogParams:true})}};$.verto.dialog.prototype.transfer=function(dest,params){var dialog=this;if(dest){dialog.sendMethod(\"verto.modify\",{action:\"transfer\",destination:dest,params:params})}};$.verto.dialog.prototype.replace=function(replaceCallID,params){var dialog=this;if(replaceCallID){dialog.sendMethod(\"verto.modify\",{action:\"replace\",replaceCallID:replaceCallID,params:params})}};$.verto.dialog.prototype.hold=function(params){var dialog=this;dialog.sendMethod(\"verto.modify\",{action:\"hold\",params:params})};$.verto.dialog.prototype.unhold=function(params){var dialog=this;dialog.sendMethod(\"verto.modify\",{action:\"unhold\",params:params})};$.verto.dialog.prototype.toggleHold=function(params){var dialog=this;dialog.sendMethod(\"verto.modify\",{action:\"toggleHold\",params:params})};$.verto.dialog.prototype.message=function(msg){var dialog=this;var err=0;msg.from=dialog.params.login;if(!msg.to){console.error(\"Missing To\");err++}if(!msg.body){console.error(\"Missing Body\");err++}if(err){return false}dialog.sendMethod(\"verto.info\",{msg:msg});return true};$.verto.dialog.prototype.answer=function(params){var dialog=this;if(!dialog.answered){if(!params){params={}}params.sdp=dialog.params.sdp;if(params){if(params.useVideo){dialog.useVideo(true)}dialog.params.callee_id_name=params.callee_id_name;dialog.params.callee_id_number=params.callee_id_number;if(params.useCamera){dialog.useCamera=params.useCamera}if(params.useMic){dialog.useMic=params.useMic}if(params.useSpeak){dialog.useSpeak=params.useSpeak}}dialog.rtc.createAnswer(params);dialog.answered=true}};$.verto.dialog.prototype.handleAnswer=function(params){var dialog=this;dialog.gotAnswer=true;if(dialog.state.val>=$.verto.enum.state.active.val){return}if(dialog.state.val>=$.verto.enum.state.early.val){dialog.setState($.verto.enum.state.active)}else{if(dialog.gotEarly){console.log(\"Dialog \"+dialog.callID+\" Got answer while still establishing early media, delaying...\")}else{console.log(\"Dialog \"+dialog.callID+\" Answering Channel\");dialog.rtc.answer(params.sdp,function(){dialog.setState($.verto.enum.state.active)},function(e){console.error(e);dialog.hangup()});console.log(\"Dialog \"+dialog.callID+\"ANSWER SDP\",params.sdp)}}};$.verto.dialog.prototype.cidString=function(enc){var dialog=this;var party=dialog.params.remote_caller_id_name+(enc?\" &lt;\":\" <\")+dialog.params.remote_caller_id_number+(enc?\"&gt;\":\">\");return party};$.verto.dialog.prototype.sendMessage=function(msg,params){var dialog=this;if(dialog.callbacks.onMessage){dialog.callbacks.onMessage(dialog.verto,dialog,msg,params)}};$.verto.dialog.prototype.handleInfo=function(params){var dialog=this;dialog.sendMessage($.verto.enum.message.info,params)};$.verto.dialog.prototype.handleDisplay=function(params){var dialog=this;if(params.display_name){dialog.params.remote_caller_id_name=params.display_name}if(params.display_number){dialog.params.remote_caller_id_number=params.display_number}dialog.sendMessage($.verto.enum.message.display,{})};$.verto.dialog.prototype.handleMedia=function(params){var dialog=this;if(dialog.state.val>=$.verto.enum.state.early.val){return}dialog.gotEarly=true;dialog.rtc.answer(params.sdp,function(){console.log(\"Dialog \"+dialog.callID+\"Establishing early media\");dialog.setState($.verto.enum.state.early);if(dialog.gotAnswer){console.log(\"Dialog \"+dialog.callID+\"Answering Channel\");dialog.setState($.verto.enum.state.active)}},function(e){console.error(e);dialog.hangup()});console.log(\"Dialog \"+dialog.callID+\"EARLY SDP\",params.sdp)};$.verto.ENUM=function(s){var i=0,o={};s.split(\" \").map(function(x){o[x]={name:x,val:i++}});return Object.freeze(o)};$.verto.enum={};$.verto.enum.states=Object.freeze({new:{requesting:1,recovering:1,ringing:1,destroy:1,answering:1,hangup:1},requesting:{trying:1,hangup:1,active:1},recovering:{answering:1,hangup:1},trying:{active:1,early:1,hangup:1},ringing:{answering:1,hangup:1},answering:{active:1,hangup:1},active:{answering:1,requesting:1,hangup:1,held:1},held:{hangup:1,active:1},early:{hangup:1,active:1},hangup:{destroy:1},destroy:{},purge:{destroy:1}});$.verto.enum.state=$.verto.ENUM(\"new requesting trying recovering ringing answering early active held hangup destroy purge\");$.verto.enum.direction=$.verto.ENUM(\"inbound outbound\");$.verto.enum.message=$.verto.ENUM(\"display info pvtEvent clientReady\");$.verto.enum=Object.freeze($.verto.enum);$.verto.saved=[];$.verto.unloadJobs=[];$(window).bind(\"beforeunload\",function(){for(var f in $.verto.unloadJobs){$.verto.unloadJobs[f]()}if($.verto.haltClosure)return $.verto.haltClosure();for(var i in $.verto.saved){var verto=$.verto.saved[i];if(verto){verto.purge();verto.logout()}}return $.verto.warnOnUnload});$.verto.videoDevices=[];$.verto.audioInDevices=[];$.verto.audioOutDevices=[];var checkDevices=function(runtime){console.info(\"枚举设备\");var aud_in=[],aud_out=[],vid=[];var has_video=0,has_audio=0;var Xstream;function gotDevices(deviceInfos){for(var i=0;i!==deviceInfos.length;++i){var deviceInfo=deviceInfos[i];var text=\"\";console.log(deviceInfo);console.log(deviceInfo.kind+\": \"+deviceInfo.label+\" id = \"+deviceInfo.deviceId);if(deviceInfo.kind===\"audioinput\"){text=deviceInfo.label||\"microphone \"+(aud_in.length+1);aud_in.push({id:deviceInfo.deviceId,kind:\"audio_in\",label:text})}else if(deviceInfo.kind===\"audiooutput\"){text=deviceInfo.label||\"speaker \"+(aud_out.length+1);aud_out.push({id:deviceInfo.deviceId,kind:\"audio_out\",label:text})}else if(deviceInfo.kind===\"videoinput\"){text=deviceInfo.label||\"camera \"+(vid.length+1);vid.push({id:deviceInfo.deviceId,kind:\"video\",label:text})}else{console.log(\"某种其他类型的源/设备: \",deviceInfo)}}$.verto.videoDevices=vid;$.verto.audioInDevices=aud_in;$.verto.audioOutDevices=aud_out;console.info(\"Audio IN Devices\",$.verto.audioInDevices);console.info(\"Audio Out Devices\",$.verto.audioOutDevices);console.info(\"Video Devices\",$.verto.videoDevices);if(Xstream){Xstream.getTracks().forEach(function(track){track.stop()})}if(runtime){runtime(true)}}function handleError(error){console.log(\"设备枚举错误: \",error);if(runtime)runtime(false)}function checkTypes(devs){for(var i=0;i!==devs.length;++i){if(devs[i].kind===\"audioinput\"){has_audio++}else if(devs[i].kind===\"videoinput\"){has_video++}}navigator.getUserMedia({audio:has_audio>0?true:false,video:has_video>0?true:false},function(stream){Xstream=stream;navigator.mediaDevices.enumerateDevices().then(gotDevices).catch(handleError)},function(err){console.log(\"出现以下错误: \"+err.name)})}navigator.mediaDevices.enumerateDevices().then(checkTypes).catch(handleError)};$.verto.refreshDevices=function(runtime){checkDevices(runtime)};$.verto.init=function(obj,runtime){if(!obj){obj={}}if(!obj.skipPermCheck&&!obj.skipDeviceCheck){$.FSRTC.checkPerms(function(status){checkDevices(runtime)},true,true)}else if(obj.skipPermCheck&&!obj.skipDeviceCheck){checkDevices(runtime)}else if(!obj.skipPermCheck&&obj.skipDeviceCheck){$.FSRTC.checkPerms(function(status){runtime(status)},true,true)}else{runtime(null)}};$.verto.genUUID=function(){return generateGUID()}})(TRjQuery);let vertoHandle=null;let cur_call_map={};let ringing=false;let verto_login=null;let verto_password=null;let first_login=false;let online_visible=false;let userCallback=null;function bootstrap(login,password,socketUrl,localIp,peerTag,localTag,callback,mic,speak,cam,ringFile,ringTag){verto_login=login;verto_password=password;cur_call_map={};userCallback=new Proxy(callback,{get(target,propKey){const originalMethod=target[propKey];if(typeof originalMethod===\"function\"){return function(...args){console.log(`Callback API Calling ${String(propKey)} with arguments:`,args);return originalMethod.apply(this,args)}}return originalMethod}});vertoHandle=new TRjQuery.verto({login:login,passwd:password,socketUrl:socketUrl,browserIP:localIp,tag:peerTag,localTag:localTag,ringTag:ringTag,ringFile:ringFile,videoParams:{minWidth:640,minHeight:480,maxWidth:1920,maxHeight:1080,minFrameRate:15,vertoBestFrameRate:25},audioParams:{googAutoGainControl:false,googNoiseSuppression:false,googHighpassFilter:false},deviceParams:{useMic:mic,useSpeak:speak,useCamera:cam}},vertoCallbacks);online(false)}function rtcLogin(){online(false);vertoHandle.loginData({login:verto_login,passwd:verto_password});vertoHandle.login()}function rtcLogout(){rtcHangupAll();vertoHandle.logout();online(false)}function online(on){if(on){first_login=true;if(userCallback&&typeof userCallback.onLogin===\"function\"){userCallback.onLogin()}}else{if(userCallback&&typeof userCallback.onLogout===\"function\"){userCallback.onLogout()}}online_visible=on}let vertoCallbacks={onMessage:function(verto,dialog,msg,data){},onDialogState:function(d){cur_call_map[d.callID]=d;if(d.state==TRjQuery.verto.enum.state.ringing){ringing=true}else{ringing=false}switch(d.state){case TRjQuery.verto.enum.state.ringing:console.log(\"Ringing: \"+d.cidString());if(userCallback&&typeof userCallback.onRinging===\"function\"){userCallback.onRinging(d)}break;case TRjQuery.verto.enum.state.trying:console.log(\"Calling: \"+d.cidString());if(userCallback&&typeof userCallback.onCalling===\"function\"){userCallback.onCalling(d)}break;case TRjQuery.verto.enum.state.early:console.log(\"Early: \"+d.cidString());break;case TRjQuery.verto.enum.state.active:console.log(\"Talking to: \"+d.cidString());if(userCallback&&typeof userCallback.onAnswer===\"function\"){userCallback.onAnswer(d)}break;case TRjQuery.verto.enum.state.hangup:console.log(\"Call ended with cause: \"+d.cause);break;case TRjQuery.verto.enum.state.destroy:console.log(\"destroy\");if(userCallback&&typeof userCallback.onHangup===\"function\"){userCallback.onHangup(d)}delete cur_call_map[d.callID];break;case TRjQuery.verto.enum.state.held:console.log(\"held\");if(userCallback&&typeof userCallback.onHold===\"function\"){userCallback.onHold(d)}break;case TRjQuery.verto.enum.state.recovering:console.log(\"recovering\");if(userCallback&&typeof userCallback.onRecover===\"function\"){userCallback.onRecover(d)}break;default:break}},onWSLogin:function(v,success){cur_call_map={};ringing=false;if(success){online(true)}},onWSClose:function(v,success){online(false)},onEvent:function(v,e){console.debug(\"GOT EVENT\",e)}};function rtcHold(callID){cur_call_map[callID].hold()}function rtcUnhold(callID){cur_call_map[callID].unhold()}function rtcHoldUnhold(callID){cur_call_map[callID].toggleHold()}function rtcDtmf(callID,key){if(key===\"#\"||key===\"*\"||key===\"0\"||key>0&&key<=9){cur_call_map[callID].dtmf(key)}}function rtcHangupAll(){vertoHandle.hangup();cur_call_map={}}function rtcHangup(callID){vertoHandle.hangup(callID);delete cur_call_map[callID]}function rtcDial(destinationNumber,useVideo){if(!useVideo){useVideo=false}console.log(\"正在呼叫\");let cur_call=vertoHandle.newCall({destination_number:destinationNumber,caller_id_name:verto_login,caller_id_number:verto_login,outgoingBandwidth:\"default\",incomingBandwidth:\"default\",userVariables:{email:\"test@test.com\"},useVideo:useVideo,useStereo:false,mirrorInput:true});cur_call_map[cur_call.callID]=cur_call}function rtcAnswer(d,videoFlag){d.answer({useVideo:videoFlag,useStereo:false})}function rtcGetMuteState(callID){return cur_call_map[callID].getMute()}function rtcMute(callID){cur_call_map[callID].setMute(\"off\")}function rtcUnmute(callID){cur_call_map[callID].setMute(\"on\")}function rtcMuteUnmute(callID){cur_call_map[callID].setMute(\"toggle\")}function rtcGetMuteVideoState(callID){return cur_call_map[callID].getVideoMute()}function rtcMuteVideo(callID){cur_call_map[callID].setVideoMute(\"off\")}function rtcUnmuteVideo(callID){cur_call_map[callID].setVideoMute(\"on\")}function rtcMuteUnmuteVideo(callID){cur_call_map[callID].setVideoMute(\"toggle\")}let bandwidthTestData;function rtcTestBandwidth(){let bytesToSendAndReceive=1024*256*50;return new Promise((resolve,reject)=>{try{vertoHandle.rpcClient.speedTest(bytesToSendAndReceive,function(event,data){let upBand=Math.ceil(data.upKPS);let downBand=Math.ceil(data.downKPS);console.log(\"[带宽测试] 上行: \"+upBand/1024+\"Mbit/s, 下行: \"+downBand/1024+\"Mbit/s\");bandwidthTestData=data;resolve(bandwidthTestData)})}catch(e){bandwidthTestData=null;reject(e)}})}async function getMediaDevices(){try{let stream=await navigator.mediaDevices.getUserMedia({audio:true,video:true});return getTracks(stream)}catch(err){console.log(err.name+\": \"+err.message)}try{let stream=await navigator.mediaDevices.getUserMedia({audio:true,video:false});return getTracks(stream)}catch(err){console.log(err.name+\": \"+err.message)}}async function getTracks(stream){stream.getTracks().forEach(track=>track.stop());let devices=await navigator.mediaDevices.enumerateDevices();let audioInputDevices=[];let audioOutputDevices=[];let videoDevices=[];devices.forEach(function(device){if(device.kind===\"audioinput\"){audioInputDevices.push(device)}else if(device.kind===\"audiooutput\"){audioOutputDevices.push(device)}else if(device.kind===\"videoinput\"){videoDevices.push(device)}});return{audioInputDevices:audioInputDevices,audioOutputDevices:audioOutputDevices,videoDevices:videoDevices}}function rtcStartScreenShare(callID){let screenShare=cur_call_map[callID].setScreenShare(\"on\",getVideoSendersByCallId(callID));if(screenShare){let peerConn=getPeerConnByCallId(callID);peerConn.onnegotiationneeded=()=>{peerConn.createOffer().then(offer=>{return peerConn.setLocalDescription(offer)}).then(()=>{console.log(\"-----发送新的offer\")})}}}function rtcStopScreenShare(callID){cur_call_map[callID].setScreenShare(\"off\",getVideoSendersByCallId(callID))}function rtcStartStopScreenShare(callID){cur_call_map[callID].setScreenShare(\"toggle\",getVideoSendersByCallId(callID))}function rtcGetScreenShareState(callID){return cur_call_map[callID].getScreenShare()}function getVideoSendersByCallId(callID){let peerConn=getPeerConnByCallId(callID);var senders=peerConn.getSenders();if(senders&&senders.length>0){var rtcRtpSender00=senders.find(s=>s.track.kind===\"video\");if(rtcRtpSender00){return rtcRtpSender00}}return}function getPeerConnByCallId(callID){var callRtc=cur_call_map[callID].rtc;return callRtc.peer.peer}function refreshDevices(runtime){TRjQuery.verto.refreshDevices(runtime)}function init(obj,runtime){if(typeof runtime!=\"function\"){runtime=function(e){console.log(e)}}TRjQuery.verto.init(obj,runtime)}function getVideoDevices(){return TRjQuery.verto.videoDevices}function getAudioInDevices(){return TRjQuery.verto.audioInDevices}function getAudioOutDevices(){return TRjQuery.verto.audioOutDevices}const rtcHelper={bootstrap:bootstrap,rtcLogin:rtcLogin,rtcLogout:rtcLogout,rtcHold:rtcHold,rtcUnhold:rtcUnhold,rtcHoldUnhold:rtcHoldUnhold,rtcDtmf:rtcDtmf,rtcHangupAll:rtcHangupAll,rtcHangup:rtcHangup,rtcDial:rtcDial,rtcAnswer:rtcAnswer,rtcGetMuteState:rtcGetMuteState,rtcMute:rtcMute,rtcUnmute:rtcUnmute,rtcMuteUnmute:rtcMuteUnmute,rtcGetMuteVideoState:rtcGetMuteVideoState,rtcMuteVideo:rtcMuteVideo,rtcUnmuteVideo:rtcUnmuteVideo,rtcMuteUnmuteVideo:rtcMuteUnmuteVideo,rtcTestBandwidth:rtcTestBandwidth,getMediaDevices:getMediaDevices,rtcStartScreenShare:rtcStartScreenShare,rtcStopScreenShare:rtcStopScreenShare,rtcStartStopScreenShare:rtcStartStopScreenShare,rtcGetScreenShareState:rtcGetScreenShareState,init:init,refreshDevices:refreshDevices,videoDevices:getVideoDevices,audioInDevices:getAudioInDevices,audioOutDevices:getAudioOutDevices};const rtcHelperWithLogging=new Proxy(rtcHelper,{get(target,propKey){const originalMethod=target[propKey];if(typeof originalMethod===\"function\"){return function(...args){console.log(`WebRTC API Calling ${String(propKey)} with arguments:`,args);return originalMethod.apply(this,args)}}return originalMethod}});export{rtcHelperWithLogging,rtcHelper};(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.adapter=f()}})(function(){var define,module,exports;return function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r}()({1:[function(require,module,exports){\"use strict\";var _adapter_factory=require(\"./adapter_factory.js\");var adapter=(0,_adapter_factory.adapterFactory)({window:typeof window===\"undefined\"?undefined:window});module.exports=adapter},{\"./adapter_factory.js\":2}],2:[function(require,module,exports){\"use strict\";function _typeof(obj){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&\"function\"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj},_typeof(obj)}Object.defineProperty(exports,\"__esModule\",{value:true});exports.adapterFactory=adapterFactory;var utils=_interopRequireWildcard(require(\"./utils\"));var chromeShim=_interopRequireWildcard(require(\"./chrome/chrome_shim\"));var firefoxShim=_interopRequireWildcard(require(\"./firefox/firefox_shim\"));var safariShim=_interopRequireWildcard(require(\"./safari/safari_shim\"));var commonShim=_interopRequireWildcard(require(\"./common_shim\"));var sdp=_interopRequireWildcard(require(\"sdp\"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!==\"function\")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||_typeof(obj)!==\"object\"&&typeof obj!==\"function\"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!==\"default\"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj[\"default\"]=obj;if(cache){cache.set(obj,newObj)}return newObj}function adapterFactory(){var _ref=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{},window=_ref.window;var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{shimChrome:true,shimFirefox:true,shimSafari:true};var logging=utils.log;var browserDetails=utils.detectBrowser(window);var adapter={browserDetails:browserDetails,commonShim:commonShim,extractVersion:utils.extractVersion,disableLog:utils.disableLog,disableWarnings:utils.disableWarnings,sdp:sdp};switch(browserDetails.browser){case\"chrome\":if(!chromeShim||!chromeShim.shimPeerConnection||!options.shimChrome){logging(\"Chrome shim is not included in this adapter release.\");return adapter}if(browserDetails.version===null){logging(\"Chrome shim can not determine version, not shimming.\");return adapter}logging(\"adapter.js shimming chrome.\");adapter.browserShim=chromeShim;commonShim.shimAddIceCandidateNullOrEmpty(window,browserDetails);commonShim.shimParameterlessSetLocalDescription(window,browserDetails);chromeShim.shimGetUserMedia(window,browserDetails);chromeShim.shimMediaStream(window,browserDetails);chromeShim.shimPeerConnection(window,browserDetails);chromeShim.shimOnTrack(window,browserDetails);chromeShim.shimAddTrackRemoveTrack(window,browserDetails);chromeShim.shimGetSendersWithDtmf(window,browserDetails);chromeShim.shimGetStats(window,browserDetails);chromeShim.shimSenderReceiverGetStats(window,browserDetails);chromeShim.fixNegotiationNeeded(window,browserDetails);commonShim.shimRTCIceCandidate(window,browserDetails);commonShim.shimRTCIceCandidateRelayProtocol(window,browserDetails);commonShim.shimConnectionState(window,browserDetails);commonShim.shimMaxMessageSize(window,browserDetails);commonShim.shimSendThrowTypeError(window,browserDetails);commonShim.removeExtmapAllowMixed(window,browserDetails);break;case\"firefox\":if(!firefoxShim||!firefoxShim.shimPeerConnection||!options.shimFirefox){logging(\"Firefox shim is not included in this adapter release.\");return adapter}logging(\"adapter.js shimming firefox.\");adapter.browserShim=firefoxShim;commonShim.shimAddIceCandidateNullOrEmpty(window,browserDetails);commonShim.shimParameterlessSetLocalDescription(window,browserDetails);firefoxShim.shimGetUserMedia(window,browserDetails);firefoxShim.shimPeerConnection(window,browserDetails);firefoxShim.shimOnTrack(window,browserDetails);firefoxShim.shimRemoveStream(window,browserDetails);firefoxShim.shimSenderGetStats(window,browserDetails);firefoxShim.shimReceiverGetStats(window,browserDetails);firefoxShim.shimRTCDataChannel(window,browserDetails);firefoxShim.shimAddTransceiver(window,browserDetails);firefoxShim.shimGetParameters(window,browserDetails);firefoxShim.shimCreateOffer(window,browserDetails);firefoxShim.shimCreateAnswer(window,browserDetails);commonShim.shimRTCIceCandidate(window,browserDetails);commonShim.shimConnectionState(window,browserDetails);commonShim.shimMaxMessageSize(window,browserDetails);commonShim.shimSendThrowTypeError(window,browserDetails);break;case\"safari\":if(!safariShim||!options.shimSafari){logging(\"Safari shim is not included in this adapter release.\");return adapter}logging(\"adapter.js shimming safari.\");adapter.browserShim=safariShim;commonShim.shimAddIceCandidateNullOrEmpty(window,browserDetails);commonShim.shimParameterlessSetLocalDescription(window,browserDetails);safariShim.shimRTCIceServerUrls(window,browserDetails);safariShim.shimCreateOfferLegacy(window,browserDetails);safariShim.shimCallbacksAPI(window,browserDetails);safariShim.shimLocalStreamsAPI(window,browserDetails);safariShim.shimRemoteStreamsAPI(window,browserDetails);safariShim.shimTrackEventTransceiver(window,browserDetails);safariShim.shimGetUserMedia(window,browserDetails);safariShim.shimAudioContext(window,browserDetails);commonShim.shimRTCIceCandidate(window,browserDetails);commonShim.shimRTCIceCandidateRelayProtocol(window,browserDetails);commonShim.shimMaxMessageSize(window,browserDetails);commonShim.shimSendThrowTypeError(window,browserDetails);commonShim.removeExtmapAllowMixed(window,browserDetails);break;default:logging(\"Unsupported browser!\");break}return adapter}},{\"./chrome/chrome_shim\":3,\"./common_shim\":6,\"./firefox/firefox_shim\":7,\"./safari/safari_shim\":10,\"./utils\":11,sdp:12}],3:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.fixNegotiationNeeded=fixNegotiationNeeded;exports.shimAddTrackRemoveTrack=shimAddTrackRemoveTrack;exports.shimAddTrackRemoveTrackWithNative=shimAddTrackRemoveTrackWithNative;Object.defineProperty(exports,\"shimGetDisplayMedia\",{enumerable:true,get:function get(){return _getdisplaymedia.shimGetDisplayMedia}});exports.shimGetSendersWithDtmf=shimGetSendersWithDtmf;exports.shimGetStats=shimGetStats;Object.defineProperty(exports,\"shimGetUserMedia\",{enumerable:true,get:function get(){return _getusermedia.shimGetUserMedia}});exports.shimMediaStream=shimMediaStream;exports.shimOnTrack=shimOnTrack;exports.shimPeerConnection=shimPeerConnection;exports.shimSenderReceiverGetStats=shimSenderReceiverGetStats;var utils=_interopRequireWildcard(require(\"../utils.js\"));var _getusermedia=require(\"./getusermedia\");var _getdisplaymedia=require(\"./getdisplaymedia\");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!==\"function\")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||_typeof(obj)!==\"object\"&&typeof obj!==\"function\"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!==\"default\"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj[\"default\"]=obj;if(cache){cache.set(obj,newObj)}return newObj}function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _toPropertyKey(arg){var key=_toPrimitive(arg,\"string\");return _typeof(key)===\"symbol\"?key:String(key)}function _toPrimitive(input,hint){if(_typeof(input)!==\"object\"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||\"default\");if(_typeof(res)!==\"object\")return res;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(hint===\"string\"?String:Number)(input)}function _typeof(obj){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&\"function\"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj},_typeof(obj)}function shimMediaStream(window){window.MediaStream=window.MediaStream||window.webkitMediaStream}function shimOnTrack(window){if(_typeof(window)===\"object\"&&window.RTCPeerConnection&&!(\"ontrack\"in window.RTCPeerConnection.prototype)){Object.defineProperty(window.RTCPeerConnection.prototype,\"ontrack\",{get:function get(){return this._ontrack},set:function set(f){if(this._ontrack){this.removeEventListener(\"track\",this._ontrack)}this.addEventListener(\"track\",this._ontrack=f)},enumerable:true,configurable:true});var origSetRemoteDescription=window.RTCPeerConnection.prototype.setRemoteDescription;window.RTCPeerConnection.prototype.setRemoteDescription=function setRemoteDescription(){var _this=this;if(!this._ontrackpoly){this._ontrackpoly=function(e){e.stream.addEventListener(\"addtrack\",function(te){var receiver;if(window.RTCPeerConnection.prototype.getReceivers){receiver=_this.getReceivers().find(function(r){return r.track&&r.track.id===te.track.id})}else{receiver={track:te.track}}var event=new Event(\"track\");event.track=te.track;event.receiver=receiver;event.transceiver={receiver:receiver};event.streams=[e.stream];_this.dispatchEvent(event)});e.stream.getTracks().forEach(function(track){var receiver;if(window.RTCPeerConnection.prototype.getReceivers){receiver=_this.getReceivers().find(function(r){return r.track&&r.track.id===track.id})}else{receiver={track:track}}var event=new Event(\"track\");event.track=track;event.receiver=receiver;event.transceiver={receiver:receiver};event.streams=[e.stream];_this.dispatchEvent(event)})};this.addEventListener(\"addstream\",this._ontrackpoly)}return origSetRemoteDescription.apply(this,arguments)}}else{utils.wrapPeerConnectionEvent(window,\"track\",function(e){if(!e.transceiver){Object.defineProperty(e,\"transceiver\",{value:{receiver:e.receiver}})}return e})}}function shimGetSendersWithDtmf(window){if(_typeof(window)===\"object\"&&window.RTCPeerConnection&&!(\"getSenders\"in window.RTCPeerConnection.prototype)&&\"createDTMFSender\"in window.RTCPeerConnection.prototype){var shimSenderWithDtmf=function shimSenderWithDtmf(pc,track){return{track:track,get dtmf(){if(this._dtmf===undefined){if(track.kind===\"audio\"){this._dtmf=pc.createDTMFSender(track)}else{this._dtmf=null}}return this._dtmf},_pc:pc}};if(!window.RTCPeerConnection.prototype.getSenders){window.RTCPeerConnection.prototype.getSenders=function getSenders(){this._senders=this._senders||[];return this._senders.slice()};var origAddTrack=window.RTCPeerConnection.prototype.addTrack;window.RTCPeerConnection.prototype.addTrack=function addTrack(track,stream){var sender=origAddTrack.apply(this,arguments);if(!sender){sender=shimSenderWithDtmf(this,track);this._senders.push(sender)}return sender};var origRemoveTrack=window.RTCPeerConnection.prototype.removeTrack;window.RTCPeerConnection.prototype.removeTrack=function removeTrack(sender){origRemoveTrack.apply(this,arguments);var idx=this._senders.indexOf(sender);if(idx!==-1){this._senders.splice(idx,1)}}}var origAddStream=window.RTCPeerConnection.prototype.addStream;window.RTCPeerConnection.prototype.addStream=function addStream(stream){var _this2=this;this._senders=this._senders||[];origAddStream.apply(this,[stream]);stream.getTracks().forEach(function(track){_this2._senders.push(shimSenderWithDtmf(_this2,track))})};var origRemoveStream=window.RTCPeerConnection.prototype.removeStream;window.RTCPeerConnection.prototype.removeStream=function removeStream(stream){var _this3=this;this._senders=this._senders||[];origRemoveStream.apply(this,[stream]);stream.getTracks().forEach(function(track){var sender=_this3._senders.find(function(s){return s.track===track});if(sender){_this3._senders.splice(_this3._senders.indexOf(sender),1)}})}}else if(_typeof(window)===\"object\"&&window.RTCPeerConnection&&\"getSenders\"in window.RTCPeerConnection.prototype&&\"createDTMFSender\"in window.RTCPeerConnection.prototype&&window.RTCRtpSender&&!(\"dtmf\"in window.RTCRtpSender.prototype)){var origGetSenders=window.RTCPeerConnection.prototype.getSenders;window.RTCPeerConnection.prototype.getSenders=function getSenders(){var _this4=this;var senders=origGetSenders.apply(this,[]);senders.forEach(function(sender){return sender._pc=_this4});return senders};Object.defineProperty(window.RTCRtpSender.prototype,\"dtmf\",{get:function get(){if(this._dtmf===undefined){if(this.track.kind===\"audio\"){this._dtmf=this._pc.createDTMFSender(this.track)}else{this._dtmf=null}}return this._dtmf}})}}function shimGetStats(window){if(!window.RTCPeerConnection){return}var origGetStats=window.RTCPeerConnection.prototype.getStats;window.RTCPeerConnection.prototype.getStats=function getStats(){var _this5=this;var _arguments=Array.prototype.slice.call(arguments),selector=_arguments[0],onSucc=_arguments[1],onErr=_arguments[2];if(arguments.length>0&&typeof selector===\"function\"){return origGetStats.apply(this,arguments)}if(origGetStats.length===0&&(arguments.length===0||typeof selector!==\"function\")){return origGetStats.apply(this,[])}var fixChromeStats_=function fixChromeStats_(response){var standardReport={};var reports=response.result();reports.forEach(function(report){var standardStats={id:report.id,timestamp:report.timestamp,type:{localcandidate:\"local-candidate\",remotecandidate:\"remote-candidate\"}[report.type]||report.type};report.names().forEach(function(name){standardStats[name]=report.stat(name)});standardReport[standardStats.id]=standardStats});return standardReport};var makeMapStats=function makeMapStats(stats){return new Map(Object.keys(stats).map(function(key){return[key,stats[key]]}))};if(arguments.length>=2){var successCallbackWrapper_=function successCallbackWrapper_(response){onSucc(makeMapStats(fixChromeStats_(response)))};return origGetStats.apply(this,[successCallbackWrapper_,selector])}return new Promise(function(resolve,reject){origGetStats.apply(_this5,[function(response){resolve(makeMapStats(fixChromeStats_(response)))},reject])}).then(onSucc,onErr)}}function shimSenderReceiverGetStats(window){if(!(_typeof(window)===\"object\"&&window.RTCPeerConnection&&window.RTCRtpSender&&window.RTCRtpReceiver)){return}if(!(\"getStats\"in window.RTCRtpSender.prototype)){var origGetSenders=window.RTCPeerConnection.prototype.getSenders;if(origGetSenders){window.RTCPeerConnection.prototype.getSenders=function getSenders(){var _this6=this;var senders=origGetSenders.apply(this,[]);senders.forEach(function(sender){return sender._pc=_this6});return senders}}var origAddTrack=window.RTCPeerConnection.prototype.addTrack;if(origAddTrack){window.RTCPeerConnection.prototype.addTrack=function addTrack(){var sender=origAddTrack.apply(this,arguments);sender._pc=this;return sender}}window.RTCRtpSender.prototype.getStats=function getStats(){var sender=this;return this._pc.getStats().then(function(result){return utils.filterStats(result,sender.track,true)})}}if(!(\"getStats\"in window.RTCRtpReceiver.prototype)){var origGetReceivers=window.RTCPeerConnection.prototype.getReceivers;if(origGetReceivers){window.RTCPeerConnection.prototype.getReceivers=function getReceivers(){var _this7=this;var receivers=origGetReceivers.apply(this,[]);receivers.forEach(function(receiver){return receiver._pc=_this7});return receivers}}utils.wrapPeerConnectionEvent(window,\"track\",function(e){e.receiver._pc=e.srcElement;return e});window.RTCRtpReceiver.prototype.getStats=function getStats(){var receiver=this;return this._pc.getStats().then(function(result){return utils.filterStats(result,receiver.track,false)})}}if(!(\"getStats\"in window.RTCRtpSender.prototype&&\"getStats\"in window.RTCRtpReceiver.prototype)){return}var origGetStats=window.RTCPeerConnection.prototype.getStats;window.RTCPeerConnection.prototype.getStats=function getStats(){if(arguments.length>0&&arguments[0]instanceof window.MediaStreamTrack){var track=arguments[0];var sender;var receiver;var err;this.getSenders().forEach(function(s){if(s.track===track){if(sender){err=true}else{sender=s}}});this.getReceivers().forEach(function(r){if(r.track===track){if(receiver){err=true}else{receiver=r}}return r.track===track});if(err||sender&&receiver){return Promise.reject(new DOMException(\"There are more than one sender or receiver for the track.\",\"InvalidAccessError\"))}else if(sender){return sender.getStats()}else if(receiver){return receiver.getStats()}return Promise.reject(new DOMException(\"There is no sender or receiver for the track.\",\"InvalidAccessError\"))}return origGetStats.apply(this,arguments)}}function shimAddTrackRemoveTrackWithNative(window){window.RTCPeerConnection.prototype.getLocalStreams=function getLocalStreams(){var _this8=this;this._shimmedLocalStreams=this._shimmedLocalStreams||{};return Object.keys(this._shimmedLocalStreams).map(function(streamId){return _this8._shimmedLocalStreams[streamId][0]})};var origAddTrack=window.RTCPeerConnection.prototype.addTrack;window.RTCPeerConnection.prototype.addTrack=function addTrack(track,stream){if(!stream){return origAddTrack.apply(this,arguments)}this._shimmedLocalStreams=this._shimmedLocalStreams||{};var sender=origAddTrack.apply(this,arguments);if(!this._shimmedLocalStreams[stream.id]){this._shimmedLocalStreams[stream.id]=[stream,sender]}else if(this._shimmedLocalStreams[stream.id].indexOf(sender)===-1){this._shimmedLocalStreams[stream.id].push(sender)}return sender};var origAddStream=window.RTCPeerConnection.prototype.addStream;window.RTCPeerConnection.prototype.addStream=function addStream(stream){var _this9=this;this._shimmedLocalStreams=this._shimmedLocalStreams||{};stream.getTracks().forEach(function(track){var alreadyExists=_this9.getSenders().find(function(s){return s.track===track});if(alreadyExists){throw new DOMException(\"Track already exists.\",\"InvalidAccessError\")}});var existingSenders=this.getSenders();origAddStream.apply(this,arguments);var newSenders=this.getSenders().filter(function(newSender){return existingSenders.indexOf(newSender)===-1});this._shimmedLocalStreams[stream.id]=[stream].concat(newSenders)};var origRemoveStream=window.RTCPeerConnection.prototype.removeStream;window.RTCPeerConnection.prototype.removeStream=function removeStream(stream){this._shimmedLocalStreams=this._shimmedLocalStreams||{};delete this._shimmedLocalStreams[stream.id];return origRemoveStream.apply(this,arguments)};var origRemoveTrack=window.RTCPeerConnection.prototype.removeTrack;window.RTCPeerConnection.prototype.removeTrack=function removeTrack(sender){var _this10=this;this._shimmedLocalStreams=this._shimmedLocalStreams||{};if(sender){Object.keys(this._shimmedLocalStreams).forEach(function(streamId){var idx=_this10._shimmedLocalStreams[streamId].indexOf(sender);if(idx!==-1){_this10._shimmedLocalStreams[streamId].splice(idx,1)}if(_this10._shimmedLocalStreams[streamId].length===1){delete _this10._shimmedLocalStreams[streamId]}})}return origRemoveTrack.apply(this,arguments)}}function shimAddTrackRemoveTrack(window,browserDetails){if(!window.RTCPeerConnection){return}if(window.RTCPeerConnection.prototype.addTrack&&browserDetails.version>=65){return shimAddTrackRemoveTrackWithNative(window)}var origGetLocalStreams=window.RTCPeerConnection.prototype.getLocalStreams;window.RTCPeerConnection.prototype.getLocalStreams=function getLocalStreams(){var _this11=this;var nativeStreams=origGetLocalStreams.apply(this);this._reverseStreams=this._reverseStreams||{};return nativeStreams.map(function(stream){return _this11._reverseStreams[stream.id]})};var origAddStream=window.RTCPeerConnection.prototype.addStream;window.RTCPeerConnection.prototype.addStream=function addStream(stream){var _this12=this;this._streams=this._streams||{};this._reverseStreams=this._reverseStreams||{};stream.getTracks().forEach(function(track){var alreadyExists=_this12.getSenders().find(function(s){return s.track===track});if(alreadyExists){throw new DOMException(\"Track already exists.\",\"InvalidAccessError\")}});if(!this._reverseStreams[stream.id]){var newStream=new window.MediaStream(stream.getTracks());this._streams[stream.id]=newStream;this._reverseStreams[newStream.id]=stream;stream=newStream}origAddStream.apply(this,[stream])};var origRemoveStream=window.RTCPeerConnection.prototype.removeStream;window.RTCPeerConnection.prototype.removeStream=function removeStream(stream){this._streams=this._streams||{};this._reverseStreams=this._reverseStreams||{};origRemoveStream.apply(this,[this._streams[stream.id]||stream]);delete this._reverseStreams[this._streams[stream.id]?this._streams[stream.id].id:stream.id];delete this._streams[stream.id]};window.RTCPeerConnection.prototype.addTrack=function addTrack(track,stream){var _this13=this;if(this.signalingState===\"closed\"){throw new DOMException(\"The RTCPeerConnection's signalingState is 'closed'.\",\"InvalidStateError\")}var streams=[].slice.call(arguments,1);if(streams.length!==1||!streams[0].getTracks().find(function(t){return t===track})){throw new DOMException(\"The adapter.js addTrack polyfill only supports a single \"+\" stream which is associated with the specified track.\",\"NotSupportedError\")}var alreadyExists=this.getSenders().find(function(s){return s.track===track});if(alreadyExists){throw new DOMException(\"Track already exists.\",\"InvalidAccessError\")}this._streams=this._streams||{};this._reverseStreams=this._reverseStreams||{};var oldStream=this._streams[stream.id];if(oldStream){oldStream.addTrack(track);Promise.resolve().then(function(){_this13.dispatchEvent(new Event(\"negotiationneeded\"))})}else{var newStream=new window.MediaStream([track]);this._streams[stream.id]=newStream;this._reverseStreams[newStream.id]=stream;this.addStream(newStream)}return this.getSenders().find(function(s){return s.track===track})};function replaceInternalStreamId(pc,description){var sdp=description.sdp;Object.keys(pc._reverseStreams||[]).forEach(function(internalId){var externalStream=pc._reverseStreams[internalId];var internalStream=pc._streams[externalStream.id];sdp=sdp.replace(new RegExp(internalStream.id,\"g\"),externalStream.id)});return new RTCSessionDescription({type:description.type,sdp:sdp})}function replaceExternalStreamId(pc,description){var sdp=description.sdp;Object.keys(pc._reverseStreams||[]).forEach(function(internalId){var externalStream=pc._reverseStreams[internalId];var internalStream=pc._streams[externalStream.id];sdp=sdp.replace(new RegExp(externalStream.id,\"g\"),internalStream.id)});return new RTCSessionDescription({type:description.type,sdp:sdp})}[\"createOffer\",\"createAnswer\"].forEach(function(method){var nativeMethod=window.RTCPeerConnection.prototype[method];var methodObj=_defineProperty({},method,function(){var _this14=this;var args=arguments;var isLegacyCall=arguments.length&&typeof arguments[0]===\"function\";if(isLegacyCall){return nativeMethod.apply(this,[function(description){var desc=replaceInternalStreamId(_this14,description);args[0].apply(null,[desc])},function(err){if(args[1]){args[1].apply(null,err)}},arguments[2]])}return nativeMethod.apply(this,arguments).then(function(description){return replaceInternalStreamId(_this14,description)})});window.RTCPeerConnection.prototype[method]=methodObj[method]});var origSetLocalDescription=window.RTCPeerConnection.prototype.setLocalDescription;window.RTCPeerConnection.prototype.setLocalDescription=function setLocalDescription(){if(!arguments.length||!arguments[0].type){return origSetLocalDescription.apply(this,arguments)}arguments[0]=replaceExternalStreamId(this,arguments[0]);return origSetLocalDescription.apply(this,arguments)};var origLocalDescription=Object.getOwnPropertyDescriptor(window.RTCPeerConnection.prototype,\"localDescription\");Object.defineProperty(window.RTCPeerConnection.prototype,\"localDescription\",{get:function get(){var description=origLocalDescription.get.apply(this);if(description.type===\"\"){return description}return replaceInternalStreamId(this,description)}});window.RTCPeerConnection.prototype.removeTrack=function removeTrack(sender){var _this15=this;if(this.signalingState===\"closed\"){throw new DOMException(\"The RTCPeerConnection's signalingState is 'closed'.\",\"InvalidStateError\")}if(!sender._pc){throw new DOMException(\"Argument 1 of RTCPeerConnection.removeTrack \"+\"does not implement interface RTCRtpSender.\",\"TypeError\")}var isLocal=sender._pc===this;if(!isLocal){throw new DOMException(\"Sender was not created by this connection.\",\"InvalidAccessError\")}this._streams=this._streams||{};var stream;Object.keys(this._streams).forEach(function(streamid){var hasTrack=_this15._streams[streamid].getTracks().find(function(track){return sender.track===track});if(hasTrack){stream=_this15._streams[streamid]}});if(stream){if(stream.getTracks().length===1){this.removeStream(this._reverseStreams[stream.id])}else{stream.removeTrack(sender.track)}this.dispatchEvent(new Event(\"negotiationneeded\"))}}}function shimPeerConnection(window,browserDetails){if(!window.RTCPeerConnection&&window.webkitRTCPeerConnection){window.RTCPeerConnection=window.webkitRTCPeerConnection}if(!window.RTCPeerConnection){return}if(browserDetails.version<53){[\"setLocalDescription\",\"setRemoteDescription\",\"addIceCandidate\"].forEach(function(method){var nativeMethod=window.RTCPeerConnection.prototype[method];var methodObj=_defineProperty({},method,function(){arguments[0]=new(method===\"addIceCandidate\"?window.RTCIceCandidate:window.RTCSessionDescription)(arguments[0]);return nativeMethod.apply(this,arguments)});window.RTCPeerConnection.prototype[method]=methodObj[method]})}}function fixNegotiationNeeded(window,browserDetails){utils.wrapPeerConnectionEvent(window,\"negotiationneeded\",function(e){var pc=e.target;if(browserDetails.version<72||pc.getConfiguration&&pc.getConfiguration().sdpSemantics===\"plan-b\"){if(pc.signalingState!==\"stable\"){return}}return e})}},{\"../utils.js\":11,\"./getdisplaymedia\":4,\"./getusermedia\":5}],4:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.shimGetDisplayMedia=shimGetDisplayMedia;function shimGetDisplayMedia(window,getSourceId){if(window.navigator.mediaDevices&&\"getDisplayMedia\"in window.navigator.mediaDevices){return}if(!window.navigator.mediaDevices){return}if(typeof getSourceId!==\"function\"){console.error(\"shimGetDisplayMedia: getSourceId argument is not \"+\"a function\");return}window.navigator.mediaDevices.getDisplayMedia=function getDisplayMedia(constraints){return getSourceId(constraints).then(function(sourceId){var widthSpecified=constraints.video&&constraints.video.width;var heightSpecified=constraints.video&&constraints.video.height;var frameRateSpecified=constraints.video&&constraints.video.frameRate;constraints.video={mandatory:{chromeMediaSource:\"desktop\",chromeMediaSourceId:sourceId,maxFrameRate:frameRateSpecified||3}};if(widthSpecified){constraints.video.mandatory.maxWidth=widthSpecified}if(heightSpecified){constraints.video.mandatory.maxHeight=heightSpecified}return window.navigator.mediaDevices.getUserMedia(constraints)})}}},{}],5:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.shimGetUserMedia=shimGetUserMedia;var utils=_interopRequireWildcard(require(\"../utils.js\"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!==\"function\")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||_typeof(obj)!==\"object\"&&typeof obj!==\"function\"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!==\"default\"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj[\"default\"]=obj;if(cache){cache.set(obj,newObj)}return newObj}function _typeof(obj){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&\"function\"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj},_typeof(obj)}var logging=utils.log;function shimGetUserMedia(window,browserDetails){var navigator=window&&window.navigator;if(!navigator.mediaDevices){return}var constraintsToChrome_=function constraintsToChrome_(c){if(_typeof(c)!==\"object\"||c.mandatory||c.optional){return c}var cc={};Object.keys(c).forEach(function(key){if(key===\"require\"||key===\"advanced\"||key===\"mediaSource\"){return}var r=_typeof(c[key])===\"object\"?c[key]:{ideal:c[key]};if(r.exact!==undefined&&typeof r.exact===\"number\"){r.min=r.max=r.exact}var oldname_=function oldname_(prefix,name){if(prefix){return prefix+name.charAt(0).toUpperCase()+name.slice(1)}return name===\"deviceId\"?\"sourceId\":name};if(r.ideal!==undefined){cc.optional=cc.optional||[];var oc={};if(typeof r.ideal===\"number\"){oc[oldname_(\"min\",key)]=r.ideal;cc.optional.push(oc);oc={};oc[oldname_(\"max\",key)]=r.ideal;cc.optional.push(oc)}else{oc[oldname_(\"\",key)]=r.ideal;cc.optional.push(oc)}}if(r.exact!==undefined&&typeof r.exact!==\"number\"){cc.mandatory=cc.mandatory||{};cc.mandatory[oldname_(\"\",key)]=r.exact}else{[\"min\",\"max\"].forEach(function(mix){if(r[mix]!==undefined){cc.mandatory=cc.mandatory||{};cc.mandatory[oldname_(mix,key)]=r[mix]}})}});if(c.advanced){cc.optional=(cc.optional||[]).concat(c.advanced)}return cc};var shimConstraints_=function shimConstraints_(constraints,func){if(browserDetails.version>=61){return func(constraints)}constraints=JSON.parse(JSON.stringify(constraints));if(constraints&&_typeof(constraints.audio)===\"object\"){var remap=function remap(obj,a,b){if(a in obj&&!(b in obj)){obj[b]=obj[a];delete obj[a]}};constraints=JSON.parse(JSON.stringify(constraints));remap(constraints.audio,\"autoGainControl\",\"googAutoGainControl\");remap(constraints.audio,\"noiseSuppression\",\"googNoiseSuppression\");constraints.audio=constraintsToChrome_(constraints.audio)}if(constraints&&_typeof(constraints.video)===\"object\"){var face=constraints.video.facingMode;face=face&&(_typeof(face)===\"object\"?face:{ideal:face});var getSupportedFacingModeLies=browserDetails.version<66;if(face&&(face.exact===\"user\"||face.exact===\"environment\"||face.ideal===\"user\"||face.ideal===\"environment\")&&!(navigator.mediaDevices.getSupportedConstraints&&navigator.mediaDevices.getSupportedConstraints().facingMode&&!getSupportedFacingModeLies)){delete constraints.video.facingMode;var matches;if(face.exact===\"environment\"||face.ideal===\"environment\"){matches=[\"back\",\"rear\"]}else if(face.exact===\"user\"||face.ideal===\"user\"){matches=[\"front\"]}if(matches){return navigator.mediaDevices.enumerateDevices().then(function(devices){devices=devices.filter(function(d){return d.kind===\"videoinput\"});var dev=devices.find(function(d){return matches.some(function(match){return d.label.toLowerCase().includes(match)})});if(!dev&&devices.length&&matches.includes(\"back\")){dev=devices[devices.length-1]}if(dev){constraints.video.deviceId=face.exact?{exact:dev.deviceId}:{ideal:dev.deviceId}}constraints.video=constraintsToChrome_(constraints.video);logging(\"chrome: \"+JSON.stringify(constraints));return func(constraints)})}}constraints.video=constraintsToChrome_(constraints.video)}logging(\"chrome: \"+JSON.stringify(constraints));return func(constraints)};var shimError_=function shimError_(e){if(browserDetails.version>=64){return e}return{name:{PermissionDeniedError:\"NotAllowedError\",PermissionDismissedError:\"NotAllowedError\",InvalidStateError:\"NotAllowedError\",DevicesNotFoundError:\"NotFoundError\",ConstraintNotSatisfiedError:\"OverconstrainedError\",TrackStartError:\"NotReadableError\",MediaDeviceFailedDueToShutdown:\"NotAllowedError\",MediaDeviceKillSwitchOn:\"NotAllowedError\",TabCaptureError:\"AbortError\",ScreenCaptureError:\"AbortError\",DeviceCaptureError:\"AbortError\"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString:function toString(){return this.name+(this.message&&\": \")+this.message}}};var getUserMedia_=function getUserMedia_(constraints,onSuccess,onError){shimConstraints_(constraints,function(c){navigator.webkitGetUserMedia(c,onSuccess,function(e){if(onError){onError(shimError_(e))}})})};navigator.getUserMedia=getUserMedia_.bind(navigator);if(navigator.mediaDevices.getUserMedia){var origGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(cs){return shimConstraints_(cs,function(c){return origGetUserMedia(c).then(function(stream){if(c.audio&&!stream.getAudioTracks().length||c.video&&!stream.getVideoTracks().length){stream.getTracks().forEach(function(track){track.stop()});throw new DOMException(\"\",\"NotFoundError\")}return stream},function(e){return Promise.reject(shimError_(e))})})}}}},{\"../utils.js\":11}],6:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.removeExtmapAllowMixed=removeExtmapAllowMixed;exports.shimAddIceCandidateNullOrEmpty=shimAddIceCandidateNullOrEmpty;exports.shimConnectionState=shimConnectionState;exports.shimMaxMessageSize=shimMaxMessageSize;exports.shimParameterlessSetLocalDescription=shimParameterlessSetLocalDescription;exports.shimRTCIceCandidate=shimRTCIceCandidate;exports.shimRTCIceCandidateRelayProtocol=shimRTCIceCandidateRelayProtocol;exports.shimSendThrowTypeError=shimSendThrowTypeError;var _sdp=_interopRequireDefault(require(\"sdp\"));var utils=_interopRequireWildcard(require(\"./utils\"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!==\"function\")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||_typeof(obj)!==\"object\"&&typeof obj!==\"function\"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!==\"default\"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj[\"default\"]=obj;if(cache){cache.set(obj,newObj)}return newObj}function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _typeof(obj){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&\"function\"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj},_typeof(obj)}function shimRTCIceCandidate(window){if(!window.RTCIceCandidate||window.RTCIceCandidate&&\"foundation\"in window.RTCIceCandidate.prototype){return}var NativeRTCIceCandidate=window.RTCIceCandidate;window.RTCIceCandidate=function RTCIceCandidate(args){if(_typeof(args)===\"object\"&&args.candidate&&args.candidate.indexOf(\"a=\")===0){args=JSON.parse(JSON.stringify(args));args.candidate=args.candidate.substring(2)}if(args.candidate&&args.candidate.length){var nativeCandidate=new NativeRTCIceCandidate(args);var parsedCandidate=_sdp[\"default\"].parseCandidate(args.candidate);for(var key in parsedCandidate){if(!(key in nativeCandidate)){Object.defineProperty(nativeCandidate,key,{value:parsedCandidate[key]})}}nativeCandidate.toJSON=function toJSON(){return{candidate:nativeCandidate.candidate,sdpMid:nativeCandidate.sdpMid,sdpMLineIndex:nativeCandidate.sdpMLineIndex,usernameFragment:nativeCandidate.usernameFragment}};return nativeCandidate}return new NativeRTCIceCandidate(args)};window.RTCIceCandidate.prototype=NativeRTCIceCandidate.prototype;utils.wrapPeerConnectionEvent(window,\"icecandidate\",function(e){if(e.candidate){Object.defineProperty(e,\"candidate\",{value:new window.RTCIceCandidate(e.candidate),writable:\"false\"})}return e})}function shimRTCIceCandidateRelayProtocol(window){if(!window.RTCIceCandidate||window.RTCIceCandidate&&\"relayProtocol\"in window.RTCIceCandidate.prototype){return}utils.wrapPeerConnectionEvent(window,\"icecandidate\",function(e){if(e.candidate){var parsedCandidate=_sdp[\"default\"].parseCandidate(e.candidate.candidate);if(parsedCandidate.type===\"relay\"){e.candidate.relayProtocol={0:\"tls\",1:\"tcp\",2:\"udp\"}[parsedCandidate.priority>>24]}}return e})}function shimMaxMessageSize(window,browserDetails){if(!window.RTCPeerConnection){return}if(!(\"sctp\"in window.RTCPeerConnection.prototype)){Object.defineProperty(window.RTCPeerConnection.prototype,\"sctp\",{get:function get(){return typeof this._sctp===\"undefined\"?null:this._sctp}})}var sctpInDescription=function sctpInDescription(description){if(!description||!description.sdp){return false}var sections=_sdp[\"default\"].splitSections(description.sdp);sections.shift();return sections.some(function(mediaSection){var mLine=_sdp[\"default\"].parseMLine(mediaSection);return mLine&&mLine.kind===\"application\"&&mLine.protocol.indexOf(\"SCTP\")!==-1})};var getRemoteFirefoxVersion=function getRemoteFirefoxVersion(description){var match=description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);if(match===null||match.length<2){return-1}var version=parseInt(match[1],10);return version!==version?-1:version};var getCanSendMaxMessageSize=function getCanSendMaxMessageSize(remoteIsFirefox){var canSendMaxMessageSize=65536;if(browserDetails.browser===\"firefox\"){if(browserDetails.version<57){if(remoteIsFirefox===-1){canSendMaxMessageSize=16384}else{canSendMaxMessageSize=2147483637}}else if(browserDetails.version<60){canSendMaxMessageSize=browserDetails.version===57?65535:65536}else{canSendMaxMessageSize=2147483637}}return canSendMaxMessageSize};var getMaxMessageSize=function getMaxMessageSize(description,remoteIsFirefox){var maxMessageSize=65536;if(browserDetails.browser===\"firefox\"&&browserDetails.version===57){maxMessageSize=65535}var match=_sdp[\"default\"].matchPrefix(description.sdp,\"a=max-message-size:\");if(match.length>0){maxMessageSize=parseInt(match[0].substring(19),10)}else if(browserDetails.browser===\"firefox\"&&remoteIsFirefox!==-1){maxMessageSize=2147483637}return maxMessageSize};var origSetRemoteDescription=window.RTCPeerConnection.prototype.setRemoteDescription;window.RTCPeerConnection.prototype.setRemoteDescription=function setRemoteDescription(){this._sctp=null;if(browserDetails.browser===\"chrome\"&&browserDetails.version>=76){var _this$getConfiguratio=this.getConfiguration(),sdpSemantics=_this$getConfiguratio.sdpSemantics;if(sdpSemantics===\"plan-b\"){Object.defineProperty(this,\"sctp\",{get:function get(){return typeof this._sctp===\"undefined\"?null:this._sctp},enumerable:true,configurable:true})}}if(sctpInDescription(arguments[0])){var isFirefox=getRemoteFirefoxVersion(arguments[0]);var canSendMMS=getCanSendMaxMessageSize(isFirefox);var remoteMMS=getMaxMessageSize(arguments[0],isFirefox);var maxMessageSize;if(canSendMMS===0&&remoteMMS===0){maxMessageSize=Number.POSITIVE_INFINITY}else if(canSendMMS===0||remoteMMS===0){maxMessageSize=Math.max(canSendMMS,remoteMMS)}else{maxMessageSize=Math.min(canSendMMS,remoteMMS)}var sctp={};Object.defineProperty(sctp,\"maxMessageSize\",{get:function get(){return maxMessageSize}});this._sctp=sctp}return origSetRemoteDescription.apply(this,arguments)}}function shimSendThrowTypeError(window){if(!(window.RTCPeerConnection&&\"createDataChannel\"in window.RTCPeerConnection.prototype)){return}function wrapDcSend(dc,pc){var origDataChannelSend=dc.send;dc.send=function send(){var data=arguments[0];var length=data.length||data.size||data.byteLength;if(dc.readyState===\"open\"&&pc.sctp&&length>pc.sctp.maxMessageSize){throw new TypeError(\"Message too large (can send a maximum of \"+pc.sctp.maxMessageSize+\" bytes)\")}return origDataChannelSend.apply(dc,arguments)}}var origCreateDataChannel=window.RTCPeerConnection.prototype.createDataChannel;window.RTCPeerConnection.prototype.createDataChannel=function createDataChannel(){var dataChannel=origCreateDataChannel.apply(this,arguments);wrapDcSend(dataChannel,this);return dataChannel};utils.wrapPeerConnectionEvent(window,\"datachannel\",function(e){wrapDcSend(e.channel,e.target);return e})}function shimConnectionState(window){if(!window.RTCPeerConnection||\"connectionState\"in window.RTCPeerConnection.prototype){return}var proto=window.RTCPeerConnection.prototype;Object.defineProperty(proto,\"connectionState\",{get:function get(){return{completed:\"connected\",checking:\"connecting\"}[this.iceConnectionState]||this.iceConnectionState},enumerable:true,configurable:true});Object.defineProperty(proto,\"onconnectionstatechange\",{get:function get(){return this._onconnectionstatechange||null},set:function set(cb){if(this._onconnectionstatechange){this.removeEventListener(\"connectionstatechange\",this._onconnectionstatechange);delete this._onconnectionstatechange}if(cb){this.addEventListener(\"connectionstatechange\",this._onconnectionstatechange=cb)}},enumerable:true,configurable:true});[\"setLocalDescription\",\"setRemoteDescription\"].forEach(function(method){var origMethod=proto[method];proto[method]=function(){if(!this._connectionstatechangepoly){this._connectionstatechangepoly=function(e){var pc=e.target;if(pc._lastConnectionState!==pc.connectionState){pc._lastConnectionState=pc.connectionState;var newEvent=new Event(\"connectionstatechange\",e);pc.dispatchEvent(newEvent)}return e};this.addEventListener(\"iceconnectionstatechange\",this._connectionstatechangepoly)}return origMethod.apply(this,arguments)}})}function removeExtmapAllowMixed(window,browserDetails){if(!window.RTCPeerConnection){return}if(browserDetails.browser===\"chrome\"&&browserDetails.version>=71){return}if(browserDetails.browser===\"safari\"&&browserDetails.version>=605){return}var nativeSRD=window.RTCPeerConnection.prototype.setRemoteDescription;window.RTCPeerConnection.prototype.setRemoteDescription=function setRemoteDescription(desc){if(desc&&desc.sdp&&desc.sdp.indexOf(\"\\na=extmap-allow-mixed\")!==-1){var sdp=desc.sdp.split(\"\\n\").filter(function(line){return line.trim()!==\"a=extmap-allow-mixed\"}).join(\"\\n\");if(window.RTCSessionDescription&&desc instanceof window.RTCSessionDescription){arguments[0]=new window.RTCSessionDescription({type:desc.type,sdp:sdp})}else{desc.sdp=sdp}}return nativeSRD.apply(this,arguments)}}function shimAddIceCandidateNullOrEmpty(window,browserDetails){if(!(window.RTCPeerConnection&&window.RTCPeerConnection.prototype)){return}var nativeAddIceCandidate=window.RTCPeerConnection.prototype.addIceCandidate;if(!nativeAddIceCandidate||nativeAddIceCandidate.length===0){return}window.RTCPeerConnection.prototype.addIceCandidate=function addIceCandidate(){if(!arguments[0]){if(arguments[1]){arguments[1].apply(null)}return Promise.resolve()}if((browserDetails.browser===\"chrome\"&&browserDetails.version<78||browserDetails.browser===\"firefox\"&&browserDetails.version<68||browserDetails.browser===\"safari\")&&arguments[0]&&arguments[0].candidate===\"\"){return Promise.resolve()}return nativeAddIceCandidate.apply(this,arguments)}}function shimParameterlessSetLocalDescription(window,browserDetails){if(!(window.RTCPeerConnection&&window.RTCPeerConnection.prototype)){return}var nativeSetLocalDescription=window.RTCPeerConnection.prototype.setLocalDescription;if(!nativeSetLocalDescription||nativeSetLocalDescription.length===0){return}window.RTCPeerConnection.prototype.setLocalDescription=function setLocalDescription(){var _this=this;var desc=arguments[0]||{};if(_typeof(desc)!==\"object\"||desc.type&&desc.sdp){return nativeSetLocalDescription.apply(this,arguments)}desc={type:desc.type,sdp:desc.sdp};if(!desc.type){switch(this.signalingState){case\"stable\":case\"have-local-offer\":case\"have-remote-pranswer\":desc.type=\"offer\";break;default:desc.type=\"answer\";break}}if(desc.sdp||desc.type!==\"offer\"&&desc.type!==\"answer\"){return nativeSetLocalDescription.apply(this,[desc])}var func=desc.type===\"offer\"?this.createOffer:this.createAnswer;return func.apply(this).then(function(d){return nativeSetLocalDescription.apply(_this,[d])})}}},{\"./utils\":11,sdp:12}],7:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.shimAddTransceiver=shimAddTransceiver;exports.shimCreateAnswer=shimCreateAnswer;exports.shimCreateOffer=shimCreateOffer;Object.defineProperty(exports,\"shimGetDisplayMedia\",{enumerable:true,get:function get(){return _getdisplaymedia.shimGetDisplayMedia}});exports.shimGetParameters=shimGetParameters;Object.defineProperty(exports,\"shimGetUserMedia\",{enumerable:true,get:function get(){return _getusermedia.shimGetUserMedia}});exports.shimOnTrack=shimOnTrack;exports.shimPeerConnection=shimPeerConnection;exports.shimRTCDataChannel=shimRTCDataChannel;exports.shimReceiverGetStats=shimReceiverGetStats;exports.shimRemoveStream=shimRemoveStream;exports.shimSenderGetStats=shimSenderGetStats;var utils=_interopRequireWildcard(require(\"../utils\"));var _getusermedia=require(\"./getusermedia\");var _getdisplaymedia=require(\"./getdisplaymedia\");function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!==\"function\")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||_typeof(obj)!==\"object\"&&typeof obj!==\"function\"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!==\"default\"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj[\"default\"]=obj;if(cache){cache.set(obj,newObj)}return newObj}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o===\"string\")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n===\"Object\"&&o.constructor)n=o.constructor.name;if(n===\"Map\"||n===\"Set\")return Array.from(o);if(n===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _iterableToArray(iter){if(typeof Symbol!==\"undefined\"&&iter[Symbol.iterator]!=null||iter[\"@@iterator\"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _toPropertyKey(arg){var key=_toPrimitive(arg,\"string\");return _typeof(key)===\"symbol\"?key:String(key)}function _toPrimitive(input,hint){if(_typeof(input)!==\"object\"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||\"default\");if(_typeof(res)!==\"object\")return res;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(hint===\"string\"?String:Number)(input)}function _typeof(obj){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&\"function\"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj},_typeof(obj)}function shimOnTrack(window){if(_typeof(window)===\"object\"&&window.RTCTrackEvent&&\"receiver\"in window.RTCTrackEvent.prototype&&!(\"transceiver\"in window.RTCTrackEvent.prototype)){Object.defineProperty(window.RTCTrackEvent.prototype,\"transceiver\",{get:function get(){return{receiver:this.receiver}}})}}function shimPeerConnection(window,browserDetails){if(_typeof(window)!==\"object\"||!(window.RTCPeerConnection||window.mozRTCPeerConnection)){return}if(!window.RTCPeerConnection&&window.mozRTCPeerConnection){window.RTCPeerConnection=window.mozRTCPeerConnection}if(browserDetails.version<53){[\"setLocalDescription\",\"setRemoteDescription\",\"addIceCandidate\"].forEach(function(method){var nativeMethod=window.RTCPeerConnection.prototype[method];var methodObj=_defineProperty({},method,function(){arguments[0]=new(method===\"addIceCandidate\"?window.RTCIceCandidate:window.RTCSessionDescription)(arguments[0]);return nativeMethod.apply(this,arguments)});window.RTCPeerConnection.prototype[method]=methodObj[method]})}var modernStatsTypes={inboundrtp:\"inbound-rtp\",outboundrtp:\"outbound-rtp\",candidatepair:\"candidate-pair\",localcandidate:\"local-candidate\",remotecandidate:\"remote-candidate\"};var nativeGetStats=window.RTCPeerConnection.prototype.getStats;window.RTCPeerConnection.prototype.getStats=function getStats(){var _arguments=Array.prototype.slice.call(arguments),selector=_arguments[0],onSucc=_arguments[1],onErr=_arguments[2];return nativeGetStats.apply(this,[selector||null]).then(function(stats){if(browserDetails.version<53&&!onSucc){try{stats.forEach(function(stat){stat.type=modernStatsTypes[stat.type]||stat.type})}catch(e){if(e.name!==\"TypeError\"){throw e}stats.forEach(function(stat,i){stats.set(i,Object.assign({},stat,{type:modernStatsTypes[stat.type]||stat.type}))})}}return stats}).then(onSucc,onErr)}}function shimSenderGetStats(window){if(!(_typeof(window)===\"object\"&&window.RTCPeerConnection&&window.RTCRtpSender)){return}if(window.RTCRtpSender&&\"getStats\"in window.RTCRtpSender.prototype){return}var origGetSenders=window.RTCPeerConnection.prototype.getSenders;if(origGetSenders){window.RTCPeerConnection.prototype.getSenders=function getSenders(){var _this=this;var senders=origGetSenders.apply(this,[]);senders.forEach(function(sender){return sender._pc=_this});return senders}}var origAddTrack=window.RTCPeerConnection.prototype.addTrack;if(origAddTrack){window.RTCPeerConnection.prototype.addTrack=function addTrack(){var sender=origAddTrack.apply(this,arguments);sender._pc=this;return sender}}window.RTCRtpSender.prototype.getStats=function getStats(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function shimReceiverGetStats(window){if(!(_typeof(window)===\"object\"&&window.RTCPeerConnection&&window.RTCRtpSender)){return}if(window.RTCRtpSender&&\"getStats\"in window.RTCRtpReceiver.prototype){return}var origGetReceivers=window.RTCPeerConnection.prototype.getReceivers;if(origGetReceivers){window.RTCPeerConnection.prototype.getReceivers=function getReceivers(){var _this2=this;var receivers=origGetReceivers.apply(this,[]);receivers.forEach(function(receiver){return receiver._pc=_this2});return receivers}}utils.wrapPeerConnectionEvent(window,\"track\",function(e){e.receiver._pc=e.srcElement;return e});window.RTCRtpReceiver.prototype.getStats=function getStats(){return this._pc.getStats(this.track)}}function shimRemoveStream(window){if(!window.RTCPeerConnection||\"removeStream\"in window.RTCPeerConnection.prototype){return}window.RTCPeerConnection.prototype.removeStream=function removeStream(stream){var _this3=this;utils.deprecated(\"removeStream\",\"removeTrack\");this.getSenders().forEach(function(sender){if(sender.track&&stream.getTracks().includes(sender.track)){_this3.removeTrack(sender)}})}}function shimRTCDataChannel(window){if(window.DataChannel&&!window.RTCDataChannel){window.RTCDataChannel=window.DataChannel}}function shimAddTransceiver(window){if(!(_typeof(window)===\"object\"&&window.RTCPeerConnection)){return}var origAddTransceiver=window.RTCPeerConnection.prototype.addTransceiver;if(origAddTransceiver){window.RTCPeerConnection.prototype.addTransceiver=function addTransceiver(){this.setParametersPromises=[];var sendEncodings=arguments[1]&&arguments[1].sendEncodings;if(sendEncodings===undefined){sendEncodings=[]}sendEncodings=_toConsumableArray(sendEncodings);var shouldPerformCheck=sendEncodings.length>0;if(shouldPerformCheck){sendEncodings.forEach(function(encodingParam){if(\"rid\"in encodingParam){var ridRegex=/^[a-z0-9]{0,16}$/i;if(!ridRegex.test(encodingParam.rid)){throw new TypeError(\"Invalid RID value provided.\")}}if(\"scaleResolutionDownBy\"in encodingParam){if(!(parseFloat(encodingParam.scaleResolutionDownBy)>=1)){throw new RangeError(\"scale_resolution_down_by must be >= 1.0\")}}if(\"maxFramerate\"in encodingParam){if(!(parseFloat(encodingParam.maxFramerate)>=0)){throw new RangeError(\"max_framerate must be >= 0.0\")}}})}var transceiver=origAddTransceiver.apply(this,arguments);if(shouldPerformCheck){var sender=transceiver.sender;var params=sender.getParameters();if(!(\"encodings\"in params)||params.encodings.length===1&&Object.keys(params.encodings[0]).length===0){params.encodings=sendEncodings;sender.sendEncodings=sendEncodings;this.setParametersPromises.push(sender.setParameters(params).then(function(){delete sender.sendEncodings})[\"catch\"](function(){delete sender.sendEncodings}))}}return transceiver}}}function shimGetParameters(window){if(!(_typeof(window)===\"object\"&&window.RTCRtpSender)){return}var origGetParameters=window.RTCRtpSender.prototype.getParameters;if(origGetParameters){window.RTCRtpSender.prototype.getParameters=function getParameters(){var params=origGetParameters.apply(this,arguments);if(!(\"encodings\"in params)){params.encodings=[].concat(this.sendEncodings||[{}])}return params}}}function shimCreateOffer(window){if(!(_typeof(window)===\"object\"&&window.RTCPeerConnection)){return}var origCreateOffer=window.RTCPeerConnection.prototype.createOffer;window.RTCPeerConnection.prototype.createOffer=function createOffer(){var _arguments2=arguments,_this4=this;if(this.setParametersPromises&&this.setParametersPromises.length){return Promise.all(this.setParametersPromises).then(function(){return origCreateOffer.apply(_this4,_arguments2)})[\"finally\"](function(){_this4.setParametersPromises=[]})}return origCreateOffer.apply(this,arguments)}}function shimCreateAnswer(window){if(!(_typeof(window)===\"object\"&&window.RTCPeerConnection)){return}var origCreateAnswer=window.RTCPeerConnection.prototype.createAnswer;window.RTCPeerConnection.prototype.createAnswer=function createAnswer(){var _arguments3=arguments,_this5=this;if(this.setParametersPromises&&this.setParametersPromises.length){return Promise.all(this.setParametersPromises).then(function(){return origCreateAnswer.apply(_this5,_arguments3)})[\"finally\"](function(){_this5.setParametersPromises=[]})}return origCreateAnswer.apply(this,arguments)}}},{\"../utils\":11,\"./getdisplaymedia\":8,\"./getusermedia\":9}],8:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.shimGetDisplayMedia=shimGetDisplayMedia;function shimGetDisplayMedia(window,preferredMediaSource){if(window.navigator.mediaDevices&&\"getDisplayMedia\"in window.navigator.mediaDevices){return}if(!window.navigator.mediaDevices){return}window.navigator.mediaDevices.getDisplayMedia=function getDisplayMedia(constraints){if(!(constraints&&constraints.video)){var err=new DOMException(\"getDisplayMedia without video \"+\"constraints is undefined\");err.name=\"NotFoundError\";err.code=8;return Promise.reject(err)}if(constraints.video===true){constraints.video={mediaSource:preferredMediaSource}}else{constraints.video.mediaSource=preferredMediaSource}return window.navigator.mediaDevices.getUserMedia(constraints)}}},{}],9:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.shimGetUserMedia=shimGetUserMedia;var utils=_interopRequireWildcard(require(\"../utils\"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!==\"function\")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||_typeof(obj)!==\"object\"&&typeof obj!==\"function\"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!==\"default\"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj[\"default\"]=obj;if(cache){cache.set(obj,newObj)}return newObj}function _typeof(obj){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&\"function\"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj},_typeof(obj)}function shimGetUserMedia(window,browserDetails){var navigator=window&&window.navigator;var MediaStreamTrack=window&&window.MediaStreamTrack;navigator.getUserMedia=function(constraints,onSuccess,onError){utils.deprecated(\"navigator.getUserMedia\",\"navigator.mediaDevices.getUserMedia\");navigator.mediaDevices.getUserMedia(constraints).then(onSuccess,onError)};if(!(browserDetails.version>55&&\"autoGainControl\"in navigator.mediaDevices.getSupportedConstraints())){var remap=function remap(obj,a,b){if(a in obj&&!(b in obj)){obj[b]=obj[a];delete obj[a]}};var nativeGetUserMedia=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);navigator.mediaDevices.getUserMedia=function(c){if(_typeof(c)===\"object\"&&_typeof(c.audio)===\"object\"){c=JSON.parse(JSON.stringify(c));remap(c.audio,\"autoGainControl\",\"mozAutoGainControl\");remap(c.audio,\"noiseSuppression\",\"mozNoiseSuppression\")}return nativeGetUserMedia(c)};if(MediaStreamTrack&&MediaStreamTrack.prototype.getSettings){var nativeGetSettings=MediaStreamTrack.prototype.getSettings;MediaStreamTrack.prototype.getSettings=function(){var obj=nativeGetSettings.apply(this,arguments);remap(obj,\"mozAutoGainControl\",\"autoGainControl\");remap(obj,\"mozNoiseSuppression\",\"noiseSuppression\");return obj}}if(MediaStreamTrack&&MediaStreamTrack.prototype.applyConstraints){var nativeApplyConstraints=MediaStreamTrack.prototype.applyConstraints;MediaStreamTrack.prototype.applyConstraints=function(c){if(this.kind===\"audio\"&&_typeof(c)===\"object\"){c=JSON.parse(JSON.stringify(c));remap(c,\"autoGainControl\",\"mozAutoGainControl\");remap(c,\"noiseSuppression\",\"mozNoiseSuppression\")}return nativeApplyConstraints.apply(this,[c])}}}}},{\"../utils\":11}],10:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.shimAudioContext=shimAudioContext;exports.shimCallbacksAPI=shimCallbacksAPI;exports.shimConstraints=shimConstraints;exports.shimCreateOfferLegacy=shimCreateOfferLegacy;exports.shimGetUserMedia=shimGetUserMedia;exports.shimLocalStreamsAPI=shimLocalStreamsAPI;exports.shimRTCIceServerUrls=shimRTCIceServerUrls;exports.shimRemoteStreamsAPI=shimRemoteStreamsAPI;exports.shimTrackEventTransceiver=shimTrackEventTransceiver;var utils=_interopRequireWildcard(require(\"../utils\"));function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!==\"function\")return null;var cacheBabelInterop=new WeakMap;var cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj}if(obj===null||_typeof(obj)!==\"object\"&&typeof obj!==\"function\"){return{default:obj}}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj)}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!==\"default\"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc)}else{newObj[key]=obj[key]}}}newObj[\"default\"]=obj;if(cache){cache.set(obj,newObj)}return newObj}function _typeof(obj){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&\"function\"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj},_typeof(obj)}function shimLocalStreamsAPI(window){if(_typeof(window)!==\"object\"||!window.RTCPeerConnection){return}if(!(\"getLocalStreams\"in window.RTCPeerConnection.prototype)){window.RTCPeerConnection.prototype.getLocalStreams=function getLocalStreams(){if(!this._localStreams){this._localStreams=[]}return this._localStreams}}if(!(\"addStream\"in window.RTCPeerConnection.prototype)){var _addTrack=window.RTCPeerConnection.prototype.addTrack;window.RTCPeerConnection.prototype.addStream=function addStream(stream){var _this=this;if(!this._localStreams){this._localStreams=[]}if(!this._localStreams.includes(stream)){this._localStreams.push(stream)}stream.getAudioTracks().forEach(function(track){return _addTrack.call(_this,track,stream)});stream.getVideoTracks().forEach(function(track){return _addTrack.call(_this,track,stream)})};window.RTCPeerConnection.prototype.addTrack=function addTrack(track){var _this2=this;for(var _len=arguments.length,streams=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){streams[_key-1]=arguments[_key]}if(streams){streams.forEach(function(stream){if(!_this2._localStreams){_this2._localStreams=[stream]}else if(!_this2._localStreams.includes(stream)){_this2._localStreams.push(stream)}})}return _addTrack.apply(this,arguments)}}if(!(\"removeStream\"in window.RTCPeerConnection.prototype)){window.RTCPeerConnection.prototype.removeStream=function removeStream(stream){var _this3=this;if(!this._localStreams){this._localStreams=[]}var index=this._localStreams.indexOf(stream);if(index===-1){return}this._localStreams.splice(index,1);var tracks=stream.getTracks();this.getSenders().forEach(function(sender){if(tracks.includes(sender.track)){_this3.removeTrack(sender)}})}}}function shimRemoteStreamsAPI(window){if(_typeof(window)!==\"object\"||!window.RTCPeerConnection){return}if(!(\"getRemoteStreams\"in window.RTCPeerConnection.prototype)){window.RTCPeerConnection.prototype.getRemoteStreams=function getRemoteStreams(){return this._remoteStreams?this._remoteStreams:[]}}if(!(\"onaddstream\"in window.RTCPeerConnection.prototype)){Object.defineProperty(window.RTCPeerConnection.prototype,\"onaddstream\",{get:function get(){return this._onaddstream},set:function set(f){var _this4=this;if(this._onaddstream){this.removeEventListener(\"addstream\",this._onaddstream);this.removeEventListener(\"track\",this._onaddstreampoly)}this.addEventListener(\"addstream\",this._onaddstream=f);this.addEventListener(\"track\",this._onaddstreampoly=function(e){e.streams.forEach(function(stream){if(!_this4._remoteStreams){_this4._remoteStreams=[]}if(_this4._remoteStreams.includes(stream)){return}_this4._remoteStreams.push(stream);var event=new Event(\"addstream\");event.stream=stream;_this4.dispatchEvent(event)})})}});var origSetRemoteDescription=window.RTCPeerConnection.prototype.setRemoteDescription;window.RTCPeerConnection.prototype.setRemoteDescription=function setRemoteDescription(){var pc=this;if(!this._onaddstreampoly){this.addEventListener(\"track\",this._onaddstreampoly=function(e){e.streams.forEach(function(stream){if(!pc._remoteStreams){pc._remoteStreams=[]}if(pc._remoteStreams.indexOf(stream)>=0){return}pc._remoteStreams.push(stream);var event=new Event(\"addstream\");event.stream=stream;pc.dispatchEvent(event)})})}return origSetRemoteDescription.apply(pc,arguments)}}}function shimCallbacksAPI(window){if(_typeof(window)!==\"object\"||!window.RTCPeerConnection){return}var prototype=window.RTCPeerConnection.prototype;var origCreateOffer=prototype.createOffer;var origCreateAnswer=prototype.createAnswer;var setLocalDescription=prototype.setLocalDescription;var setRemoteDescription=prototype.setRemoteDescription;var addIceCandidate=prototype.addIceCandidate;prototype.createOffer=function createOffer(successCallback,failureCallback){var options=arguments.length>=2?arguments[2]:arguments[0];var promise=origCreateOffer.apply(this,[options]);if(!failureCallback){return promise}promise.then(successCallback,failureCallback);return Promise.resolve()};prototype.createAnswer=function createAnswer(successCallback,failureCallback){var options=arguments.length>=2?arguments[2]:arguments[0];var promise=origCreateAnswer.apply(this,[options]);if(!failureCallback){return promise}promise.then(successCallback,failureCallback);return Promise.resolve()};var withCallback=function withCallback(description,successCallback,failureCallback){var promise=setLocalDescription.apply(this,[description]);if(!failureCallback){return promise}promise.then(successCallback,failureCallback);return Promise.resolve()};prototype.setLocalDescription=withCallback;withCallback=function withCallback(description,successCallback,failureCallback){var promise=setRemoteDescription.apply(this,[description]);if(!failureCallback){return promise}promise.then(successCallback,failureCallback);return Promise.resolve()};prototype.setRemoteDescription=withCallback;withCallback=function withCallback(candidate,successCallback,failureCallback){var promise=addIceCandidate.apply(this,[candidate]);if(!failureCallback){return promise}promise.then(successCallback,failureCallback);return Promise.resolve()};prototype.addIceCandidate=withCallback}function shimGetUserMedia(window){var navigator=window&&window.navigator;if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){var mediaDevices=navigator.mediaDevices;var _getUserMedia=mediaDevices.getUserMedia.bind(mediaDevices);navigator.mediaDevices.getUserMedia=function(constraints){return _getUserMedia(shimConstraints(constraints))}}if(!navigator.getUserMedia&&navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){navigator.getUserMedia=function getUserMedia(constraints,cb,errcb){navigator.mediaDevices.getUserMedia(constraints).then(cb,errcb)}.bind(navigator)}}function shimConstraints(constraints){if(constraints&&constraints.video!==undefined){return Object.assign({},constraints,{video:utils.compactObject(constraints.video)})}return constraints}function shimRTCIceServerUrls(window){if(!window.RTCPeerConnection){return}var OrigPeerConnection=window.RTCPeerConnection;window.RTCPeerConnection=function RTCPeerConnection(pcConfig,pcConstraints){if(pcConfig&&pcConfig.iceServers){var newIceServers=[];for(var i=0;i<pcConfig.iceServers.length;i++){var server=pcConfig.iceServers[i];if(server.urls===undefined&&server.url){utils.deprecated(\"RTCIceServer.url\",\"RTCIceServer.urls\");server=JSON.parse(JSON.stringify(server));server.urls=server.url;delete server.url;newIceServers.push(server)}else{newIceServers.push(pcConfig.iceServers[i])}}pcConfig.iceServers=newIceServers}return new OrigPeerConnection(pcConfig,pcConstraints)};window.RTCPeerConnection.prototype=OrigPeerConnection.prototype;if(\"generateCertificate\"in OrigPeerConnection){Object.defineProperty(window.RTCPeerConnection,\"generateCertificate\",{get:function get(){return OrigPeerConnection.generateCertificate}})}}function shimTrackEventTransceiver(window){if(_typeof(window)===\"object\"&&window.RTCTrackEvent&&\"receiver\"in window.RTCTrackEvent.prototype&&!(\"transceiver\"in window.RTCTrackEvent.prototype)){Object.defineProperty(window.RTCTrackEvent.prototype,\"transceiver\",{get:function get(){return{receiver:this.receiver}}})}}function shimCreateOfferLegacy(window){var origCreateOffer=window.RTCPeerConnection.prototype.createOffer;window.RTCPeerConnection.prototype.createOffer=function createOffer(offerOptions){if(offerOptions){if(typeof offerOptions.offerToReceiveAudio!==\"undefined\"){offerOptions.offerToReceiveAudio=!!offerOptions.offerToReceiveAudio}var audioTransceiver=this.getTransceivers().find(function(transceiver){return transceiver.receiver.track.kind===\"audio\"});if(offerOptions.offerToReceiveAudio===false&&audioTransceiver){if(audioTransceiver.direction===\"sendrecv\"){if(audioTransceiver.setDirection){audioTransceiver.setDirection(\"sendonly\")}else{audioTransceiver.direction=\"sendonly\"}}else if(audioTransceiver.direction===\"recvonly\"){if(audioTransceiver.setDirection){audioTransceiver.setDirection(\"inactive\")}else{audioTransceiver.direction=\"inactive\"}}}else if(offerOptions.offerToReceiveAudio===true&&!audioTransceiver){this.addTransceiver(\"audio\",{direction:\"recvonly\"})}if(typeof offerOptions.offerToReceiveVideo!==\"undefined\"){offerOptions.offerToReceiveVideo=!!offerOptions.offerToReceiveVideo}var videoTransceiver=this.getTransceivers().find(function(transceiver){return transceiver.receiver.track.kind===\"video\"});if(offerOptions.offerToReceiveVideo===false&&videoTransceiver){if(videoTransceiver.direction===\"sendrecv\"){if(videoTransceiver.setDirection){videoTransceiver.setDirection(\"sendonly\")}else{videoTransceiver.direction=\"sendonly\"}}else if(videoTransceiver.direction===\"recvonly\"){if(videoTransceiver.setDirection){videoTransceiver.setDirection(\"inactive\")}else{videoTransceiver.direction=\"inactive\"}}}else if(offerOptions.offerToReceiveVideo===true&&!videoTransceiver){this.addTransceiver(\"video\",{direction:\"recvonly\"})}}return origCreateOffer.apply(this,arguments)}}function shimAudioContext(window){if(_typeof(window)!==\"object\"||window.AudioContext){return}window.AudioContext=window.webkitAudioContext}},{\"../utils\":11}],11:[function(require,module,exports){\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.compactObject=compactObject;exports.deprecated=deprecated;exports.detectBrowser=detectBrowser;exports.disableLog=disableLog;exports.disableWarnings=disableWarnings;exports.extractVersion=extractVersion;exports.filterStats=filterStats;exports.log=log;exports.walkStats=walkStats;exports.wrapPeerConnectionEvent=wrapPeerConnectionEvent;function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _toPropertyKey(arg){var key=_toPrimitive(arg,\"string\");return _typeof(key)===\"symbol\"?key:String(key)}function _toPrimitive(input,hint){if(_typeof(input)!==\"object\"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||\"default\");if(_typeof(res)!==\"object\")return res;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(hint===\"string\"?String:Number)(input)}function _typeof(obj){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&\"function\"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj},_typeof(obj)}var logDisabled_=true;var deprecationWarnings_=true;function extractVersion(uastring,expr,pos){var match=uastring.match(expr);return match&&match.length>=pos&&parseInt(match[pos],10)}function wrapPeerConnectionEvent(window,eventNameToWrap,wrapper){if(!window.RTCPeerConnection){return}var proto=window.RTCPeerConnection.prototype;var nativeAddEventListener=proto.addEventListener;proto.addEventListener=function(nativeEventName,cb){if(nativeEventName!==eventNameToWrap){return nativeAddEventListener.apply(this,arguments)}var wrappedCallback=function wrappedCallback(e){var modifiedEvent=wrapper(e);if(modifiedEvent){if(cb.handleEvent){cb.handleEvent(modifiedEvent)}else{cb(modifiedEvent)}}};this._eventMap=this._eventMap||{};if(!this._eventMap[eventNameToWrap]){this._eventMap[eventNameToWrap]=new Map}this._eventMap[eventNameToWrap].set(cb,wrappedCallback);return nativeAddEventListener.apply(this,[nativeEventName,wrappedCallback])};var nativeRemoveEventListener=proto.removeEventListener;proto.removeEventListener=function(nativeEventName,cb){if(nativeEventName!==eventNameToWrap||!this._eventMap||!this._eventMap[eventNameToWrap]){return nativeRemoveEventListener.apply(this,arguments)}if(!this._eventMap[eventNameToWrap].has(cb)){return nativeRemoveEventListener.apply(this,arguments)}var unwrappedCb=this._eventMap[eventNameToWrap].get(cb);this._eventMap[eventNameToWrap][\"delete\"](cb);if(this._eventMap[eventNameToWrap].size===0){delete this._eventMap[eventNameToWrap]}if(Object.keys(this._eventMap).length===0){delete this._eventMap}return nativeRemoveEventListener.apply(this,[nativeEventName,unwrappedCb])};Object.defineProperty(proto,\"on\"+eventNameToWrap,{get:function get(){return this[\"_on\"+eventNameToWrap]},set:function set(cb){if(this[\"_on\"+eventNameToWrap]){this.removeEventListener(eventNameToWrap,this[\"_on\"+eventNameToWrap]);delete this[\"_on\"+eventNameToWrap]}if(cb){this.addEventListener(eventNameToWrap,this[\"_on\"+eventNameToWrap]=cb)}},enumerable:true,configurable:true})}function disableLog(bool){if(typeof bool!==\"boolean\"){return new Error(\"Argument type: \"+_typeof(bool)+\". Please use a boolean.\")}logDisabled_=bool;return bool?\"adapter.js logging disabled\":\"adapter.js logging enabled\"}function disableWarnings(bool){if(typeof bool!==\"boolean\"){return new Error(\"Argument type: \"+_typeof(bool)+\". Please use a boolean.\")}deprecationWarnings_=!bool;return\"adapter.js deprecation warnings \"+(bool?\"disabled\":\"enabled\")}function log(){if((typeof window===\"undefined\"?\"undefined\":_typeof(window))===\"object\"){if(logDisabled_){return}if(typeof console!==\"undefined\"&&typeof console.log===\"function\"){console.log.apply(console,arguments)}}}function deprecated(oldMethod,newMethod){if(!deprecationWarnings_){return}console.warn(oldMethod+\" is deprecated, please use \"+newMethod+\" instead.\")}function detectBrowser(window){var result={browser:null,version:null};if(typeof window===\"undefined\"||!window.navigator||!window.navigator.userAgent){result.browser=\"Not a browser.\";return result}var navigator=window.navigator;if(navigator.mozGetUserMedia){result.browser=\"firefox\";result.version=extractVersion(navigator.userAgent,/Firefox\\/(\\d+)\\./,1)}else if(navigator.webkitGetUserMedia||window.isSecureContext===false&&window.webkitRTCPeerConnection){result.browser=\"chrome\";result.version=extractVersion(navigator.userAgent,/Chrom(e|ium)\\/(\\d+)\\./,2)}else if(window.RTCPeerConnection&&navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)){result.browser=\"safari\";result.version=extractVersion(navigator.userAgent,/AppleWebKit\\/(\\d+)\\./,1);result.supportsUnifiedPlan=window.RTCRtpTransceiver&&\"currentDirection\"in window.RTCRtpTransceiver.prototype}else{result.browser=\"Not a supported browser.\";return result}return result}function isObject(val){return Object.prototype.toString.call(val)===\"[object Object]\"}function compactObject(data){if(!isObject(data)){return data}return Object.keys(data).reduce(function(accumulator,key){var isObj=isObject(data[key]);var value=isObj?compactObject(data[key]):data[key];var isEmptyObject=isObj&&!Object.keys(value).length;if(value===undefined||isEmptyObject){return accumulator}return Object.assign(accumulator,_defineProperty({},key,value))},{})}function walkStats(stats,base,resultSet){if(!base||resultSet.has(base.id)){return}resultSet.set(base.id,base);Object.keys(base).forEach(function(name){if(name.endsWith(\"Id\")){walkStats(stats,stats.get(base[name]),resultSet)}else if(name.endsWith(\"Ids\")){base[name].forEach(function(id){walkStats(stats,stats.get(id),resultSet)})}})}function filterStats(result,track,outbound){var streamStatsType=outbound?\"outbound-rtp\":\"inbound-rtp\";var filteredResult=new Map;if(track===null){return filteredResult}var trackStats=[];result.forEach(function(value){if(value.type===\"track\"&&value.trackIdentifier===track.id){trackStats.push(value)}});trackStats.forEach(function(trackStat){result.forEach(function(stats){if(stats.type===streamStatsType&&stats.trackId===trackStat.id){walkStats(result,stats,filteredResult)}})});return filteredResult}},{}],12:[function(require,module,exports){\"use strict\";var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj};var SDPUtils={};SDPUtils.generateIdentifier=function(){return Math.random().toString(36).substring(2,12)};SDPUtils.localCName=SDPUtils.generateIdentifier();SDPUtils.splitLines=function(blob){return blob.trim().split(\"\\n\").map(function(line){return line.trim()})};SDPUtils.splitSections=function(blob){var parts=blob.split(\"\\nm=\");return parts.map(function(part,index){return(index>0?\"m=\"+part:part).trim()+\"\\r\\n\"})};SDPUtils.getDescription=function(blob){var sections=SDPUtils.splitSections(blob);return sections&&sections[0]};SDPUtils.getMediaSections=function(blob){var sections=SDPUtils.splitSections(blob);sections.shift();return sections};SDPUtils.matchPrefix=function(blob,prefix){return SDPUtils.splitLines(blob).filter(function(line){return line.indexOf(prefix)===0})};SDPUtils.parseCandidate=function(line){var parts=void 0;if(line.indexOf(\"a=candidate:\")===0){parts=line.substring(12).split(\" \")}else{parts=line.substring(10).split(\" \")}var candidate={foundation:parts[0],component:{1:\"rtp\",2:\"rtcp\"}[parts[1]]||parts[1],protocol:parts[2].toLowerCase(),priority:parseInt(parts[3],10),ip:parts[4],address:parts[4],port:parseInt(parts[5],10),type:parts[7]};for(var i=8;i<parts.length;i+=2){switch(parts[i]){case\"raddr\":candidate.relatedAddress=parts[i+1];break;case\"rport\":candidate.relatedPort=parseInt(parts[i+1],10);break;case\"tcptype\":candidate.tcpType=parts[i+1];break;case\"ufrag\":candidate.ufrag=parts[i+1];candidate.usernameFragment=parts[i+1];break;default:if(candidate[parts[i]]===undefined){candidate[parts[i]]=parts[i+1]}break}}return candidate};SDPUtils.writeCandidate=function(candidate){var sdp=[];sdp.push(candidate.foundation);var component=candidate.component;if(component===\"rtp\"){sdp.push(1)}else if(component===\"rtcp\"){sdp.push(2)}else{sdp.push(component)}sdp.push(candidate.protocol.toUpperCase());sdp.push(candidate.priority);sdp.push(candidate.address||candidate.ip);sdp.push(candidate.port);var type=candidate.type;sdp.push(\"typ\");sdp.push(type);if(type!==\"host\"&&candidate.relatedAddress&&candidate.relatedPort){sdp.push(\"raddr\");sdp.push(candidate.relatedAddress);sdp.push(\"rport\");sdp.push(candidate.relatedPort)}if(candidate.tcpType&&candidate.protocol.toLowerCase()===\"tcp\"){sdp.push(\"tcptype\");sdp.push(candidate.tcpType)}if(candidate.usernameFragment||candidate.ufrag){sdp.push(\"ufrag\");sdp.push(candidate.usernameFragment||candidate.ufrag)}return\"candidate:\"+sdp.join(\" \")};SDPUtils.parseIceOptions=function(line){return line.substring(14).split(\" \")};SDPUtils.parseRtpMap=function(line){var parts=line.substring(9).split(\" \");var parsed={payloadType:parseInt(parts.shift(),10)};parts=parts[0].split(\"/\");parsed.name=parts[0];parsed.clockRate=parseInt(parts[1],10);parsed.channels=parts.length===3?parseInt(parts[2],10):1;parsed.numChannels=parsed.channels;return parsed};SDPUtils.writeRtpMap=function(codec){var pt=codec.payloadType;if(codec.preferredPayloadType!==undefined){pt=codec.preferredPayloadType}var channels=codec.channels||codec.numChannels||1;return\"a=rtpmap:\"+pt+\" \"+codec.name+\"/\"+codec.clockRate+(channels!==1?\"/\"+channels:\"\")+\"\\r\\n\"};SDPUtils.parseExtmap=function(line){var parts=line.substring(9).split(\" \");return{id:parseInt(parts[0],10),direction:parts[0].indexOf(\"/\")>0?parts[0].split(\"/\")[1]:\"sendrecv\",uri:parts[1],attributes:parts.slice(2).join(\" \")}};SDPUtils.writeExtmap=function(headerExtension){return\"a=extmap:\"+(headerExtension.id||headerExtension.preferredId)+(headerExtension.direction&&headerExtension.direction!==\"sendrecv\"?\"/\"+headerExtension.direction:\"\")+\" \"+headerExtension.uri+(headerExtension.attributes?\" \"+headerExtension.attributes:\"\")+\"\\r\\n\"};SDPUtils.parseFmtp=function(line){var parsed={};var kv=void 0;var parts=line.substring(line.indexOf(\" \")+1).split(\";\");for(var j=0;j<parts.length;j++){kv=parts[j].trim().split(\"=\");parsed[kv[0].trim()]=kv[1]}return parsed};SDPUtils.writeFmtp=function(codec){var line=\"\";var pt=codec.payloadType;if(codec.preferredPayloadType!==undefined){pt=codec.preferredPayloadType}if(codec.parameters&&Object.keys(codec.parameters).length){var params=[];Object.keys(codec.parameters).forEach(function(param){if(codec.parameters[param]!==undefined){params.push(param+\"=\"+codec.parameters[param])}else{params.push(param)}});line+=\"a=fmtp:\"+pt+\" \"+params.join(\";\")+\"\\r\\n\"}return line};SDPUtils.parseRtcpFb=function(line){var parts=line.substring(line.indexOf(\" \")+1).split(\" \");return{type:parts.shift(),parameter:parts.join(\" \")}};SDPUtils.writeRtcpFb=function(codec){var lines=\"\";var pt=codec.payloadType;if(codec.preferredPayloadType!==undefined){pt=codec.preferredPayloadType}if(codec.rtcpFeedback&&codec.rtcpFeedback.length){codec.rtcpFeedback.forEach(function(fb){lines+=\"a=rtcp-fb:\"+pt+\" \"+fb.type+(fb.parameter&&fb.parameter.length?\" \"+fb.parameter:\"\")+\"\\r\\n\"})}return lines};SDPUtils.parseSsrcMedia=function(line){var sp=line.indexOf(\" \");var parts={ssrc:parseInt(line.substring(7,sp),10)};var colon=line.indexOf(\":\",sp);if(colon>-1){parts.attribute=line.substring(sp+1,colon);parts.value=line.substring(colon+1)}else{parts.attribute=line.substring(sp+1)}return parts};SDPUtils.parseSsrcGroup=function(line){var parts=line.substring(13).split(\" \");return{semantics:parts.shift(),ssrcs:parts.map(function(ssrc){return parseInt(ssrc,10)})}};SDPUtils.getMid=function(mediaSection){var mid=SDPUtils.matchPrefix(mediaSection,\"a=mid:\")[0];if(mid){return mid.substring(6)}};SDPUtils.parseFingerprint=function(line){var parts=line.substring(14).split(\" \");return{algorithm:parts[0].toLowerCase(),value:parts[1].toUpperCase()}};SDPUtils.getDtlsParameters=function(mediaSection,sessionpart){var lines=SDPUtils.matchPrefix(mediaSection+sessionpart,\"a=fingerprint:\");return{role:\"auto\",fingerprints:lines.map(SDPUtils.parseFingerprint)}};SDPUtils.writeDtlsParameters=function(params,setupType){var sdp=\"a=setup:\"+setupType+\"\\r\\n\";params.fingerprints.forEach(function(fp){sdp+=\"a=fingerprint:\"+fp.algorithm+\" \"+fp.value+\"\\r\\n\"});return sdp};SDPUtils.parseCryptoLine=function(line){var parts=line.substring(9).split(\" \");return{tag:parseInt(parts[0],10),cryptoSuite:parts[1],keyParams:parts[2],sessionParams:parts.slice(3)}};SDPUtils.writeCryptoLine=function(parameters){return\"a=crypto:\"+parameters.tag+\" \"+parameters.cryptoSuite+\" \"+(_typeof(parameters.keyParams)===\"object\"?SDPUtils.writeCryptoKeyParams(parameters.keyParams):parameters.keyParams)+(parameters.sessionParams?\" \"+parameters.sessionParams.join(\" \"):\"\")+\"\\r\\n\"};SDPUtils.parseCryptoKeyParams=function(keyParams){if(keyParams.indexOf(\"inline:\")!==0){return null}var parts=keyParams.substring(7).split(\"|\");return{keyMethod:\"inline\",keySalt:parts[0],lifeTime:parts[1],mkiValue:parts[2]?parts[2].split(\":\")[0]:undefined,mkiLength:parts[2]?parts[2].split(\":\")[1]:undefined}};SDPUtils.writeCryptoKeyParams=function(keyParams){return keyParams.keyMethod+\":\"+keyParams.keySalt+(keyParams.lifeTime?\"|\"+keyParams.lifeTime:\"\")+(keyParams.mkiValue&&keyParams.mkiLength?\"|\"+keyParams.mkiValue+\":\"+keyParams.mkiLength:\"\")};SDPUtils.getCryptoParameters=function(mediaSection,sessionpart){var lines=SDPUtils.matchPrefix(mediaSection+sessionpart,\"a=crypto:\");return lines.map(SDPUtils.parseCryptoLine)};SDPUtils.getIceParameters=function(mediaSection,sessionpart){var ufrag=SDPUtils.matchPrefix(mediaSection+sessionpart,\"a=ice-ufrag:\")[0];var pwd=SDPUtils.matchPrefix(mediaSection+sessionpart,\"a=ice-pwd:\")[0];if(!(ufrag&&pwd)){return null}return{usernameFragment:ufrag.substring(12),password:pwd.substring(10)}};SDPUtils.writeIceParameters=function(params){var sdp=\"a=ice-ufrag:\"+params.usernameFragment+\"\\r\\n\"+\"a=ice-pwd:\"+params.password+\"\\r\\n\";if(params.iceLite){sdp+=\"a=ice-lite\\r\\n\"}return sdp};SDPUtils.parseRtpParameters=function(mediaSection){var description={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]};var lines=SDPUtils.splitLines(mediaSection);var mline=lines[0].split(\" \");description.profile=mline[2];for(var i=3;i<mline.length;i++){var pt=mline[i];var rtpmapline=SDPUtils.matchPrefix(mediaSection,\"a=rtpmap:\"+pt+\" \")[0];if(rtpmapline){var codec=SDPUtils.parseRtpMap(rtpmapline);var fmtps=SDPUtils.matchPrefix(mediaSection,\"a=fmtp:\"+pt+\" \");codec.parameters=fmtps.length?SDPUtils.parseFmtp(fmtps[0]):{};codec.rtcpFeedback=SDPUtils.matchPrefix(mediaSection,\"a=rtcp-fb:\"+pt+\" \").map(SDPUtils.parseRtcpFb);description.codecs.push(codec);switch(codec.name.toUpperCase()){case\"RED\":case\"ULPFEC\":description.fecMechanisms.push(codec.name.toUpperCase());break;default:break}}}SDPUtils.matchPrefix(mediaSection,\"a=extmap:\").forEach(function(line){description.headerExtensions.push(SDPUtils.parseExtmap(line))});var wildcardRtcpFb=SDPUtils.matchPrefix(mediaSection,\"a=rtcp-fb:* \").map(SDPUtils.parseRtcpFb);description.codecs.forEach(function(codec){wildcardRtcpFb.forEach(function(fb){var duplicate=codec.rtcpFeedback.find(function(existingFeedback){return existingFeedback.type===fb.type&&existingFeedback.parameter===fb.parameter});if(!duplicate){codec.rtcpFeedback.push(fb)}})});return description};SDPUtils.writeRtpDescription=function(kind,caps){var sdp=\"\";sdp+=\"m=\"+kind+\" \";sdp+=caps.codecs.length>0?\"9\":\"0\";sdp+=\" \"+(caps.profile||\"UDP/TLS/RTP/SAVPF\")+\" \";sdp+=caps.codecs.map(function(codec){if(codec.preferredPayloadType!==undefined){return codec.preferredPayloadType}return codec.payloadType}).join(\" \")+\"\\r\\n\";sdp+=\"c=IN IP4 0.0.0.0\\r\\n\";sdp+=\"a=rtcp:9 IN IP4 0.0.0.0\\r\\n\";caps.codecs.forEach(function(codec){sdp+=SDPUtils.writeRtpMap(codec);sdp+=SDPUtils.writeFmtp(codec);sdp+=SDPUtils.writeRtcpFb(codec)});var maxptime=0;caps.codecs.forEach(function(codec){if(codec.maxptime>maxptime){maxptime=codec.maxptime}});if(maxptime>0){sdp+=\"a=maxptime:\"+maxptime+\"\\r\\n\"}if(caps.headerExtensions){caps.headerExtensions.forEach(function(extension){sdp+=SDPUtils.writeExtmap(extension)})}return sdp};SDPUtils.parseRtpEncodingParameters=function(mediaSection){var encodingParameters=[];var description=SDPUtils.parseRtpParameters(mediaSection);var hasRed=description.fecMechanisms.indexOf(\"RED\")!==-1;var hasUlpfec=description.fecMechanisms.indexOf(\"ULPFEC\")!==-1;var ssrcs=SDPUtils.matchPrefix(mediaSection,\"a=ssrc:\").map(function(line){return SDPUtils.parseSsrcMedia(line)}).filter(function(parts){return parts.attribute===\"cname\"});var primarySsrc=ssrcs.length>0&&ssrcs[0].ssrc;var secondarySsrc=void 0;var flows=SDPUtils.matchPrefix(mediaSection,\"a=ssrc-group:FID\").map(function(line){var parts=line.substring(17).split(\" \");return parts.map(function(part){return parseInt(part,10)})});if(flows.length>0&&flows[0].length>1&&flows[0][0]===primarySsrc){secondarySsrc=flows[0][1]}description.codecs.forEach(function(codec){if(codec.name.toUpperCase()===\"RTX\"&&codec.parameters.apt){var encParam={ssrc:primarySsrc,codecPayloadType:parseInt(codec.parameters.apt,10)};if(primarySsrc&&secondarySsrc){encParam.rtx={ssrc:secondarySsrc}}encodingParameters.push(encParam);if(hasRed){encParam=JSON.parse(JSON.stringify(encParam));encParam.fec={ssrc:primarySsrc,mechanism:hasUlpfec?\"red+ulpfec\":\"red\"};encodingParameters.push(encParam)}}});if(encodingParameters.length===0&&primarySsrc){encodingParameters.push({ssrc:primarySsrc})}var bandwidth=SDPUtils.matchPrefix(mediaSection,\"b=\");if(bandwidth.length){if(bandwidth[0].indexOf(\"b=TIAS:\")===0){bandwidth=parseInt(bandwidth[0].substring(7),10)}else if(bandwidth[0].indexOf(\"b=AS:\")===0){bandwidth=parseInt(bandwidth[0].substring(5),10)*1e3*.95-50*40*8}else{bandwidth=undefined}encodingParameters.forEach(function(params){params.maxBitrate=bandwidth})}return encodingParameters};SDPUtils.parseRtcpParameters=function(mediaSection){var rtcpParameters={};var remoteSsrc=SDPUtils.matchPrefix(mediaSection,\"a=ssrc:\").map(function(line){return SDPUtils.parseSsrcMedia(line)}).filter(function(obj){return obj.attribute===\"cname\"})[0];if(remoteSsrc){rtcpParameters.cname=remoteSsrc.value;rtcpParameters.ssrc=remoteSsrc.ssrc}var rsize=SDPUtils.matchPrefix(mediaSection,\"a=rtcp-rsize\");rtcpParameters.reducedSize=rsize.length>0;rtcpParameters.compound=rsize.length===0;var mux=SDPUtils.matchPrefix(mediaSection,\"a=rtcp-mux\");rtcpParameters.mux=mux.length>0;return rtcpParameters};SDPUtils.writeRtcpParameters=function(rtcpParameters){var sdp=\"\";if(rtcpParameters.reducedSize){sdp+=\"a=rtcp-rsize\\r\\n\"}if(rtcpParameters.mux){sdp+=\"a=rtcp-mux\\r\\n\"}if(rtcpParameters.ssrc!==undefined&&rtcpParameters.cname){sdp+=\"a=ssrc:\"+rtcpParameters.ssrc+\" cname:\"+rtcpParameters.cname+\"\\r\\n\"}return sdp};SDPUtils.parseMsid=function(mediaSection){var parts=void 0;var spec=SDPUtils.matchPrefix(mediaSection,\"a=msid:\");if(spec.length===1){parts=spec[0].substring(7).split(\" \");return{stream:parts[0],track:parts[1]}}var planB=SDPUtils.matchPrefix(mediaSection,\"a=ssrc:\").map(function(line){return SDPUtils.parseSsrcMedia(line)}).filter(function(msidParts){return msidParts.attribute===\"msid\"});if(planB.length>0){parts=planB[0].value.split(\" \");return{stream:parts[0],track:parts[1]}}};SDPUtils.parseSctpDescription=function(mediaSection){var mline=SDPUtils.parseMLine(mediaSection);var maxSizeLine=SDPUtils.matchPrefix(mediaSection,\"a=max-message-size:\");var maxMessageSize=void 0;if(maxSizeLine.length>0){maxMessageSize=parseInt(maxSizeLine[0].substring(19),10)}if(isNaN(maxMessageSize)){maxMessageSize=65536}var sctpPort=SDPUtils.matchPrefix(mediaSection,\"a=sctp-port:\");if(sctpPort.length>0){return{port:parseInt(sctpPort[0].substring(12),10),protocol:mline.fmt,maxMessageSize:maxMessageSize}}var sctpMapLines=SDPUtils.matchPrefix(mediaSection,\"a=sctpmap:\");if(sctpMapLines.length>0){var parts=sctpMapLines[0].substring(10).split(\" \");return{port:parseInt(parts[0],10),protocol:parts[1],maxMessageSize:maxMessageSize}}};SDPUtils.writeSctpDescription=function(media,sctp){var output=[];if(media.protocol!==\"DTLS/SCTP\"){output=[\"m=\"+media.kind+\" 9 \"+media.protocol+\" \"+sctp.protocol+\"\\r\\n\",\"c=IN IP4 0.0.0.0\\r\\n\",\"a=sctp-port:\"+sctp.port+\"\\r\\n\"]}else{output=[\"m=\"+media.kind+\" 9 \"+media.protocol+\" \"+sctp.port+\"\\r\\n\",\"c=IN IP4 0.0.0.0\\r\\n\",\"a=sctpmap:\"+sctp.port+\" \"+sctp.protocol+\" 65535\\r\\n\"]}if(sctp.maxMessageSize!==undefined){output.push(\"a=max-message-size:\"+sctp.maxMessageSize+\"\\r\\n\")}return output.join(\"\")};SDPUtils.generateSessionId=function(){return Math.random().toString().substr(2,22)};SDPUtils.writeSessionBoilerplate=function(sessId,sessVer,sessUser){var sessionId=void 0;var version=sessVer!==undefined?sessVer:2;if(sessId){sessionId=sessId}else{sessionId=SDPUtils.generateSessionId()}var user=sessUser||\"thisisadapterortc\";return\"v=0\\r\\n\"+\"o=\"+user+\" \"+sessionId+\" \"+version+\" IN IP4 127.0.0.1\\r\\n\"+\"s=-\\r\\n\"+\"t=0 0\\r\\n\"};SDPUtils.getDirection=function(mediaSection,sessionpart){var lines=SDPUtils.splitLines(mediaSection);for(var i=0;i<lines.length;i++){switch(lines[i]){case\"a=sendrecv\":case\"a=sendonly\":case\"a=recvonly\":case\"a=inactive\":return lines[i].substring(2);default:}}if(sessionpart){return SDPUtils.getDirection(sessionpart)}return\"sendrecv\"};SDPUtils.getKind=function(mediaSection){var lines=SDPUtils.splitLines(mediaSection);var mline=lines[0].split(\" \");return mline[0].substring(2)};SDPUtils.isRejected=function(mediaSection){return mediaSection.split(\" \",2)[1]===\"0\"};SDPUtils.parseMLine=function(mediaSection){var lines=SDPUtils.splitLines(mediaSection);var parts=lines[0].substring(2).split(\" \");return{kind:parts[0],port:parseInt(parts[1],10),protocol:parts[2],fmt:parts.slice(3).join(\" \")}};SDPUtils.parseOLine=function(mediaSection){var line=SDPUtils.matchPrefix(mediaSection,\"o=\")[0];var parts=line.substring(2).split(\" \");return{username:parts[0],sessionId:parts[1],sessionVersion:parseInt(parts[2],10),netType:parts[3],addressType:parts[4],address:parts[5]}};SDPUtils.isValidSDP=function(blob){if(typeof blob!==\"string\"||blob.length===0){return false}var lines=SDPUtils.splitLines(blob);for(var i=0;i<lines.length;i++){if(lines[i].length<2||lines[i].charAt(1)!==\"=\"){return false}}return true};if((typeof module===\"undefined\"?\"undefined\":_typeof(module))===\"object\"){module.exports=SDPUtils}},{}]},{},[1])(1)});"]}]}