(function(b){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=b()}else{if(typeof define==="function"&&define.amd){define([],b)}else{var a;if(typeof window!=="undefined"){a=window}else{if(typeof global!=="undefined"){a=global}else{if(typeof self!=="undefined"){a=self}else{a=this}}}a.SdpInterop=b()}}})(function(){var d,b,a;return(function c(f,k,h){function g(q,n){if(!k[q]){if(!f[q]){var m=typeof require=="function"&&require;if(!n&&m){return m(q,!0)}if(e){return e(q,!0)}var p=new Error("Cannot find module '"+q+"'");throw p.code="MODULE_NOT_FOUND",p}var i=k[q]={exports:{}};f[q][0].call(i.exports,function(l){var o=f[q][1][l];return g(o?o:l)},i,i.exports,c,f,k,h)}return k[q].exports}var e=typeof require=="function"&&require;for(var j=0;j<h.length;j++){g(h[j])}return g})({1:[function(g,h,f){var e=h.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w\/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-\.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(i){return(i.encoding)?"rtpmap:%d %s/%s/%s":i.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(i){return(i.address!=null)?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%d trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(i){return(i.subtype!=null)?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))? (\S*)(?: (\S*))?/,names:["value","direction","uri","config"],format:function(i){return"extmap:%d"+(i.direction?"/%s":"%v")+" %s"+(i.config?" %s":"")}},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return(i.sessionConfig!=null)?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(j){var i="candidate:%s %d %s %d %s %d typ %s";i+=(j.raddr!=null)?" raddr %s rport %d":"%v%v";i+=(j.tcptype!=null)?" tcptype %s":"%v";if(j.generation!=null){i+=" generation %d"}i+=(j["network-id"]!=null)?" network-id %d":"%v";i+=(j["network-cost"]!=null)?" network-cost %d":"%v";return i}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_]*)(?::(.*))?/,names:["id","attribute","value"],format:function(j){var i="ssrc:%d";if(j.attribute!=null){i+=" %s";if(j.value!=null){i+=":%s"}}return i}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_\/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(i){return(i.maxMessageSize!=null)?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(i){return(i.params)?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(i){return"imageattr:%s %s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(i){return"simulcast:%s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{push:"invalid",names:["value"]}]};Object.keys(e).forEach(function(i){var j=e[i];j.forEach(function(k){if(!k.reg){k.reg=/(.*)/}if(!k.format){k.format="%s"}})})},{}],2:[function(f,g,e){var i=f("./parser");var h=f("./writer");e.write=h;e.parse=i.parse;e.parseFmtpConfig=i.parseFmtpConfig;e.parseParams=i.parseParams;e.parsePayloads=i.parsePayloads;e.parseRemoteCandidates=i.parseRemoteCandidates;e.parseImageAttributes=i.parseImageAttributes;e.parseSimulcastStreamList=i.parseSimulcastStreamList},{"./parser":3,"./writer":4}],3:[function(h,g,j){var k=function(n){return String(Number(n))===n?Number(n):n};var l=function(o,n,r,q){if(q&&!r){n[q]=k(o[1])}else{for(var p=0;p<r.length;p+=1){if(o[p+1]!=null){n[r[p]]=k(o[p+1])}}}};var i=function(r,n,p){var o=r.name&&r.names;if(r.push&&!n[r.push]){n[r.push]=[]}else{if(o&&!n[r.name]){n[r.name]={}}}var q=r.push?{}:o?n[r.name]:n;l(p.match(r.reg),q,r.names,r.name);if(r.push){n[r.push].push(q)}};var e=h("./grammar");var f=RegExp.prototype.test.bind(/^([a-z])=(.*)/);j.parse=function(o){var q={},p=[],n=q;o.split(/(\r\n|\r|\n)/).filter(f).forEach(function(r){var t=r[0];var u=r.slice(2);if(t==="m"){p.push({rtp:[],fmtp:[]});n=p[p.length-1]}for(var s=0;s<(e[t]||[]).length;s+=1){var v=e[t][s];if(v.reg.test(u)){return i(v,n,u)}}});q.media=p;return q};var m=function(o,p){var n=p.split(/=(.+)/,2);if(n.length===2){o[n[0]]=k(n[1])}return o};j.parseParams=function(n){return n.split(/\;\s?/).reduce(m,{})};j.parseFmtpConfig=j.parseParams;j.parsePayloads=function(n){return n.split(" ").map(Number)};j.parseRemoteCandidates=function(q){var o=[];var p=q.split(" ").map(k);for(var n=0;n<p.length;n+=3){o.push({component:p[n],ip:p[n+1],port:p[n+2]})}return o};j.parseImageAttributes=function(n){return n.split(" ").map(function(o){return o.substring(1,o.length-1).split(",").reduce(m,{})})};j.parseSimulcastStreamList=function(n){return n.split(";").map(function(o){return o.split(",").map(function(r){var q,p=false;if(r[0]!=="~"){q=k(r)}else{q=k(r.substring(1,r.length));p=true}return{scid:q,paused:p}})})}},{"./grammar":1}],4:[function(h,g,j){var f=h("./grammar");var k=/%[sdv%]/g;var m=function(o){var q=1;var p=arguments;var n=p.length;return o.replace(k,function(s){if(q>=n){return s}var r=p[q];q+=1;switch(s){case"%%":return"%";case"%s":return String(r);case"%d":return Number(r);case"%v":return""}})};var l=function(r,s,o){var t=s.format instanceof Function?(s.format(s.push?o:o[s.name])):s.format;var p=[r+"="+t];if(s.names){for(var q=0;q<s.names.length;q+=1){var u=s.names[q];if(s.name){p.push(o[s.name][u])}else{p.push(o[s.names[q]])}}}else{p.push(o[s.name])}return m.apply(null,p)};var i=["v","o","s","i","u","e","p","c","b","t","r","z","a"];var e=["i","c","b","a"];g.exports=function(r,q){q=q||{};if(r.version==null){r.version=0}if(r.name==null){r.name=" "}r.media.forEach(function(s){if(s.payloads==null){s.payloads=""}});var o=q.outerOrder||i;var p=q.innerOrder||e;var n=[];o.forEach(function(s){f[s].forEach(function(t){if(t.name in r&&r[t.name]!=null){n.push(l(s,t,r))}else{if(t.push in r&&r[t.push]!=null){r[t.push].forEach(function(u){n.push(l(s,t,u))})}}})});r.media.forEach(function(s){n.push(l("m",f.m[0],s));p.forEach(function(t){f[t].forEach(function(u){if(u.name in s&&s[u.name]!=null){n.push(l(t,u,s))}else{if(u.push in s&&s[u.push]!=null){s[u.push].forEach(function(v){n.push(l(t,u,v))})}}})})});return n.join("\r\n")+"\r\n"}},{"./grammar":1}],5:[function(g,h,f){var e=h.exports={InteropFF:g("./interop_on_ff"),InteropChrome:g("./interop_on_chrome"),transform:g("./transform")}},{"./interop_on_chrome":7,"./interop_on_ff":8,"./transform":11}],6:[function(f,g,e){g.exports=function h(m){if(!m){return false}if(this.length!=m.length){return false}for(var k=0,j=this.length;k<j;k++){if(this[k] instanceof Array&&m[k] instanceof Array){if(!h.apply(this[k],[m[k]])){return false}}else{if(this[k]!=m[k]){return false}}}return true}},{}],7:[function(g,h,f){var e=function(){var j={};var i=function(n){return JSON.parse(JSON.stringify(n))};var k=function(o){var n=g("./on_chrome/to-unified-plan")(o,j);j.local=i(n.sdp);return n};var m=function(n){j.remote=i(n.sdp);return g("./on_chrome/to-plan-b")(n,j)};var l={};l.toUnifiedPlan=k;l.toPlanB=m;return l};h.exports=e},{"./on_chrome/to-plan-b":9,"./on_chrome/to-unified-plan":10}],8:[function(h,i,f){var g=h("./transform");var j=h("./array-equals");function e(){this.cache={}}i.exports=e;e.prototype.getFirstSendingIndexFromAnswer=function(l){if(!this.cache.answer){return null}var m=g.parse(this.cache.answer);if(m&&m.media&&Array.isArray(m.media)){for(var k=0;k<m.media.length;k++){if(m.media[k].type==l&&(!m.media[k].direction||m.media[k].direction==="sendrecv"||m.media[k].direction==="sendonly")){return k}}}return null};e.prototype.toPlanB=function(q){var u=this;if(typeof q!=="object"||q===null||typeof q.sdp!=="string"){console.warn("An empty description was passed as an argument.");return q}var r=g.parse(q.sdp);if(typeof r.media==="undefined"||!Array.isArray(r.media)||r.media.length===0){console.warn("The description has no media.");return q}if(r.media.length<=3&&r.media.every(function(v){return["video","audio","data"].indexOf(v.mid)!==-1})){console.warn("This description does not look like Unified Plan.");return q}var n=q.sdp;var s=false;for(var o=0;o<r.media.length;o++){var m=r.media[o];m.rtp.forEach(function(v){if(v.codec==="NULL"){s=true;var w=g.parse(u.cache.offer);v.codec=w.media[o].rtp[0].codec}})}if(s){n=g.write(r)}this.cache[q.type]=n;var l=r.media;r.media=[];var k={};var p=[];l.forEach(function(v){if((typeof v.rtcpMux!=="string"||v.rtcpMux!=="rtcp-mux")&&v.direction!=="inactive"){throw new Error("Cannot convert to Plan B because m-lines without the rtcp-mux attribute were found.")}if(v.type==="application"){r.media.push(v);p.push(v.mid);return}if(typeof k[v.type]==="undefined"){k[v.type]=v}if(typeof v.sources==="object"){Object.keys(v.sources).forEach(function(w){if(typeof k[v.type].sources!=="object"){k[v.type].sources={}}k[v.type].sources[w]=v.sources[w];if(typeof v.msid!=="undefined"){k[v.type].sources[w].msid=v.msid}})}if(typeof v.ssrcGroups!=="undefined"&&Array.isArray(v.ssrcGroups)){if(typeof k[v.type].ssrcGroups==="undefined"||!Array.isArray(k[v.type].ssrcGroups)){k[v.type].ssrcGroups=[]}k[v.type].ssrcGroups=k[v.type].ssrcGroups.concat(v.ssrcGroups)}if(k[v.type]===v){v.candidates=l[0].candidates;v.iceUfrag=l[0].iceUfrag;v.icePwd=l[0].icePwd;v.fingerprint=l[0].fingerprint;v.mid=v.type;delete v.bundleOnly;delete v.msid;p.push(v.type);r.media.push(v)}});r.groups.some(function(v){if(v.type==="BUNDLE"){v.mids=p.join(" ");return true}});r.msidSemantic={semantic:"WMS",token:"*"};var t=g.write(r);return new RTCSessionDescription({type:q.type,sdp:t})};e.prototype.toUnifiedPlan=function(p){var u=this;if(typeof p!=="object"||p===null||typeof p.sdp!=="string"){console.warn("An empty description was passed as an argument.");return p}var r=g.parse(p.sdp);if(typeof r.media==="undefined"||!Array.isArray(r.media)||r.media.length===0){console.warn("The description has no media.");return p}if(r.media.length>3||!r.media.every(function(v){return["video","audio","data"].indexOf(v.mid)!==-1})){console.warn("This description does not look like Plan B.");return p}var q=[];r.media.forEach(function(v){q.push(v.mid)});var k=false;if(typeof r.groups!=="undefined"&&Array.isArray(r.groups)){k=r.groups.every(function(v){return v.type!=="BUNDLE"||j.apply(v.mids.sort(),[q.sort()])})}if(!k){throw new Error("Cannot convert to Unified Plan because m-lines that are not bundled were found.")}var m;if(typeof this.cache[p.type]!=="undefined"){m=g.parse(this.cache[p.type])}var o={audio:{},video:{}};var s={};r.media.forEach(function(D){if((typeof D.rtcpMux!=="string"||D.rtcpMux!=="rtcp-mux")&&D.direction!=="inactive"){throw new Error("Cannot convert to Unified Plan because m-lines without the rtcp-mux attribute were found.")}if(D.type==="application"){s[D.mid]=D;return}var v=D.sources;var C=D.ssrcGroups;var B=D.candidates;var A=D.iceUfrag;var E=D.icePwd;var z=D.fingerprint;var w=D.port;delete D.sources;delete D.ssrcGroups;delete D.candidates;delete D.iceUfrag;delete D.icePwd;delete D.fingerprint;delete D.port;delete D.mid;var y={};if(typeof C!=="undefined"&&Array.isArray(C)){C.forEach(function(F){if(F.semantics==="SIM"){return}if(typeof F.ssrcs!=="undefined"&&Array.isArray(F.ssrcs)){F.ssrcs.forEach(function(G){if(typeof y[G]==="undefined"){y[G]=[]}y[G].push(F)})}})}var x={};if(typeof v==="object"){Object.keys(v).forEach(function(F){var G;if(p.type==="offer"){if(!v[F].msid){o[D.type][F]=v[F];return}}if(typeof y[F]!=="undefined"&&Array.isArray(y[F])){y[F].some(function(H){return H.ssrcs.some(function(I){if(typeof x[I]==="object"){G=x[I];return true}})})}if(typeof G==="object"){G.sources[F]=v[F];delete v[F].msid}else{G=Object.create(D);x[F]=G;if(typeof v[F].msid!=="undefined"){G.msid=v[F].msid;G.direction="sendrecv";delete v[F].msid}G.sources={};G.sources[F]=v[F];G.ssrcGroups=y[F];if(typeof m!=="undefined"&&typeof m.media!=="undefined"&&Array.isArray(m.media)){m.media.forEach(function(H){if(typeof H.sources==="object"){Object.keys(H.sources).forEach(function(I){if(I===F){G.mid=H.mid}})}})}if(typeof G.mid==="undefined"){if(p.type==="answer"){throw new Error("An unmapped SSRC was found.")}G.mid=[D.type,"-",F].join("")}G.candidates=B;G.iceUfrag=A;G.icePwd=E;G.fingerprint=z;G.port=w;s[G.mid]=G}})}});r.media=[];q=[];if(p.type==="answer"){for(var n=0;n<m.media.length;n++){var l=m.media[n];if(typeof s[l.mid]==="undefined"){delete l.msid;delete l.sources;delete l.ssrcGroups;if(!l.direction||l.direction==="sendrecv"){l.direction="recvonly"}else{if(l.direction==="sendonly"){l.direction="inactive"}}}else{}r.media.push(l);if(typeof l.mid==="string"){q.push(l.mid)}}}else{if(typeof m!=="undefined"&&typeof m.media!=="undefined"&&Array.isArray(m.media)){m.media.forEach(function(v){q.push(v.mid);if(typeof s[v.mid]!=="undefined"){r.media.push(s[v.mid])}else{delete v.msid;delete v.sources;delete v.ssrcGroups;if(!v.direction||v.direction==="sendrecv"){v.direction="recvonly"}if(!v.direction||v.direction==="sendonly"){v.direction="inactive"}r.media.push(v)}})}Object.keys(s).forEach(function(v){if(q.indexOf(v)===-1){q.push(v);if(s[v].direction==="recvonly"){r.media.some(function(w){if((w.direction==="sendrecv"||w.direction==="sendonly")&&w.type===s[v].type){Object.keys(s[v].sources).forEach(function(x){w.sources[x]=s[v].sources[x]});return true}})}else{r.media.push(s[v])}}})}["audio","video"].forEach(function(y){if(!r||!r.media||!Array.isArray(r.media)){return}var v=null;if(Object.keys(o[y]).length>0){v=u.getFirstSendingIndexFromAnswer(y);if(v===null){for(var x=0;x<r.media.length;x++){if(r.media[x].type===y){v=x;break}}}}if(v&&r.media.length>v){var w=r.media[v];Object.keys(o[y]).forEach(function(z){if(w.sources&&w.sources[z]){console.warn("Replacing an existing SSRC.")}if(!w.sources){w.sources={}}w.sources[z]=o[y][z]})}});r.groups.some(function(v){if(v.type==="BUNDLE"){v.mids=q.join(" ");return true}});r.msidSemantic={semantic:"WMS",token:"*"};var t=g.write(r);this.cache[p.type]=t;return new RTCSessionDescription({type:p.type,sdp:t})}},{"./array-equals":6,"./transform":11}],9:[function(g,h,e){var f=g("../transform");h.exports=function(p,k){if(typeof p!=="object"||p===null||typeof p.sdp!=="string"){console.warn("An empty description was passed as an argument.");return p}var q=f.parse(p.sdp);if(typeof q.media==="undefined"||!Array.isArray(q.media)||q.media.length===0){console.warn("The description has no media.");return p}if(q.media.length<=3&&q.media.every(function(i){return["video","audio","data"].indexOf(i.mid)!==-1})){console.warn("This description does not look like Unified Plan.");return p}var r=false;for(var n=0;n<q.media.length;n++){var m=q.media[n];m.rtp.forEach(function(i){if(i.codec==="NULL"){r=true;var t=f.parse(k.local);i.codec=t.media[n].rtp[0].codec}})}if(r){p.sdp=f.write(q)}var l=q.media;q.media=[];var j={};var o=[];l.forEach(function(t,i){if(typeof j[t.type]==="undefined"){j[t.type]=t}if(t.port===0){if(i>1&&t.type!=="data"){return}else{delete t.mid;t.mid=t.type;q.media.push(t);return}}if(t.type==="application"){q.media.push(t);o.push(t.mid);return}if(typeof t.sources==="object"){Object.keys(t.sources).forEach(function(u){if(typeof j[t.type].sources!=="object"){j[t.type].sources={}}j[t.type].sources[u]=t.sources[u];if(typeof t.msid!=="undefined"){j[t.type].sources[u].msid=t.msid}})}if(typeof t.ssrcGroups!=="undefined"&&Array.isArray(t.ssrcGroups)){if(typeof j[t.type].ssrcGroups==="undefined"||!Array.isArray(j[t.type].ssrcGroups)){j[t.type].ssrcGroups=[]}j[t.type].ssrcGroups=j[t.type].ssrcGroups.concat(t.ssrcGroups)}if(j[t.type]===t){t.candidates=l[0].candidates;t.iceUfrag=l[0].iceUfrag;t.icePwd=l[0].icePwd;t.fingerprint=l[0].fingerprint;t.mid=t.type;delete t.bundleOnly;delete t.msid;o.push(t.type);q.media.push(t)}});q.groups.some(function(i){if(i.type==="BUNDLE"){i.mids=o.join(" ");return true}});q.msidSemantic={semantic:"WMS",token:"*"};var s=f.write(q);return new window.RTCSessionDescription({type:p.type,sdp:s})}},{"../transform":11}],10:[function(h,i,f){var g=h("../transform");var j=h("../array-equals");var e=function(k){return JSON.parse(JSON.stringify(k))};i.exports=function(q,l){if(typeof q!=="object"||q===null||typeof q.sdp!=="string"){console.warn("An empty description was passed as an argument.");return q}var s=g.parse(q.sdp);if(typeof s.media==="undefined"||!Array.isArray(s.media)||s.media.length===0){console.warn("The description has no media.");return q}if(s.media.length>3||!s.media.every(function(v){return["video","audio","data"].indexOf(v.mid)!==-1})){console.warn("This description does not look like Plan B.");return q}var m=[];s.media.forEach(function(v){if(v.port!==0){m.push(v.mid)}});var k=false;if(typeof s.groups!=="undefined"&&Array.isArray(s.groups)){k=s.groups.every(function(v){return v.type!=="BUNDLE"||j.apply(v.mids.sort(),[m.sort()])})}if(!k){throw new Error("Cannot convert to Unified Plan because m-lines that are not bundled were found.")}var t=null;if(typeof l.local!=="undefined"){t=g.parse(l.local)}var n=null;if(typeof l.remote!=="undefined"){n=g.parse(l.remote)}var p=[];s.media.forEach(function(z,y,v){var B;var A;if(z.port===0){if(t!==null&&t.media.length>y){z.mid=t.media[y].mid}p.push(z);return}if(!z.sources){B=e(z);B.sources={};B.mid=B.type+"-"+1;p.push(B);return}var x=z.sources||null;if(!x){throw new Error("can't convert to unified plan - each m-line must have an ssrc")}var C=z.ssrcGroups||[];z.rtcp.port=z.port;var w=Object.keys(x);if(w.length===0){return}else{if(w.length==1){A=w[0];B=e(z);B.mid=B.type+"-"+A;p.push(B)}else{delete z.sources;delete z.ssrcGroups;C.forEach(function(E){var D=E.ssrcs[0];var F=e(z);F.sources={};F.sources[D]=x[D];F.mid=F.type+"-"+D;p.push(F)})}}});if(q.type==="offer"){if(t){while(p.length<t.media.length){var o=t.media[p.length];o.port=0;p.push(o)}}}else{if(n===undefined){throw Error("remote cache required to generate answer?")}n.media.forEach(function(A,w){if(w<p.length){return}if(A.mid===undefined){console.warn("remote sdp has undefined mid attribute");return}if(A.port===0){var z={};z.port=0;z.type=A.type;z.protocol=A.protocol;z.payloads=A.payloads;z.mid=A.mid;if(!s.connection){if(p[0].connection){z.connection=e(p[0].connection)}else{throw Error("missing connection attribute from sdp")}}else{z.connection=e(s.connection)}z.connection.ip="0.0.0.0";p.push(z);console.log("added disabled m line to the media")}else{for(var x=0;x<p.length;x++){var v=p[x];if(v.type===A.type){var y=e(v);y.mid=A.mid;y.direction="recvonly";p.push(y);break}}}})}s.media=p;var r=[];s.media.forEach(function(v){r.push(v.mid)});s.groups.some(function(v){if(v.type==="BUNDLE"){v.mids=r.join(" ");return true}});s.msidSemantic={semantic:"WMS",token:"*"};var u=g.write(s);return new window.RTCSessionDescription({type:q.type,sdp:u})}},{"../array-equals":6,"../transform":11}],11:[function(g,h,e){var f=g("sdp-transform");e.write=function(j,i){if(typeof j!=="undefined"&&typeof j.media!=="undefined"&&Array.isArray(j.media)){j.media.forEach(function(k){if(typeof k.sources!=="undefined"&&Object.keys(k.sources).length!==0){k.ssrcs=[];Object.keys(k.sources).forEach(function(l){var m=k.sources[l];Object.keys(m).forEach(function(n){k.ssrcs.push({id:l,attribute:n,value:m[n]})})});delete k.sources}if(typeof k.ssrcGroups!=="undefined"&&Array.isArray(k.ssrcGroups)){k.ssrcGroups.forEach(function(l){if(typeof l.ssrcs!=="undefined"&&Array.isArray(l.ssrcs)){l.ssrcs=l.ssrcs.join(" ")}})}})}if(typeof j!=="undefined"&&typeof j.groups!=="undefined"&&Array.isArray(j.groups)){j.groups.forEach(function(k){if(typeof k.mids!=="undefined"&&Array.isArray(k.mids)){k.mids=k.mids.join(" ")}})}return f.write(j,i)};e.parse=function(i){var j=f.parse(i);if(typeof j!=="undefined"&&typeof j.media!=="undefined"&&Array.isArray(j.media)){j.media.forEach(function(k){if(typeof k.ssrcs!=="undefined"&&Array.isArray(k.ssrcs)){k.sources={};k.ssrcs.forEach(function(l){if(!k.sources[l.id]){k.sources[l.id]={}}k.sources[l.id][l.attribute]=l.value});delete k.ssrcs}if(typeof k.ssrcGroups!=="undefined"&&Array.isArray(k.ssrcGroups)){k.ssrcGroups.forEach(function(l){if(typeof l.ssrcs==="string"){l.ssrcs=l.ssrcs.split(" ")}})}})}if(typeof j!=="undefined"&&typeof j.groups!=="undefined"&&Array.isArray(j.groups)){j.groups.forEach(function(k){if(typeof k.mids==="string"){k.mids=k.mids.split(" ")}})}return j}},{"sdp-transform":2}]},{},[5])(5)});