PageSourceSearch

https://ciip.com/pages/digital-human-sdk.js

js ciip.com collected 2026-09-27 05:20:54 UTC 436,048 bytes, 566 lines download raw bytes

1(function(){var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?u(Object(n),!0).forEach((function(t){y(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function f(){f=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},a=typeof Symbol==`function`?Symbol:{},o=a.iterator||`@@iterator`,s=a.asyncIterator||`@@asyncIterator`,c=a.toStringTag||`@@toStringTag`;function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},``)}catch{l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var a=t&&t.prototype instanceof v?t:v,o=Object.create(a.prototype);return i(o,`_invoke`,{value:D(e,n,new j(r||[]))}),o}function d(e,t,n){try{return{type:`normal`,arg:e.call(t,n)}}catch(e){return{type:`throw`,arg:e}}}t.wrap=u;var p=`suspendedStart`,m=`suspendedYield`,h=`executing`,g=`completed`,_={};function v(){}function y(){}function b(){}var x={};l(x,o,(function(){return this}));var S=Object.getPrototypeOf,C=S&&S(S(M([])));C&&C!==n&&r.call(C,o)&&(x=C);var w=b.prototype=v.prototype=Object.create(x);function T(e){[`next`,`throw`,`return`].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function E(e,t){function n(i,a,o,s){var c=d(e[i],e,a);if(c.type!==`throw`){var l=c.arg,u=l.value;return u&&typeof u==`object`&&r.call(u,`__await`)?t.resolve(u.__await).then((function(e){n(`next`,e,o,s)}),(function(e){n(`throw`,e,o,s)})):t.resolve(u).then((function(e){l.value=e,o(l)}),(function(e){return n(`throw`,e,o,s)}))}s(c.arg)}var a;i(this,`_invoke`,{value:function(e,r){function i(){return new t((function(t,i){n(e,r,t,i)}))}return a=a?a.then(i,i):i()}})}function D(t,n,r){var i=p;return function(a,o){if(i===h)throw Error(`Generator is already running`);if(i===g){if(a===`throw`)throw o;return{value:e,done:!0}}for(r.method=a,r.arg=o;;){var s=r.delegate;if(s){var c=O(s,r);if(c){if(c===_)continue;return c}}if(r.method===`next`)r.sent=r._sent=r.arg;else if(r.method===`throw`){if(i===p)throw i=g,r.arg;r.dispatchException(r.arg)}else r.method===`return`&&r.abrupt(`return`,r.arg);i=h;var l=d(t,n,r);if(l.type===`normal`){if(i=r.done?g:m,l.arg===_)continue;return{value:l.arg,done:r.done}}l.type===`throw`&&(i=g,r.method=`throw`,r.arg=l.arg)}}}function O(t,n){var r=n.method,i=t.iterator[r];if(i===e)return n.delegate=null,r===`throw`&&t.iterator.return&&(n.method=`return`,n.arg=e,O(t,n),n.method===`throw`)||r!==`return`&&(n.method=`throw`,n.arg=TypeError(`The iterator does not provide a '`+r+`' method`)),_;var a=d(i,t.iterator,n.arg);if(a.type===`throw`)return n.method=`throw`,n.arg=a.arg,n.delegate=null,_;var o=a.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,n.method!==`return`&&(n.method=`next`,n.arg=e),n.delegate=null,_):o:(n.method=`throw`,n.arg=TypeError(`iterator result is not an object`),n.delegate=null,_)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function A(e){var t=e.completion||{};t.type=`normal`,delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:`root`}],e.forEach(k,this),this.reset(!0)}function M(t){if(t||t===``){var n=t[o];if(n)return n.call(t);if(typeof t.next==`function`)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw TypeError(typeof t+` is not iterable`)}return y.prototype=b,i(w,`constructor`,{value:b,configurable:!0}),i(b,`constructor`,{value:y,configurable:!0}),y.displayName=l(b,c,`GeneratorFunction`),t.isGeneratorFunction=function(e){var t=typeof e==`function`&&e.constructor;return!!t&&(t===y||(t.displayName||t.name)===`GeneratorFunction`)},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,c,`GeneratorFunction`)),e.prototype=Object.create(w),e},t.awrap=function(e){return{__await:e}},T(E.prototype),l(E.prototype,s,(function(){return this})),t.AsyncIterator=E,t.async=function(e,n,r,i,a){a===void 0&&(a=Promise);var o=new E(u(e,n,r,i),a);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},T(w),l(w,c,`Generator`),l(w,o,(function(){return this})),l(w,`toString`,(function(){return`[object Generator]`})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=M,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method=`next`,this.arg=e,this.tryEntries.forEac
1h(A),!t)for(var n in this)n.charAt(0)===`t`&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if(e.type===`throw`)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(r,i){return s.type=`throw`,s.arg=t,n.next=r,i&&(n.method=`next`,n.arg=e),!!i}for(var a=this.tryEntries.length-1;a>=0;--a){var o=this.tryEntries[a],s=o.completion;if(o.tryLoc===`root`)return i(`end`);if(o.tryLoc<=this.prev){var c=r.call(o,`catchLoc`),l=r.call(o,`finallyLoc`);if(c&&l){if(this.prev<o.catchLoc)return i(o.catchLoc,!0);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}else if(c){if(this.prev<o.catchLoc)return i(o.catchLoc,!0)}else{if(!l)throw Error(`try statement without catch or finally`);if(this.prev<o.finallyLoc)return i(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,`finallyLoc`)&&this.prev<i.finallyLoc){var a=i;break}}a&&(e===`break`||e===`continue`)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var o=a?a.completion:{};return o.type=e,o.arg=t,a?(this.method=`next`,this.next=a.finallyLoc,_):this.complete(o)},complete:function(e,t){if(e.type===`throw`)throw e.arg;return e.type===`break`||e.type===`continue`?this.next=e.arg:e.type===`return`?(this.rval=this.arg=e.arg,this.method=`return`,this.next=`end`):e.type===`normal`&&t&&(this.next=t),_},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),A(n),_}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if(r.type===`throw`){var i=r.arg;A(n)}return i}}throw Error(`illegal catch attempt`)},delegateYield:function(t,n,r){return this.delegate={iterator:M(t),resultName:n,nextLoc:r},this.method===`next`&&(this.arg=e),_}},t}function p(e){return p=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},p(e)}function m(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function h(e){return function(){var t=this,n=arguments;return new Promise((function(r,i){var a=e.apply(t,n);function o(e){m(a,r,i,o,s,`next`,e)}function s(e){m(a,r,i,o,s,`throw`,e)}o(void 0)}))}}function g(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function _(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,x(r.key),r)}}function v(e,t,n){return t&&_(e.prototype,t),n&&_(e,n),Object.defineProperty(e,`prototype`,{writable:!1}),e}function y(e,t,n){return(t=x(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function x(e){var t=b(e,`string`);return typeof t==`symbol`?t:String(t)}var S=o(((e,t)=>{t.exports=typeof global==`object`&&global&&global.Object===Object&&global})),C=o(((e,t)=>{var n=S(),r=typeof self==`object`&&self&&self.Object===Object&&self;t.exports=n||r||Function(`return this`)()})),w=o(((e,t)=>{t.exports=C().Symbol})),T=o(((e,t)=>{var n=w(),r=Object.prototype,i=r.hasOwnProperty,a=r.toString,o=n?n.toStringTag:void 0;function s(e){var t=i.call(e,o),n=e[o];try{e[o]=void 0;var r=!0}catch{}var s=a.call(e);return r&&(t?e[o]=n:delete e[o]),s}t.exports=s})),E=o(((e,t)=>{var n=Object.prototype.toString;function r(e){return n.call(e)}t.exports=r})),D=o(((e,t)=>{var n=w(),r=T(),i=E(),a=`[object Null]`,o=`[object Undefined]`,s=n?n.toStringTag:void 0;function c(e){return e==null?e===void 0?o:a:s&&s in Object(e)?r(e):i(e)}t.exports=c})),O=o(((e,t)=>{t.exports=Array.isArray})),k=o(((e,t)=>{function n(e){return typeof e==`object`&&!!e}t.exports=n})),A=o(((e,t)=>{var n=D(),r=O(),i=k(),a=`[object String]`;function o(e){return typeof e==`string`||!r(e)&&i(e)&&n(e)==a}t.exports=o})),j=o(((e,t)=>{function n(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}t.exports=n})),M=o(((e,t)=>{function n(){this.__data__=[],this.size=0}t.exports=n})),N=o(((e,t)=>{function n(e,t){return e===t||e!==e&&t!==t}t.exports=n})),P=o(((e,t)=>{var n=N();function r(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}t.exports=r})),F=o(((e,t)=>{var n=P(),r=Array.prototype.splice;function i(e){var t=this.__data__,i=n(t,e);return i<0?!1:(i==t.length-1?t.pop():r.call(t,i,1),--this.size,!0)}t.exports=i})),I=o(((e,t)=>{var n=P();function r(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}t.exports=r})),L=o(((e,t)=>{var n=P();function r(e){return n(this.__data__,e)>-1}t.exports=r})),R=o(((e,t)=>{var n=P();function r(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}t.exports=r})),ee=o(((e,t)=>{var n=M(),r=F(),i=I(),a=L(),o=R();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),z=o(((e,t)=>{var n=ee();function r(){this.__data__=new n,this.size=0}t.exports=r})),B=o(((e,t)=>{function n(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}t.exports=n})),te=o(((e,t)=>{function n(e){return this.__data__.get(e)}t.exports=n})),V=o(((e,t)=>{function n(e){return this.__data__.has(e)}t.exports=n})),ne=o(((e,t)=>{var n=D(),r=j(),i=`[object AsyncFunction]`,a=`[object Function]`,o=`[object GeneratorFunction]`,s=`[object Proxy]`;function c(e){if(!r(e))return!1;var t=n(e);return t==a||t==o||t==i||t==s}t.exports=c})),H=o(((e,t)=>{t.exports=C()[`__core-js_shared__`]})),re=o(((e,t)=>{var n=H(),r=function(){var e=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||``);
vendor: 5,424 bytes, line 1
1return e?`Symbol(src)_1.`+e:``}();function i(e){return!!r&&r in e}t.exports=i})),U=o(((e,t)=>{var n=Function.prototype.toString;function r(e){if(e!=null){try{return n.call(e)}catch{}try{return e+``}catch{}}return``}t.exports=r})),ie=o(((e,t)=>{var n=ne(),r=re(),i=j(),a=U(),o=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,c=Function.prototype,l=Object.prototype,u=c.toString,d=l.hasOwnProperty,f=RegExp(`^`+u.call(d).replace(o,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function p(e){return!i(e)||r(e)?!1:(n(e)?f:s).test(a(e))}t.exports=p})),ae=o(((e,t)=>{function n(e,t){return e?.[t]}t.exports=n})),W=o(((e,t)=>{var n=ie(),r=ae();function i(e,t){var i=r(e,t);return n(i)?i:void 0}t.exports=i})),G=o(((e,t)=>{t.exports=W()(C(),`Map`)})),K=o(((e,t)=>{t.exports=W()(Object,`create`)})),q=o(((e,t)=>{var n=K();function r(){this.__data__=n?n(null):{},this.size=0}t.exports=r})),oe=o(((e,t)=>{function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}t.exports=n})),J=o(((e,t)=>{var n=K(),r=`__lodash_hash_undefined__`,i=Object.prototype.hasOwnProperty;function a(e){var t=this.__data__;if(n){var a=t[e];return a===r?void 0:a}return i.call(t,e)?t[e]:void 0}t.exports=a})),se=o(((e,t)=>{var n=K(),r=Object.prototype.hasOwnProperty;function i(e){var t=this.__data__;return n?t[e]!==void 0:r.call(t,e)}t.exports=i})),ce=o(((e,t)=>{var n=K(),r=`__lodash_hash_undefined__`;function i(e,t){var i=this.__data__;return this.size+=+!this.has(e),i[e]=n&&t===void 0?r:t,this}t.exports=i})),Y=o(((e,t)=>{var n=q(),r=oe(),i=J(),a=se(),o=ce();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),X=o(((e,t)=>{var n=Y(),r=ee(),i=G();function a(){this.size=0,this.__data__={hash:new n,map:new(i||r),string:new n}}t.exports=a})),Z=o(((e,t)=>{function n(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}t.exports=n})),le=o(((e,t)=>{var n=Z();function r(e,t){var r=e.__data__;return n(t)?r[typeof t==`string`?`string`:`hash`]:r.map}t.exports=r})),ue=o(((e,t)=>{var n=le();function r(e){var t=n(this,e).delete(e);return this.size-=+!!t,t}t.exports=r})),de=o(((e,t)=>{var n=le();function r(e){return n(this,e).get(e)}t.exports=r})),fe=o(((e,t)=>{var n=le();function r(e){return n(this,e).has(e)}t.exports=r})),pe=o(((e,t)=>{var n=le();function r(e,t){var r=n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}t.exports=r})),me=o(((e,t)=>{var n=X(),r=ue(),i=de(),a=fe(),o=pe();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),he=o(((e,t)=>{var n=ee(),r=G(),i=me(),a=200;function o(e,t){var o=this.__data__;if(o instanceof n){var s=o.__data__;if(!r||s.length<a-1)return s.push([e,t]),this.size=++o.size,this;o=this.__data__=new i(s)}return o.set(e,t),this.size=o.size,this}t.exports=o})),ge=o(((e,t)=>{var n=ee(),r=z(),i=B(),a=te(),o=V(),s=he();function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=r,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s,t.exports=c})),_e=o(((e,t)=>{function n(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}t.exports=n})),ve=o(((e,t)=>{var n=W();t.exports=function(){try{var e=n(Object,`defineProperty`);return e({},``,{}),e}catch{}}()})),ye=o(((e,t)=>{var n=ve();function r(e,t,r){t==`__proto__`&&n?n(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}t.exports=r})),be=o(((e,t)=>{var n=ye(),r=N(),i=Object.prototype.hasOwnProperty;function a(e,t,a){var o=e[t];(!(i.call(e,t)&&r(o,a))||a===void 0&&!(t in e))&&n(e,t,a)}t.exports=a})),xe=o(((e,t)=>{var n=be(),r=ye();function i(e,t,i,a){var o=!i;i||={};for(var s=-1,c=t.length;++s<c;){var l=t[s],u=a?a(i[l],e[l],l,i,e):void 0;u===void 0&&(u=e[l]),o?r(i,l,u):n(i,l,u)}return i}t.exports=i})),Se=o(((e,t)=>{function n(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}t.exports=n})),Ce=o(((e,t)=>{var n=D(),r=k(),i=`[object Arguments]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),we=o(((e,t)=>{var n=Ce(),r=k(),i=Object.prototype,a=i.hasOwnProperty,o=i.propertyIsEnumerable;t.exports=n(function(){return arguments}())?n:function(e){return r(e)&&a.call(e,`callee`)&&!o.call(e,`callee`)}})),Te=o(((e,t)=>{function n(){return!1}t.exports=n})),Ee=o(((e,t)=>{var n=C(),r=Te(),i=typeof e==`object`&&e&&!e.nodeType&&e,a=i&&typeof t==`object`&&t&&!t.nodeType&&t,o=a&&a.exports===i?n.Buffer:void 0;t.exports=(o?o.isBuffer:void 0)||r})),De=o(((e,t)=>{var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;function i(e,t){var i=typeof e;return t??=n,!!t&&(i==`number`||i!=`symbol`&&r.test(e))&&e>-1&&e%1==0&&e<t}t.exports=i})),Oe=o(((e,t)=>{var n=9007199254740991;function r(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=n}t.exports=r})),ke=o(((e,t)=>{var n=D(),r=Oe(),i=k(),a=`[object Arguments]`,o=`[object Array]`,s=`[object Boolean]`,c=`[object Date]`,l=`[object Error]`,u=`[object Function]`,d=`[object Map]`,f=`[object Number]`,p=`[object Object]`,m=`[object RegExp]`,h=`[object Set]`,g=`[object String]`,_=`[object WeakMap]`,v=`[object ArrayBuffer]`,y=`[object DataView]`,b=`[object Float32Array]`,x=`[object Float64Array
1]`,S=`[object Int8Array]`,C=`[object Int16Array]`,w=`[object Int32Array]`,T=`[object Uint8Array]`,E=`[object Uint8ClampedArray]`,O=`[object Uint16Array]`,A=`[object Uint32Array]`,j={};j[b]=j[x]=j[S]=j[C]=j[w]=j[T]=j[E]=j[O]=j[A]=!0,j[a]=j[o]=j[v]=j[s]=j[y]=j[c]=j[l]=j[u]=j[d]=j[f]=j[p]=j[m]=j[h]=j[g]=j[_]=!1;function M(e){return i(e)&&r(e.length)&&!!j[n(e)]}t.exports=M})),Ae=o(((e,t)=>{function n(e){return function(t){return e(t)}}t.exports=n})),je=o(((e,t)=>{var n=S(),r=typeof e==`object`&&e&&!e.nodeType&&e,i=r&&typeof t==`object`&&t&&!t.nodeType&&t,a=i&&i.exports===r&&n.process;t.exports=function(){try{return i&&i.require&&i.require(`util`).types||a&&a.binding&&a.binding(`util`)}catch{}}()})),Me=o(((e,t)=>{var n=ke(),r=Ae(),i=je(),a=i&&i.isTypedArray;t.exports=a?r(a):n})),Ne=o(((e,t)=>{var n=Se(),r=we(),i=O(),a=Ee(),o=De(),s=Me(),c=Object.prototype.hasOwnProperty;function l(e,t){var l=i(e),u=!l&&r(e),d=!l&&!u&&a(e),f=!l&&!u&&!d&&s(e),p=l||u||d||f,m=p?n(e.length,String):[],h=m.length;for(var g in e)(t||c.call(e,g))&&!(p&&(g==`length`||d&&(g==`offset`||g==`parent`)||f&&(g==`buffer`||g==`byteLength`||g==`byteOffset`)||o(g,h)))&&m.push(g);return m}t.exports=l})),Pe=o(((e,t)=>{var n=Object.prototype;function r(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||n)}t.exports=r})),Fe=o(((e,t)=>{function n(e,t){return function(n){return e(t(n))}}t.exports=n})),Ie=o(((e,t)=>{t.exports=Fe()(Object.keys,Object)})),Le=o(((e,t)=>{var n=Pe(),r=Ie(),i=Object.prototype.hasOwnProperty;function a(e){if(!n(e))return r(e);var t=[];for(var a in Object(e))i.call(e,a)&&a!=`constructor`&&t.push(a);return t}t.exports=a})),Re=o(((e,t)=>{var n=ne(),r=Oe();function i(e){return e!=null&&r(e.length)&&!n(e)}t.exports=i})),ze=o(((e,t)=>{var n=Ne(),r=Le(),i=Re();function a(e){return i(e)?n(e):r(e)}t.exports=a})),Be=o(((e,t)=>{var n=xe(),r=ze();function i(e,t){return e&&n(t,r(t),e)}t.exports=i})),Ve=o(((e,t)=>{function n(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}t.exports=n})),He=o(((e,t)=>{var n=j(),r=Pe(),i=Ve(),a=Object.prototype.hasOwnProperty;function o(e){if(!n(e))return i(e);var t=r(e),o=[];for(var s in e)s==`constructor`&&(t||!a.call(e,s))||o.push(s);return o}t.exports=o})),Ue=o(((e,t)=>{var n=Ne(),r=He(),i=Re();function a(e){return i(e)?n(e,!0):r(e)}t.exports=a})),We=o(((e,t)=>{var n=xe(),r=Ue();function i(e,t){return e&&n(t,r(t),e)}t.exports=i})),Ge=o(((e,t)=>{var n=C(),r=typeof e==`object`&&e&&!e.nodeType&&e,i=r&&typeof t==`object`&&t&&!t.nodeType&&t,a=i&&i.exports===r?n.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}t.exports=s})),Ke=o(((e,t)=>{function n(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}t.exports=n})),qe=o(((e,t)=>{function n(e,t){for(var n=-1,r=e==null?0:e.length,i=0,a=[];++n<r;){var o=e[n];t(o,n,e)&&(a[i++]=o)}return a}t.exports=n})),Je=o(((e,t)=>{function n(){return[]}t.exports=n})),Ye=o(((e,t)=>{var n=qe(),r=Je(),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols;t.exports=a?function(e){return e==null?[]:(e=Object(e),n(a(e),function(t){return i.call(e,t)}))}:r})),Xe=o(((e,t)=>{var n=xe(),r=Ye();function i(e,t){return n(e,r(e),t)}t.exports=i})),Ze=o(((e,t)=>{function n(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}t.exports=n})),Qe=o(((e,t)=>{t.exports=Fe()(Object.getPrototypeOf,Object)})),Q=o(((e,t)=>{var n=Ze(),r=Qe(),i=Ye(),a=Je();t.exports=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)n(t,i(e)),e=r(e);return t}:a})),$e=o(((e,t)=>{var n=xe(),r=Q();function i(e,t){return n(e,r(e),t)}t.exports=i})),et=o(((e,t)=>{var n=Ze(),r=O();function i(e,t,i){var a=t(e);return r(e)?a:n(a,i(e))}t.exports=i})),tt=o(((e,t)=>{var n=et(),r=Ye(),i=ze();function a(e){return n(e,i,r)}t.exports=a})),nt=o(((e,t)=>{var n=et(),r=Q(),i=Ue();function a(e){return n(e,i,r)}t.exports=a})),rt=o(((e,t)=>{t.exports=W()(C(),`DataView`)})),it=o(((e,t)=>{t.exports=W()(C(),`Promise`)})),at=o(((e,t)=>{t.exports=W()(C(),`Set`)})),ot=o(((e,t)=>{t.exports=W()(C(),`WeakMap`)})),st=o(((e,t)=>{var n=rt(),r=G(),i=it(),a=at(),o=ot(),s=D(),c=U(),l=`[object Map]`,u=`[object Object]`,d=`[object Promise]`,f=`[object Set]`,p=`[object WeakMap]`,m=`[object DataView]`,h=c(n),g=c(r),_=c(i),v=c(a),y=c(o),b=s;
vendor: 2,000 bytes, line 1
1(n&&b(new n(new ArrayBuffer(1)))!=m||r&&b(new r)!=l||i&&b(i.resolve())!=d||a&&b(new a)!=f||o&&b(new o)!=p)&&(b=function(e){var t=s(e),n=t==u?e.constructor:void 0,r=n?c(n):``;if(r)switch(r){case h:return m;case g:return l;case _:return d;case v:return f;case y:return p}return t}),t.exports=b})),ct=o(((e,t)=>{var n=Object.prototype.hasOwnProperty;function r(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]==`string`&&n.call(e,`index`)&&(r.index=e.index,r.input=e.input),r}t.exports=r})),lt=o(((e,t)=>{t.exports=C().Uint8Array})),ut=o(((e,t)=>{var n=lt();function r(e){var t=new e.constructor(e.byteLength);return new n(t).set(new n(e)),t}t.exports=r})),dt=o(((e,t)=>{var n=ut();function r(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}t.exports=r})),ft=o(((e,t)=>{var n=/\w*$/;function r(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}t.exports=r})),pt=o(((e,t)=>{var n=w(),r=n?n.prototype:void 0,i=r?r.valueOf:void 0;function a(e){return i?Object(i.call(e)):{}}t.exports=a})),mt=o(((e,t)=>{var n=ut();function r(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}t.exports=r})),ht=o(((e,t)=>{var n=ut(),r=dt(),i=ft(),a=pt(),o=mt(),s=`[object Boolean]`,c=`[object Date]`,l=`[object Map]`,u=`[object Number]`,d=`[object RegExp]`,f=`[object Set]`,p=`[object String]`,m=`[object Symbol]`,h=`[object ArrayBuffer]`,g=`[object DataView]`,_=`[object Float32Array]`,v=`[object Float64Array]`,y=`[object Int8Array]`,b=`[object Int16Array]`,x=`[object Int32Array]`,S=`[object Uint8Array]`,C=`[object Uint8ClampedArray]`,w=`[object Uint16Array]`,T=`[object Uint32Array]`;function E(e,t,E){var D=e.constructor;switch(t){case h:return n(e);case s:case c:return new D(+e);case g:return r(e,E);case _:case v:case y:case b:case x:case S:case C:case w:case T:return o(e,E);case l:return new D;case u:case p:return new D(e);case d:return i(e);case f:return new D;case m:return a(e)}}t.exports=E}
1)),gt=o(((e,t)=>{var n=j(),r=Object.create;t.exports=function(){function e(){}return function(t){if(!n(t))return{};if(r)return r(t);e.prototype=t;var i=new e;return e.prototype=void 0,i}}()})),$=o(((e,t)=>{var n=gt(),r=Qe(),i=Pe();function a(e){return typeof e.constructor==`function`&&!i(e)?n(r(e)):{}}t.exports=a})),_t=o(((e,t)=>{var n=st(),r=k(),i=`[object Map]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),vt=o(((e,t)=>{var n=_t(),r=Ae(),i=je(),a=i&&i.isMap;t.exports=a?r(a):n})),yt=o(((e,t)=>{var n=st(),r=k(),i=`[object Set]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),bt=o(((e,t)=>{var n=yt(),r=Ae(),i=je(),a=i&&i.isSet;t.exports=a?r(a):n})),xt=o(((e,t)=>{var n=ge(),r=_e(),i=be(),a=Be(),o=We(),s=Ge(),c=Ke(),l=Xe(),u=$e(),d=tt(),f=nt(),p=st(),m=ct(),h=ht(),g=$(),_=O(),v=Ee(),y=vt(),b=j(),x=bt(),S=ze(),C=Ue(),w=1,T=2,E=4,D=`[object Arguments]`,k=`[object Array]`,A=`[object Boolean]`,M=`[object Date]`,N=`[object Error]`,P=`[object Function]`,F=`[object GeneratorFunction]`,I=`[object Map]`,L=`[object Number]`,R=`[object Object]`,ee=`[object RegExp]`,z=`[object Set]`,B=`[object String]`,te=`[object Symbol]`,V=`[object WeakMap]`,ne=`[object ArrayBuffer]`,H=`[object DataView]`,re=`[object Float32Array]`,U=`[object Float64Array]`,ie=`[object Int8Array]`,ae=`[object Int16Array]`,W=`[object Int32Array]`,G=`[object Uint8Array]`,K=`[object Uint8ClampedArray]`,q=`[object Uint16Array]`,oe=`[object Uint32Array]`,J={};J[D]=J[k]=J[ne]=J[H]=J[A]=J[M]=J[re]=J[U]=J[ie]=J[ae]=J[W]=J[I]=J[L]=J[R]=J[ee]=J[z]=J[B]=J[te]=J[G]=J[K]=J[q]=J[oe]=!0,J[N]=J[P]=J[V]=!1;function se(e,t,O,k,A,j){var M,N=t&w,I=t&T,L=t&E;if(O&&(M=A?O(e,k,A,j):O(e)),M!==void 0)return M;if(!b(e))return e;var ee=_(e);if(ee){if(M=m(e),!N)return c(e,M)}else{var z=p(e),B=z==P||z==F;if(v(e))return s(e,N);if(z==R||z==D||B&&!A){if(M=I||B?{}:g(e),!N)return I?u(e,o(M,e)):l(e,a(M,e))}else{if(!J[z])return A?e:{};M=h(e,z,N)}}j||=new n;var te=j.get(e);if(te)return te;j.set(e,M),x(e)?e.forEach(function(n){M.add(se(n,t,O,n,e,j))}):y(e)&&e.forEach(function(n,r){M.set(r,se(n,t,O,r,e,j))});var V=ee?void 0:(L?I?f:d:I?C:S)(e);return r(V||e,function(n,r){V&&(r=n,n=e[r]),i(M,r,se(n,t,O,r,e,j))}),M}t.exports=se})),St=o(((e,t)=>{var n=xt(),r=1,i=4;function a(e){return n(e,r|i)}t.exports=a})),Ct=l(A()),wt=l(j()),Tt=l(St()),Et=class e{static isJsonStr(e){if((0,Ct.default)(e))try{return!!(0,wt.default)(JSON.parse(e))}catch{return!1}return!1}static parse(e){let t={};try{t=JSON.parse(e||`{}`)}catch{console.error(`JSON.parse Error:`,e)}return t||{}}static stringify(e){let t=``;try{t=JSON.stringify(e||{})}catch{console.error(`JSON.stringify error:`,e)}return t||`{}`}static getParseValue(t){try{return t&&(0,Ct.default)(t)?e.parse(t):t}catch{return console.info(`JSON parse error`,t),t}}static parseObj(t,n){let r=(0,Tt.default)(t);return n.forEach((n=>{if(Object.keys(t).includes(n))try{r[n]=e.parse(t[n]),console.log(n,r[n])}catch(e){console.error(`Failed to parse JSON for key "${n}":`,e)}})),r}static stringifyObj(t,n){let r=(0,Tt.default)(t);return n.forEach((n=>{Object.keys(t).includes(n)&&(r[n]=e.stringify(t[n]))})),r}},Dt=o(((e,t)=>{var n=Le(),r=st(),i=we(),a=O(),o=Re(),s=Ee(),c=Pe(),l=Me(),u=`[object Map]`,d=`[object Set]`,f=Object.prototype.hasOwnProperty;function p(e){if(e==null)return!0;if(o(e)&&(a(e)||typeof e==`string`||typeof e.splice==`function`||s(e)||l(e)||i(e)))return!e.length;var t=r(e);if(t==u||t==d)return!e.size;if(c(e))return!n(e).length;for(var p in e)if(f.call(e,p))return!1;return!0}t.exports=p})),Ot=o(((e,t)=>{function n(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}t.exports=n})),kt=o(((e,t)=>{var n=D(),r=k(),i=`[object Symbol]`;function a(e){return typeof e==`symbol`||r(e)&&n(e)==i}t.exports=a})),At=o(((e,t)=>{var n=O(),r=kt(),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;function o(e,t){if(n(e))return!1;var o=typeof e;return o==`number`||o==`symbol`||o==`boolean`||e==null||r(e)?!0:a.test(e)||!i.test(e)||t!=null&&e in Object(t)}t.exports=o})),jt=o(((e,t)=>{var n=me(),r=`Expected a function`;function i(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(r);var a=function(){var n=arguments,r=t?t.apply(this,n):n[0],i=a.cache;if(i.has(r))return i.get(r);var o=e.apply(this,n);return a.cache=i.set(r,o)||i,o};return a.cache=new(i.Cache||n),a}
vendor: 5,839 bytes, line 1
1i.Cache=n,t.exports=i})),Mt=o(((e,t)=>{var n=jt(),r=500;function i(e){var t=n(e,function(e){return i.size===r&&i.clear(),e}),i=t.cache;return t}t.exports=i})),Nt=o(((e,t)=>{var n=Mt(),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g;t.exports=n(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(r,function(e,n,r,a){t.push(r?a.replace(i,`$1`):n||e)}),t})})),Pt=o(((e,t)=>{var n=w(),r=Ot(),i=O(),a=kt(),o=1/0,s=n?n.prototype:void 0,c=s?s.toString:void 0;function l(e){if(typeof e==`string`)return e;if(i(e))return r(e,l)+``;if(a(e))return c?c.call(e):``;var t=e+``;return t==`0`&&1/e==-o?`-0`:t}t.exports=l})),Ft=o(((e,t)=>{var n=Pt();function r(e){return e==null?``:n(e)}t.exports=r})),It=o(((e,t)=>{var n=O(),r=At(),i=Nt(),a=Ft();function o(e,t){return n(e)?e:r(e,t)?[e]:i(a(e))}t.exports=o})),Lt=o(((e,t)=>{function n(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}t.exports=n})),Rt=o(((e,t)=>{var n=kt(),r=1/0;function i(e){if(typeof e==`string`||n(e))return e;var t=e+``;return t==`0`&&1/e==-r?`-0`:t}t.exports=i})),zt=o(((e,t)=>{var n=It(),r=Rt();function i(e,t){t=n(t,e);for(var i=0,a=t.length;e!=null&&i<a;)e=e[r(t[i++])];return i&&i==a?e:void 0}t.exports=i})),Bt=o(((e,t)=>{function n(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++r<i;)a[r]=e[r+t];return a}t.exports=n})),Vt=o(((e,t)=>{var n=zt(),r=Bt();function i(e,t){return t.length<2?e:n(e,r(t,0,-1))}t.exports=i})),Ht=o(((e,t)=>{var n=It(),r=Lt(),i=Vt(),a=Rt(),o=Object.prototype.hasOwnProperty;function s(e,t){t=n(t,e);var s=-1,c=t.length;if(!c)return!0;for(;++s<c;){var l=a(t[s]);if(l===`__proto__`&&!o.call(e,`__proto__`)||(l===`constructor`||l===`prototype`)&&s<c-1)return!1}var u=i(e,t);return u==null||delete u[a(r(t))]}t.exports=s})),Ut=o(((e,t)=>{var n=D(),r=Qe(),i=k(),a=`[object Object]`,o=Function.prototype,s=Object.prototype,c=o.toString,l=s.hasOwnProperty,u=c.call(Object);function d(e){if(!i(e)||n(e)!=a)return!1;var t=r(e);if(t===null)return!0;var o=l.call(t,`constructor`)&&t.constructor;return typeof o==`function`&&o instanceof o&&c.call(o)==u}t.exports=d})),Wt=o(((e,t)=>{var n=Ut();function r(e){return n(e)?void 0:e}t.exports=r})),Gt=o(((e,t)=>{var n=w(),r=we(),i=O(),a=n?n.isConcatSpreadable:void 0;function o(e){return i(e)||r(e)||!!(a&&e&&e[a])}t.exports=o})),Kt=o(((e,t)=>{var n=Ze(),r=Gt();function i(e,t,a,o,s){var c=-1,l=e.length;for(a||=r,s||=[];++c<l;){var u=e[c];t>0&&a(u)?t>1?i(u,t-1,a,o,s):n(s,u):o||(s[s.length]=u)}return s}t.exports=i})),qt=o(((e,t)=>{var n=Kt();function r(e){return e!=null&&e.length?n(e,1):[]}t.exports=r})),Jt=o(((e,t)=>{function n(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}t.exports=n})),Yt=o(((e,t)=>{var n=Jt(),r=Math.max;function i(e,t,i){return t=r(t===void 0?e.length-1:t,0),function(){for(var a=arguments,o=-1,s=r(a.length-t,0),c=Array(s);++o<s;)c[o]=a[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=a[o];return l[t]=i(c),n(e,this,l)}}t.exports=i})),Xt=o(((e,t)=>{function n(e){return function(){return e}}t.exports=n})),Zt=o(((e,t)=>{function n(e){return e}t.exports=n})),Qt=o(((e,t)=>{var n=Xt(),r=ve(),i=Zt();t.exports=r?function(e,t){return r(e,`toString`,{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:i})),$t=o(((e,t)=>{var n=800,r=16,i=Date.now;function a(e){var t=0,a=0;return function(){var o=i(),s=r-(o-a);if(a=o,s>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}t.exports=a})),en=o(((e,t)=>{var n=Qt();t.exports=$t()(n)})),tn=o(((e,t)=>{var n=qt(),r=Yt(),i=en();function a(e){return i(r(e,void 0,n),e+``)}t.exports=a})),nn=o(((e,t)=>{var n=Ot(),r=xt(),i=Ht(),a=It(),o=xe(),s=Wt(),c=tn(),l=nt(),u=1,d=2,f=4;t.exports=c(function(e,t){var c={};if(e==null)return c;var p=!1;t=n(t,function(t){return t=a(t,e),p||=t.length>1,t}),o(e,l(e),c),p&&(c=r(c,u|d|f,s));for(var m=t.length;m--;)i(c,t[m]);return c})})),rn=o(((e,t)=>{var n=be(),r=It(),i=De(),a=j(),o=Rt();function s(e,t,s,c){if(!a(e))return e;t=r(t,e);for(var l=-1,u=t.length,d=u-1,f=e;f!=null&&++l<u;){var p=o(t[l]),m=s;if(p===`__proto__`||p===`constructor`||p===`prototype`)return e;if(l!=d){var h=f[p];m=c?c(h,p,f):void 0,m===void 0&&(m=a(h)?h:i(t[l+1])?[]:{})}n(f,p,m),f=f[p]}return e}t.exports=s})),an=o(((e,t)=>{var n=zt(),r=rn(),i=It();function a(e,t,a){for(var o=-1,s=t.length,c={};++o<s;){var l=t[o],u=n(e,l);a(u,l)&&r(c,i(l,e),u)}return c}t.exports=a})),on=o(((e,t)=>{function n(e,t){return e!=null&&t in Object(e)}t.exports=n})),sn=o(((e,t)=>{var n=It(),r=we(),i=O(),a=De(),o=Oe(),s=Rt();function c(e,t,c){t=n(t,e);for(var l=-1,u=t.length,d=!1;++l<u;){var f=s(t[l]);if(!(d=e!=null&&c(e,f)))break;e=e[f]}return d||++l!=u?d:(u=e==null?0:e.length,!!u&&o(u)&&a(f,u)&&(i(e)||r(e)))}t.exports=c})),cn=o(((e,t)=>{var n=on(),r=sn();function i(e,t){return e!=null&&r(e,t,n)}t.exports=i})),ln=o(((e,t)=>{var n=an(),r=cn();function i(e,t){return n(e,t,function(t,n){return r(e,n)})}t.exports=i})),un=o(((e,t)=>{var n=ln();t.exports=tn()(function(e,t){return e==null?{}:n(e,t)})})),dn,fn=new Uint8Array(16);function pn(){if(!dn&&(dn=typeof crypto<`u`&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!dn))throw Error(`crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported`);return dn(fn)}var mn=[];for(let e=0;e<256;++e)mn.push((e+256).toString(16).slice(1));function hn(e,t=0){return mn[e[t+0]]+mn[e[t+1]]+mn[e[t+2]]+mn[e[t+3]]+`-`+mn[e[t+4]]+mn[e[t+5]]+`-`+mn[e[t+6]]+mn[e[t+7]]+`-`+mn[e[t+8]]+mn[e[t+9]]+`-`+mn[e[t+10]]+mn[e[t+11]]+mn[e[t+12]]+mn[e[t+13]]+mn[e[t+14]]+mn[e[t+15]]}var gn={randomUUID:typeof crypto<`u`&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};
1function _n(e,t,n){if(gn.randomUUID&&!t&&!e)return gn.randomUUID();e||={};let r=e.random||(e.rng||pn)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){n||=0;for(let e=0;e<16;++e)t[n+e]=r[e];return t}return hn(r)}var vn=l(Dt()),yn=l(nn()),bn=l(un()),xn,Sn,Cn=[`projectId`,`characterConfigId`,`configVersion`,`selectors`,`figureName`,`reConnect`];(function(e){e.DH_LIB_INIT=`DH_LIB_INIT`,e.DH_LIB_WS_SUCCESS=`DH_LIB_WS_SUCCESS`,e.DH_LIB_OPEN=`DH_LIB_OPEN`,e.DH_LIB_STATUS=`DH_LIB_STATUS`,e.DH_LIB_CLOSE=`DH_LIB_CLOSE`,e.DH_LIB_ERROR=`DH_LIB_ERROR`,e.DH_LIB_WARNING=`DH_LIB_WARNING`,e.DH_LIB_FULL_STATUS=`DH_LIB_FULL_STATUS`,e.DH_LIB_MESSAGE=`DH_LIB_MESSAGE`})(xn||={}),function(e){e.CONNECT_ERROR=`CONNECT_ERROR`,e.DISCONNECT_ALERT=`DISCONNECT_ALERT`,e.TIMEOUT_EXIT=`TIMEOUT_EXIT`,e.LOCAL_VIDEO_MUTED=`LOCAL_VIDEO_MUTED`,e.LOCAL_VIDEO_ERROR=`LOCAL_VIDEO_ERROR`,e.RTC_ERROR=`RTC_ERROR`}(Sn||={});var wn={"-1":`UNINSTANTIATED`,0:`CONNECTING`,1:`OPEN`,2:`CLOSING`,3:`CLOSED`},Tn=o(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?r(e):typeof define==`function`&&define.amd?define([`exports`],r):(n=typeof globalThis<`u`?globalThis:n||self,r(n.fastUniqueNumbers={}))})(e,(function(e){"use strict";var t=function(e){return function(t){var n=e(t);return t.add(n),n}},n=function(e){return function(t,n){return e.set(t,n),n}},r=2**53-1,i=536870912,a=i*2,o=function(e,t){return function(n){var o=t.get(n),s=o===void 0?n.size:o<a?o+1:0;if(!n.has(s))return e(n,s);if(n.size<i){for(;n.has(s);)s=Math.floor(Math.random()*a);return e(n,s)}if(n.size>r)throw Error(`Congratulations, you created a collection of unique numbers which uses all available integers!`);for(;n.has(s);)s=Math.floor(Math.random()*r);return e(n,s)}},s=new WeakMap,c=o(n(s),s);e.addUniqueNumber=t(c),e.generateUniqueNumber=c}))}))(),En=e=>e.method!==void 0&&e.method===`call`,Dn=e=>e.error===null&&typeof e.id==`number`,On=((e,t)=>{let n=null;return()=>{if(n!==null)return n;let r=new Blob([t],{type:`application/javascript; charset=utf-8`}),i=URL.createObjectURL(r);return n=e(i),setTimeout(()=>URL.revokeObjectURL(i)),n}})(e=>{let t=new Map([[0,()=>{}]]),n=new Map([[0,()=>{}]]),r=new Map,i=new Worker(e);return i.addEventListener(`message`,({data:e})=>{if(En(e)){let{params:{timerId:i,timerType:a}}=e;if(a===`interval`){let e=t.get(i);if(typeof e==`number`){let t=r.get(e);if(t===void 0||t.timerId!==i||t.timerType!==a)throw Error(`The timer is in an undefined state.`)}else if(e!==void 0)e();else throw Error(`The timer is in an undefined state.`)}else if(a===`timeout`){let e=n.get(i);if(typeof e==`number`){let t=r.get(e);if(t===void 0||t.timerId!==i||t.timerType!==a)throw Error(`The timer is in an undefined state.`)}else if(e!==void 0)e(),n.delete(i);else throw Error(`The timer is in an undefined state.`)}}else if(Dn(e)){let{id:i}=e,a=r.get(i);if(a===void 0)throw Error(`The timer is in an undefined state.`);let{timerId:o,timerType:s}=a;r.delete(i),s===`interval`?t.delete(o):n.delete(o)}else{let{error:{message:t}}=e;throw Error(t)}}),{clearInterval:e=>{let n=(0,Tn.generateUniqueNumber)(r);r.set(n,{timerId:e,timerType:`interval`}),t.set(e,n),i.postMessage({id:n,method:`clear`,params:{timerId:e,timerType:`interval`}})},clearTimeout:e=>{let t=(0,Tn.generateUniqueNumber)(r);r.set(t,{timerId:e,timerType:`timeout`}),n.set(e,t),i.postMessage({id:t,method:`clear`,params:{timerId:e,timerType:`timeout`}})},setInterval:(e,n=0)=>{let r=(0,Tn.generateUniqueNumber)(t);return t.set(r,()=>{e(),typeof t.get(r)==`function`&&i.postMessage({id:null,method:`set`,params:{delay:n,now:performance.now(),timerId:r,timerType:`interval`}})}),i.postMessage({id:null,method:`set`,params:{delay:n,now:performance.now(),timerId:r,timerType:`interval`}}),r},setTimeout:(e,t=0)=>{let r=(0,Tn.generateUniqueNumber)(n);return n.set(r,e),i.postMessage({id:null,method:`set`,params:{delay:t,now:performance.now(),timerId:r,timerType:`timeout`}}),r}}},`(()=>{"use strict";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:"call",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener("message",(i=>{let{data:s}=i;try{if("clear"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;
1if("interval"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id "'.concat(t,'".'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if("timeout"!==i)throw new Error('The given type "'.concat(i,'" is not supported'));(e=>{const r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id "'.concat(e,'".'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if("set"!==s.method)throw new Error('The given method "'.concat(s.method,'" is not supported'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if("interval"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,"interval"))})(i,a,n);else{if("timeout"!==d)throw new Error('The given type "'.concat(d,'" is not supported'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,"timeout"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();`),kn=e=>On().clearTimeout(e),An=(...e)=>On().setTimeout(...e),jn,Mn;(function(e){e[e.UNINSTANTIATED=-1]=`UNINSTANTIATED`,e[e.CONNECTING=0]=`CONNECTING`,e[e.OPEN=1]=`OPEN`,e[e.CLOSING=2]=`CLOSING`,e[e.CLOSED=3]=`CLOSED`})(jn||={}),function(e){e[e.CLOSE_INTERRUPT_WITH_NEW_URL=4e3]=`CLOSE_INTERRUPT_WITH_NEW_URL`}(Mn||={});function Nn(){return _n()}var Pn=5e3;function Fn(e,t={}){let n=e,r=0,i=0,a=0,o=!1,s=t?.reopenDelay??5e3,c=!0,l=!1,u=0,d=null,f=null,p=0,m=new Set,h=new Set,g=new Set;function _(){a&&=(kn(a),0)}function v(){i&&=(kn(i),0)}function y(){u&&=(kn(u),0)}function b(){o=!1,r=0,c=!0,s=t?.reopenDelay??5e3}function x(e){let{reopen:n=!0,reopenAttempts:i=10,reopenDelayIncrease:l,onReopenAttemptEnd:u}=t;if(r>=i||!n)return b(),c&&v(),void(typeof u==`function`&&u(c));s=typeof l==`function`?l({reopenCount:r,preDelay:s,isServerClosed:c}):s,_(),a=An((()=>{o=!0,e.open(),r++}),s)}function S(){d=null,f=null,p=0}let C={socket:null,messages:[],get readyState(){return this.socket?this.socket.readyState:jn.UNINSTANTIATED},get isOpened(){return jn.OPEN===this.readyState},get isActive(){return jn.CONNECTING===this.readyState||jn.OPEN===this.readyState},open(){if(this.isActive)return this;a&&!o&&_();let e=this.socket=new WebSocket(n,t?.protocols);return this._dispchReadyStateChangeEvent(),e.addEventListener(`open`,this._dispchReadyStateChangeEvent),e.addEventListener(`close`,this._dispchReadyStateChangeEvent),e.addEventListener(`error`,this._dispchReadyStateChangeEvent),e.onopen=n=>{let{onOpen:r,onMessage:a,combine:s,reopenDelay:l=Pn}=t;o&&(c?(v(),i=An(b,l>1e3?l+100:1e3)):b()),r&&r(n),e.onmessage=e=>{a&&a(e);let n=this.deserialization(e.data),r=typeof n==`object`&&!!n,i=t.checkHeartbeatMismatch&&t.keepAlive===`heartbeat`,o=t.keepAliveMismatchField??`requestId`,c=r&&n.action===`HEART_BEAT`&&o in n;i&&c&&(f=n[o]),s&&m.forEach((e=>{s(e.requestData,n)&&(e.then?(e.then(n),m.delete(e)):e.on?e.on(n):e.responseData=n)})),h.forEach((e=>e(n)))},this.messages.flush(),t.checkHeartbeatMismatch&&S(),this._ping()},e.onerror=e=>{t.onError&&t.onError(e),c=!1,x(this)},e.onclose=n=>{n.isInterruptWithNewUrl=l,l=!1,y(),t.checkHeartbeatMismatch&&S();let{reopenWhenServerClosed:r=!0,onClose:i,onServerClose:a}=t;c&&a&&a(n),i&&i(n),this._dispose(e),c&&r&&x(this)},this},openWithNewUrl(e){return e&&this.isActive&&e===n?this:(n=e||n,jn.CONNECTING===this.readyState?(this._dispose(),this.socket?.close()):this.isActive&&this.close(Mn.CLOSE_INTERRUPT_WITH_NEW_URL,`interrupt by new url`),this.open())},close(e=1e3,t){return this.socket?new Promise((n=>{c=!1,Mn.CLOSE_INTERRUPT_WITH_NEW_URL===e&&(l=!0);let r=()=>{this.socket?.removeEventListener(`close`,r),this._dispose(this.socket),n()};this.socket?.addEventListener(`close`,r),this.socket?.close(e,t),this._dispchReadyStateChangeEvent()})):Promise.resolve()},destroy(){c=!1,o=!1,_(),v(),y();let e=this.socket;this._dispose(e),!e||e.readyState!==jn.CONNECTING&&e.readyState!==jn.OPEN||e.close()},connect(){return this.open()},disconnect(e,t){return this.close(e,t)},send(e){let{socket:t}=this;if(!t)return this;if(jn.CONNECTING===t.readyState)return this.messages.push(e),this;e instanceof Function&&(e=e(Nn()));let n=this.serialization(e);return t.send(n),this},request(e){if(!t?.combine)throw Error(`Request failed! unconfigured combine, this configuration is required to use the request api.`);e instanceof Function&&(e=e(Nn())),this.send(e);let n={requestData:e,responseData:null};return m.add(n),{then(e){if(n.on&&console.warn(`You have already registered for the "on" callback.`),n.responseData){let t=e(n.responseData);return t instanceof Promise?t:Promise.resolve(t)}return new Promise((e=>{n.then=t=>e(t)})).then((t=>e(t)))},on(e,t=!0){n.then&&console.warn(`You have already registered for the "then" callback.`),n.on=t=>{e(t,(()=>{m.delete(n)}))},n.responseData&&t&&n.on(n.responseData)}}},receive(){return new Promise((e=>{let t=this.onReceive((n=>{t(),e(n)}))}))},onReceive:e=>(h.add(e),()=>{h.delete(e)}),onMessage(e){return this.onReceive(e)},_dispchReadyStateChangeEvent(){g.forEach((e=>e(this.readyState)))},_dispose(e){(e??=this.socket)&&(e.removeEventListener(`open`,this._dispchReadyStateChangeEvent),e.removeEventListener(`close`,this._dispchReadyStateChangeEvent),e.removeEventListener(`error`,this._dispchReadyStateChangeEvent),e.onopen=null,e.onclose=null,e.onerror=null)},_ping(){let{keepAlive:e=`none`}=t;u&&kn(u),e!==`none`&&this.isOpened&&(u=An((()=>
1{if(!this.isOpened)return;let n=t?.getKeepAliveMessage?t?.getKeepAliveMessage(Nn()):{requestId:Nn(),action:e===`heartbeat`?`HEART_BEAT`:`PING`};if(t.keepAlive===`heartbeat`){if(t.checkHeartbeatMismatch){let e=t.keepAliveMismatchField??`requestId`,r=t.keepAliveMismatchMaxCount??3;if(n&&typeof n==`object`&&e in n){if(d!==null&&d!==f){if(p++,p>r)return void function(e){S(),c=!0,e.socket?.close(1e3,`keep alive mismatch`)}(this)}else p=0;d=n[e]}}this.send(n),this._ping()}else this.request(n).then((()=>{this._ping()})).catch((e=>{console.error(e)}))}),t?.keepAliveDelay||3e3))},onReadyStateChange:e=>(g.add(e),()=>{g.delete(e)}),serialization:e=>Object.prototype.toString.call(e)===`[object Object]`||Array.isArray(e)||typeof e==`number`?JSON.stringify(e):e,deserialization(e){if(typeof e==`string`){let t=e;try{t=JSON.parse(e)}catch{t=e}return t}return e}};return C.messages.flush=function(){let e=[...this];if(this.length=0,e.length)for(let t of e)C.send(t)},C}var In=l(o(((e,t)=>{var n=zt();function r(e,t,r){var i=e==null?void 0:n(e,t);return i===void 0?r:i}t.exports=r}))()),Ln=function(e){function t(e){var n,r=this;g(this,t),y(this,`dhServerSocket`,null),y(this,`preConnectSuccess`,!1),y(this,`connectParams`,null),y(this,`socketClosingPromise`,null),y(this,`url`,void 0),y(this,`firstConnect`,!0),y(this,`sendPreConnect`,(function(e,t){var n,i=e.token,a=e.sessionId,o=e.onConnect;(n=r.dhServerSocket)==null||n.request({action:`RE_CONNECT`,requestId:_n(),body:JSON.stringify({token:i,sessionId:a})}).on((function(e,n){o?.(e),e.code!==0&&(n(),r.handleConnect()),t?.(r.dhServerSocket)})),r.firstConnect=!1})),y(this,`createSocket`,(function(e,t){return(n||=h(f().mark((function e(t,n){var i,a;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r.connectParams=t,i=t.sessionId,a=t.onDigitalHumanCallback,!r.socketClosingPromise){e.next=5;break}return e.next=5,r.socketClosingPromise;case 5:if(!r.dhServerSocket){e.next=8;break}return e.next=8,r.closeSocket();case 8:return e.abrupt(`return`,new Promise((function(e,o){var s={keepAlive:`heartbeat`,reopen:(0,In.default)(r.connectParams,`reConnect`,!0),combine:function(e,t){return e&&t&&e.requestId===t.requestId},onOpen:function(){r.dhServerSocket=c,i&&r.firstConnect?r.sendPreConnect(t,e):n&&r.firstConnect||r.handleConnect()},onClose:function(){r.dhServerSocket=null,r.socketClosingPromise=null},onError:function(e){o(e)}},c=Fn(r.url,s);c.onReadyStateChange((function(e){e===0&&a&&a({status:xn.DH_LIB_INIT}),e===1&&n&&(r.preConnectSuccess=!0),e===3&&(r.preConnectSuccess=!1),a&&a({status:xn.DH_LIB_FULL_STATUS,content:{type:`wsState`,readyState:e,body:wn[e]}})})),c.onMessage((function(e){var t=e.action;[Sn.TIMEOUT_EXIT,Sn.DISCONNECT_ALERT].includes(t)&&a&&a({status:xn.DH_LIB_STATUS,content:{type:t}}),[Sn.TIMEOUT_EXIT,Sn.DISCONNECT_ALERT,`HEART_BEAT`,`CONNECT`].includes(t)||a&&a({status:xn.DH_LIB_MESSAGE,content:e})})),n&&(r.dhServerSocket=c),c.open()})));case 9:case`end`:return e.stop()}}),e)})))).apply(this,arguments)})),y(this,`closeSocket`,h(f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r.dhServerSocket){e.next=2;break}return e.abrupt(`return`);case 2:return r.socketClosingPromise=r.dhServerSocket.close(),e.next=5,r.socketClosingPromise;case 5:r.dhServerSocket=null;case 6:case`end`:return e.stop()}}),e)})))),y(this,`handleConnect`,h(f().mark((function e(){var t,n,i,a,o,s;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r.connectParams){e.next=2;break}return e.abrupt(`return`);case 2:if(t=r.connectParams,n=t.appId,i=t.appKey,a=t.token,o=t.parameters,s=t.onConnect,n||i||a){e.next=5;break}return e.abrupt(`return`);case 5:r.dhServerSocket&&r.dhServerSocket.request({action:`CONNECT`,clientTs:new Date().getTime(),requestId:_n(),body:JSON.stringify(d(d({token:a,appId:n,appKey:i},(0,bn.default)(r.connectParams,Cn)),{},{parameters:d(d({},(0,yn.default)(o,[`parameters`])),o&&o.parameters?o.parameters:{})}))}).on((function(e,t){s?.(e),e.code!==0&&t()}));case 6:case`end`:return e.stop()}}),e)})))),this.url=e}return v(t,[{key:`sendMessage`,value:function(t,n){return(e||=h(f().mark((function e(t,n){var r;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:try{this.dhServerSocket&&this.dhServerSocket&&this.dhServerSocket.request(t).on((function(e){n&&n(e)}))}catch(e){r=p(t)===`object`&&`requestId`in t?t.requestId:_n(),n&&n({code:-11,body:null,action:`RENDER_ERROR`,requestId:r,message:JSON.stringify(e)})}case 1:case`end`:return e.stop()}}),e,this)})))).apply(this,arguments)}}]),t}();o(((e,t)=>{typeof window!=`object`&&(window=global),(function(n){typeof e==`object`&&t!==void 0?(t.exports=n(),window.adapter=n()):typeof define==`function`&&define.amd?define([],n):(typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:this).adapter=n()})(function(){return function e(t,n,r){function i(o,s){if(!n[o]){if(!t[o]){var c=typeof require==`function`&&require;if(!s&&c)return c(o,!0);if(a)return a(o,!0);var l=Error(`Cannot find module '`+o+`'`);throw l.code=`MODULE_NOT_FOUND`,l}var u=n[o]={exports:{}};t[o][0].call(u.exports,function(e){return i(t[o][1][e]||e)},u,u.exports,e,t,n,r)}return n[o].exports}for(var a=typeof require==`function`&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){"use strict";
1t.exports=(0,e(`./adapter_factory.js`).adapterFactory)({window})},{"./adapter_factory.js":2}],2:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0}),n.adapterFactory=function(){var e=(0<arguments.length&&arguments[0]!==void 0?arguments[0]:{}).window,t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimEdge:!0,shimSafari:!0},n=r.log,l=r.detectBrowser(e),u={browserDetails:l,commonShim:c,extractVersion:r.extractVersion,disableLog:r.disableLog,disableWarnings:r.disableWarnings};switch(l.browser){case`chrome`:if(!i||!i.shimPeerConnection||!t.shimChrome)return n(`Chrome shim is not included in this adapter release.`),u;n(`adapter.js shimming chrome.`),(u.browserShim=i).shimGetUserMedia(e),i.shimMediaStream(e),i.shimPeerConnection(e),i.shimOnTrack(e),i.shimAddTrackRemoveTrack(e),i.shimGetSendersWithDtmf(e),i.shimGetStats(e),i.shimSenderReceiverGetStats(e),i.fixNegotiationNeeded(e),c.shimRTCIceCandidate(e),c.shimConnectionState(e),c.shimMaxMessageSize(e),c.shimSendThrowTypeError(e),c.removeAllowExtmapMixed(e);break;case`firefox`:if(!o||!o.shimPeerConnection||!t.shimFirefox)return n(`Firefox shim is not included in this adapter release.`),u;n(`adapter.js shimming firefox.`),(u.browserShim=o).shimGetUserMedia(e),o.shimPeerConnection(e),o.shimOnTrack(e),o.shimRemoveStream(e),o.shimSenderGetStats(e),o.shimReceiverGetStats(e),o.shimRTCDataChannel(e),o.shimAddTransceiver(e),o.shimCreateOffer(e),o.shimCreateAnswer(e),c.shimRTCIceCandidate(e),c.shimConnectionState(e),c.shimMaxMessageSize(e),c.shimSendThrowTypeError(e);break;case`edge`:if(!a||!a.shimPeerConnection||!t.shimEdge)return n(`MS edge shim is not included in this adapter release.`),u;n(`adapter.js shimming edge.`),(u.browserShim=a).shimGetUserMedia(e),a.shimGetDisplayMedia(e),a.shimPeerConnection(e),a.shimReplaceTrack(e),c.shimMaxMessageSize(e),c.shimSendThrowTypeError(e);break;case`safari`:if(!s||!t.shimSafari)return n(`Safari shim is not included in this adapter release.`),u;n(`adapter.js shimming safari.`),(u.browserShim=s).shimRTCIceServerUrls(e),s.shimCreateOfferLegacy(e),s.shimCallbacksAPI(e),s.shimLocalStreamsAPI(e),s.shimRemoteStreamsAPI(e),s.shimTrackEventTransceiver(e),s.shimGetUserMedia(e),c.shimRTCIceCandidate(e),c.shimMaxMessageSize(e),c.shimSendThrowTypeError(e),c.removeAllowExtmapMixed(e);break;default:n(`Unsupported browser!`)}return u};var r=l(e(`./utils`)),i=l(e(`./chrome/chrome_shim`)),a=l(e(`./edge/edge_shim`)),o=l(e(`./firefox/firefox_shim`)),s=l(e(`./safari/safari_shim`)),c=l(e(`./common_shim`));function l(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}},{"./chrome/chrome_shim":3,"./common_shim":6,"./edge/edge_shim":7,"./firefox/firefox_shim":11,"./safari/safari_shim":14,"./utils":15}],3:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0}),n.shimGetDisplayMedia=n.shimGetUserMedia=void 0;var r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},i=e(`./getusermedia`);Object.defineProperty(n,`shimGetUserMedia`,{enumerable:!0,get:function(){return i.shimGetUserMedia}});var a=e(`./getdisplaymedia`);Object.defineProperty(n,`shimGetDisplayMedia`,{enumerable:!0,get:function(){return a.shimGetDisplayMedia}}),n.shimMediaStream=function(e){e.MediaStream=e.MediaStream||e.webkitMediaStream},n.shimOnTrack=function(e){if((e===void 0?`undefined`:r(e))!==`object`||!e.RTCPeerConnection||`ontrack`in e.RTCPeerConnection.prototype)o.wrapPeerConnectionEvent(e,`track`,function(e){return e.transceiver||Object.defineProperty(e,`transceiver`,{value:{receiver:e.receiver}}),e});else{Object.defineProperty(e.RTCPeerConnection.prototype,`ontrack`,{get:function(){return this._ontrack},set:function(e){this._ontrack&&this.removeEventListener(`track`,this._ontrack),this.addEventListener(`track`,this._ontrack=e)},enumerable:!0,configurable:!0});var t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){var n=this;return this._ontrackpoly||(this._ontrackpoly=function(t){t.stream.addEventListener(`addtrack`,function(r){var i=void 0;i=e.RTCPeerConnection.prototype.getReceivers?n.getReceivers().find(function(e){return e.track&&e.track.id===r.track.id}):{track:r.track};var a=new Event(`track`);a.track=r.track,a.receiver=i,a.transceiver={receiver:i},a.streams=[t.stream],n.dispatchEvent(a)}
1),t.stream.getTracks().forEach(function(r){var i=void 0;i=e.RTCPeerConnection.prototype.getReceivers?n.getReceivers().find(function(e){return e.track&&e.track.id===r.id}):{track:r};var a=new Event(`track`);a.track=r,a.receiver=i,a.transceiver={receiver:i},a.streams=[t.stream],n.dispatchEvent(a)})},this.addEventListener(`addstream`,this._ontrackpoly)),t.apply(this,arguments)}}},n.shimGetSendersWithDtmf=function(e){if((e===void 0?`undefined`:r(e))===`object`&&e.RTCPeerConnection&&!(`getSenders`in e.RTCPeerConnection.prototype)&&`createDTMFSender`in e.RTCPeerConnection.prototype){var t=function(e,t){return{track:t,get dtmf(){return this._dtmf===void 0&&(t.kind===`audio`?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};var n=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,r){var i=n.apply(this,arguments);return i||(i=t(this,e),this._senders.push(i)),i};var i=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){i.apply(this,arguments);var t=this._senders.indexOf(e);t!==-1&&this._senders.splice(t,1)}}var a=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){var n=this;this._senders=this._senders||[],a.apply(this,[e]),e.getTracks().forEach(function(e){n._senders.push(t(n,e))})};var o=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){var t=this;this._senders=this._senders||[],o.apply(this,[e]),e.getTracks().forEach(function(e){var n=t._senders.find(function(t){return t.track===e});n&&t._senders.splice(t._senders.indexOf(n),1)})}}else if((e===void 0?`undefined`:r(e))===`object`&&e.RTCPeerConnection&&`getSenders`in e.RTCPeerConnection.prototype&&`createDTMFSender`in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!(`dtmf`in e.RTCRtpSender.prototype)){var s=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){var e=this,t=s.apply(this,[]);return t.forEach(function(t){return t._pc=e}),t},Object.defineProperty(e.RTCRtpSender.prototype,`dtmf`,{get:function(){return this._dtmf===void 0&&(this.track.kind===`audio`?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}},n.shimGetStats=function(e){e.RTCPeerConnection},n.shimSenderReceiverGetStats=function(e){if((e===void 0?`undefined`:r(e))===`object`&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver){if(!(`getStats`in e.RTCRtpSender.prototype)){var t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){var e=this,n=t.apply(this,[]);return n.forEach(function(t){return t._pc=e}),n});var n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){var e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){var e=this;return this._pc.getStats().then(function(t){return o.filterStats(t,e.track,!0)})}}if(!(`getStats`in e.RTCRtpReceiver.prototype)){var i=e.RTCPeerConnection.prototype.getReceivers;i&&(e.RTCPeerConnection.prototype.getReceivers=function(){var e=this,t=i.apply(this,[]);return t.forEach(function(t){return t._pc=e}),t}),o.wrapPeerConnectionEvent(e,`track`,function(e){return e.receiver._pc=e.srcElement,e}),e.RTCRtpReceiver.prototype.getStats=function(){var e=this;return this._pc.getStats().then(function(t){return o.filterStats(t,e.track,!1)})}}if(`getStats`in e.RTCRtpSender.prototype&&`getStats`in e.RTCRtpReceiver.prototype){var a=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(t){if(0<arguments.length&&t instanceof e.MediaStreamTrack){var n=t,r=void 0,i=void 0,o=void 0;return this.getSenders().forEach(function(e){e.track===n&&(r?o=!0:r=e)}),this.getReceivers().forEach(function(e){return e.track===n&&(i?o=!0:i=e),e.track===n}),o||r&&i?Promise.reject(new DOMException(`There are more than one sender or receiver for the track.`,`InvalidAccessError`)):r?r.getStats():i?i.getStats():Promise.reject(new DOMException(`There is no sender or receiver for the track.`,`InvalidAccessError`))}return a.apply(this,arguments)}}}},n.shimAddTrackRemoveTrackWithNative=c,n.shimAddTrackRemoveTrack=function(e){if(!e.RTCPeerConnection)return;var t=o.detectBrowser(e);if(e.RTCPeerConnection.prototype.addTrack&&65<=t.version)return c(e);var n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){var e=this,t=n.apply(this);return this._reverseStreams=this._reverseStreams||{},t.map(function(t){return e._reverseStreams[t.id]})};var r=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){var n=this;if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{}
1,t.getTracks().forEach(function(e){if(n.getSenders().find(function(t){return t.track===e}))throw new DOMException(`Track already exists.`,`InvalidAccessError`)}),!this._reverseStreams[t.id]){var i=new e.MediaStream(t.getTracks());this._streams[t.id]=i,this._reverseStreams[i.id]=t,t=i}r.apply(this,[t])};var i=e.RTCPeerConnection.prototype.removeStream;function a(e,t){var n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(function(t){var r=e._reverseStreams[t],i=e._streams[r.id];n=n.replace(new RegExp(i.id,`g`),r.id)}),new RTCSessionDescription({type:t.type,sdp:n})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},i.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,n){var r=this;if(this.signalingState===`closed`)throw new DOMException(`The RTCPeerConnection's signalingState is 'closed'.`,`InvalidStateError`);var i=[].slice.call(arguments,1);if(i.length!==1||!i[0].getTracks().find(function(e){return e===t}))throw new DOMException(`The adapter.js addTrack polyfill only supports a single  stream which is associated with the specified track.`,`NotSupportedError`);if(this.getSenders().find(function(e){return e.track===t}))throw new DOMException(`Track already exists.`,`InvalidAccessError`);this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};var a=this._streams[n.id];if(a)a.addTrack(t),Promise.resolve().then(function(){r.dispatchEvent(new Event(`negotiationneeded`))});else{var o=new e.MediaStream([t]);this._streams[n.id]=o,this._reverseStreams[o.id]=n,this.addStream(o)}return this.getSenders().find(function(e){return e.track===t})},[`createOffer`,`createAnswer`].forEach(function(t){var n=e.RTCPeerConnection.prototype[t],r=s({},t,function(){var e=this,t=arguments;return arguments.length&&typeof arguments[0]==`function`?n.apply(this,[function(n){var r=a(e,n);t[0].apply(null,[r])},function(e){t[1]&&t[1].apply(null,e)},arguments[2]]):n.apply(this,arguments).then(function(t){return a(e,t)})});e.RTCPeerConnection.prototype[t]=r[t]});var l=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(e){return arguments.length&&e.type&&(e=function(e,t){var n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(function(t){var r=e._reverseStreams[t],i=e._streams[r.id];n=n.replace(new RegExp(r.id,`g`),i.id)}),new RTCSessionDescription({type:t.type,sdp:n})}(this,e)),l.apply(this,arguments)};var u=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,`localDescription`);Object.defineProperty(e.RTCPeerConnection.prototype,`localDescription`,{get:function(){var e=u.get.apply(this);return e.type===``?e:a(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){var t=this;if(this.signalingState===`closed`)throw new DOMException(`The RTCPeerConnection's signalingState is 'closed'.`,`InvalidStateError`);if(!e._pc)throw new DOMException(`Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.`,`TypeError`);if(e._pc!==this)throw new DOMException(`Sender was not created by this connection.`,`InvalidAccessError`);this._streams=this._streams||{};var n=void 0;Object.keys(this._streams).forEach(function(r){t._streams[r].getTracks().find(function(t){return e.track===t})&&(n=t._streams[r])}),n&&(n.getTracks().length===1?this.removeStream(this._reverseStreams[n.id]):n.removeTrack(e.track),this.dispatchEvent(new Event(`negotiationneeded`)))}},n.shimPeerConnection=function(e){var t=o.detectBrowser(e);if(!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection){t.version<53&&[`setLocalDescription`,`setRemoteDescription`,`addIceCandidate`].forEach(function(t){var n=e.RTCPeerConnection.prototype[t],r=s({},t,function(){return arguments[0]=new(t===`addIceCandidate`?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)});e.RTCPeerConnection.prototype[t]=r[t]});var n=e.RTCPeerConnection.prototype.addIceCandidate;e.RTCPeerConnection.prototype.addIceCandidate=function(e,r){return e?t.version<78&&e&&e.candidate===``?Promise.resolve():n.apply(this,arguments):(r&&r.apply(null),Promise.resolve())}}},n.fixNegotiationNeeded=function(e){o.wrapPeerConnectionEvent(e,`negotiationneeded`,function(e){if(e.target.signalingState===`stable`)return e})};
1var o=function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e(`../utils.js`));function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){var e=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(function(t){return e._shimmedLocalStreams[t][0]})};var t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){if(!n)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};var r=t.apply(this,arguments);return this._shimmedLocalStreams[n.id]?this._shimmedLocalStreams[n.id].indexOf(r)===-1&&this._shimmedLocalStreams[n.id].push(r):this._shimmedLocalStreams[n.id]=[n,r],r};var n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){var t=this;this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach(function(e){if(t.getSenders().find(function(t){return t.track===e}))throw new DOMException(`Track already exists.`,`InvalidAccessError`)});var r=this.getSenders();n.apply(this,arguments);var i=this.getSenders().filter(function(e){return r.indexOf(e)===-1});this._shimmedLocalStreams[e.id]=[e].concat(i)};var r=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],r.apply(this,arguments)};var i=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){var t=this;return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach(function(n){var r=t._shimmedLocalStreams[n].indexOf(e);r!==-1&&t._shimmedLocalStreams[n].splice(r,1),t._shimmedLocalStreams[n].length===1&&delete t._shimmedLocalStreams[n]}),i.apply(this,arguments)}}},{"../utils.js":15,"./getdisplaymedia":4,"./getusermedia":5}],4:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0}),n.shimGetDisplayMedia=function(e,t){if(!(e.navigator.mediaDevices&&`getDisplayMedia`in e.navigator.mediaDevices)&&e.navigator.mediaDevices){if(typeof t!=`function`)return void console.error(`shimGetDisplayMedia: getSourceId argument is not a function`);e.navigator.mediaDevices.getDisplayMedia=function(n){return t(n).then(function(t){var r=n.video&&n.video.width,i=n.video&&n.video.height;return n.video={mandatory:{chromeMediaSource:`desktop`,chromeMediaSourceId:t,maxFrameRate:n.video&&n.video.frameRate||3}},r&&(n.video.mandatory.maxWidth=r),i&&(n.video.mandatory.maxHeight=i),e.navigator.mediaDevices.getUserMedia(n)})}}}},{}],5:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0});var r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e};n.shimGetUserMedia=function(e){var t=e&&e.navigator;if(!t.mediaDevices)return;function n(e){if((e===void 0?`undefined`:r(e))!==`object`||e.mandatory||e.optional)return e;var t={};return Object.keys(e).forEach(function(n){if(n!==`require`&&n!==`advanced`&&n!==`mediaSource`){var i=r(e[n])===`object`?e[n]:{ideal:e[n]};i.exact!==void 0&&typeof i.exact==`number`&&(i.min=i.max=i.exact);var a=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):t===`deviceId`?`sourceId`:t};if(i.ideal!==void 0){t.optional=t.optional||[];var o={};typeof i.ideal==`number`?(o[a(`min`,n)]=i.ideal,t.optional.push(o),(o={})[a(`max`,n)]=i.ideal):o[a(``,n)]=i.ideal,t.optional.push(o)}i.exact!==void 0&&typeof i.exact!=`number`?(t.mandatory=t.mandatory||{},t.mandatory[a(``,n)]=i.exact):[`min`,`max`].forEach(function(e){i[e]!==void 0&&(t.mandatory=t.mandatory||{},t.mandatory[a(e,n)]=i[e])})}}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t}function o(e,i){if(61<=c.version)return i(e);
1if((e=JSON.parse(JSON.stringify(e)))&&r(e.audio)===`object`){var o=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])};o((e=JSON.parse(JSON.stringify(e))).audio,`autoGainControl`,`googAutoGainControl`),o(e.audio,`noiseSuppression`,`googNoiseSuppression`),e.audio=n(e.audio)}if(e&&r(e.video)===`object`){var s=e.video.facingMode;s&&=(s===void 0?`undefined`:r(s))===`object`?s:{ideal:s};var l=c.version<66;if(s&&(s.exact===`user`||s.exact===`environment`||s.ideal===`user`||s.ideal===`environment`)&&(!t.mediaDevices.getSupportedConstraints||!t.mediaDevices.getSupportedConstraints().facingMode||l)){delete e.video.facingMode;var u=void 0;if(s.exact===`environment`||s.ideal===`environment`?u=[`back`,`rear`]:s.exact!==`user`&&s.ideal!==`user`||(u=[`front`]),u)return t.mediaDevices.enumerateDevices().then(function(t){var r=(t=t.filter(function(e){return e.kind===`videoinput`})).find(function(e){return u.some(function(t){return e.label.toLowerCase().includes(t)})});return!r&&t.length&&u.includes(`back`)&&(r=t[t.length-1]),r&&(e.video.deviceId=s.exact?{exact:r.deviceId}:{ideal:r.deviceId}),e.video=n(e.video),a(`chrome: `+JSON.stringify(e)),i(e)})}e.video=n(e.video)}return a(`chrome: `+JSON.stringify(e)),i(e)}function s(e){return 64<=c.version?e:{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(){return this.name+(this.message&&`: `)+this.message}}}var c=i.detectBrowser(e);if(t.getUserMedia=function(e,n,r){o(e,function(e){t.webkitGetUserMedia(e,n,function(e){r&&r(s(e))})})}.bind(t),t.mediaDevices.getUserMedia){var l=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(e){return o(e,function(e){return l(e).then(function(t){if(e.audio&&!t.getAudioTracks().length||e.video&&!t.getVideoTracks().length)throw t.getTracks().forEach(function(e){e.stop()}),new DOMException(``,`NotFoundError`);return t},function(e){return Promise.reject(s(e))})})}}};var i=function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e(`../utils.js`)),a=i.log},{"../utils.js":15}],6:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0});var r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e};n.shimRTCIceCandidate=function(e){if(!(!e.RTCIceCandidate||e.RTCIceCandidate&&`foundation`in e.RTCIceCandidate.prototype)){var t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if((e===void 0?`undefined`:r(e))===`object`&&e.candidate&&e.candidate.indexOf(`a=`)===0&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substr(2)),e.candidate&&e.candidate.length){var n=new t(e),i=a.default.parseCandidate(e.candidate),o=Object.assign(n,i);return o.toJSON=function(){return{candidate:o.candidate,sdpMid:o.sdpMid,sdpMLineIndex:o.sdpMLineIndex,usernameFragment:o.usernameFragment}},o}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,o.wrapPeerConnectionEvent(e,`icecandidate`,function(t){return t.candidate&&Object.defineProperty(t,`candidate`,{value:new e.RTCIceCandidate(t.candidate),writable:`false`}),t})}},n.shimMaxMessageSize=function(e){if(e.RTCPeerConnection){var t=o.detectBrowser(e);`sctp`in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,`sctp`,{get:function(){return this._sctp===void 0?null:this._sctp}});var n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(e){if(this._sctp=null,t.browser===`chrome`&&76<=t.version&&this.getConfiguration().sdpSemantics===`plan-b`&&Object.defineProperty(this,`sctp`,{get:function(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0}),function(e){if(!e||!e.sdp)return!1;var t=a.default.splitSections(e.sdp);return t.shift(),t.some(function(e){var t=a.default.parseMLine(e);return t&&t.kind===`application`&&t.protocol.indexOf(`SCTP`)!==-1})}(e)){var r=function(e){var t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(t===null||t.length<2)return-1;var n=parseInt(t[1],10);return n==n?n:-1}(e),i=function(e){var n=65536;return t.browser===`firefox`&&(n=t.version<57?e===-1?16384:2147483637:t.version<60?t.version===57?65535:65536:2147483637),n}(r),o=function(e,n){var r=65536;t.browser===`firefox`&&t.version===57&&(r=65535);var i=a.default.matchPrefix(e.sdp,`a=max-message-size:`);return 0<i.length?r=parseInt(i[0].substr(19),10):t.browser===`firefox`&&n!==-1&&(r=2147483637),r}(e,r),s=void 0;s=i===0&&o===0?1/0:i===0||o===0?Math.max(i,o):Math.min(i,o);var c={};Object.defineProperty(c,`maxMessageSize`,{get:function(){return s}}),this._sctp=c}return n.apply(this,arguments)}}},n.shimSendThrowTypeError=function(e){if(!(e.RTCPeerConnection&&`createDataChannel`in e.RTCPeerConnection.prototype))return;function t(e,t){var n=e.send;e.send=function(r){var i=r,a=i.length||i.size||i.byteLength;if(e.readyState===`open`&&t.sctp&&a>t.sctp.maxMessageSize)throw TypeError(`Message too large (can send a maximum of `+t.sctp.maxMessageSize+` bytes)`);return n.apply(e,arguments)}}var n=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){var e=n.apply(this,arguments);return t(e,this),e},o.wrapPeerConnectionEvent(e,`datachannel`,function(e){return t(e.channel,e.target),e})},n.shimConnectionState=function(e){if(!(!e.RTCPeerConnection||`c
1onnectionState`in e.RTCPeerConnection.prototype)){var t=e.RTCPeerConnection.prototype;Object.defineProperty(t,`connectionState`,{get:function(){return{completed:`connected`,checking:`connecting`}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,`onconnectionstatechange`,{get:function(){return this._onconnectionstatechange||null},set:function(e){this._onconnectionstatechange&&(this.removeEventListener(`connectionstatechange`,this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener(`connectionstatechange`,this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),[`setLocalDescription`,`setRemoteDescription`].forEach(function(e){var n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=function(e){var t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;var n=new Event(`connectionstatechange`,e);t.dispatchEvent(n)}return e},this.addEventListener(`iceconnectionstatechange`,this._connectionstatechangepoly)),n.apply(this,arguments)}})}},n.removeAllowExtmapMixed=function(e){if(e.RTCPeerConnection){var t=o.detectBrowser(e);if(!(t.browser===`chrome`&&71<=t.version)){var n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(e){return e&&e.sdp&&e.sdp.indexOf(`
2a=extmap-allow-mixed`)!==-1&&(e.sdp=e.sdp.split(`
3`).filter(function(e){return e.trim()!==`a=extmap-allow-mixed`}).join(`
4`)),n.apply(this,arguments)}}}};var i,a=(i=e(`sdp`))&&i.__esModule?i:{default:i},o=function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e(`./utils`))},{"./utils":15,sdp:17}],7:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0}),n.shimGetDisplayMedia=n.shimGetUserMedia=void 0;var r=e(`./getusermedia`);Object.defineProperty(n,`shimGetUserMedia`,{enumerable:!0,get:function(){return r.shimGetUserMedia}});var i=e(`./getdisplaymedia`);Object.defineProperty(n,`shimGetDisplayMedia`,{enumerable:!0,get:function(){return i.shimGetDisplayMedia}}),n.shimPeerConnection=function(e){var t=o.detectBrowser(e);if(e.RTCIceGatherer&&(e.RTCIceCandidate||=function(e){return e},e.RTCSessionDescription||=function(e){return e},t.version<15025)){var n=Object.getOwnPropertyDescriptor(e.MediaStreamTrack.prototype,`enabled`);Object.defineProperty(e.MediaStreamTrack.prototype,`enabled`,{set:function(e){n.set.call(this,e);var t=new Event(`enabled`);t.enabled=e,this.dispatchEvent(t)}})}!e.RTCRtpSender||`dtmf`in e.RTCRtpSender.prototype||Object.defineProperty(e.RTCRtpSender.prototype,`dtmf`,{get:function(){return this._dtmf===void 0&&(this.track.kind===`audio`?this._dtmf=new e.RTCDtmfSender(this):this.track.kind===`video`&&(this._dtmf=null)),this._dtmf}}),e.RTCDtmfSender&&!e.RTCDTMFSender&&(e.RTCDTMFSender=e.RTCDtmfSender);var r=(0,c.default)(e,t.version);e.RTCPeerConnection=function(e){return e&&e.iceServers&&(e.iceServers=(0,s.filterIceServers)(e.iceServers,t.version),o.log(`ICE servers after filtering:`,e.iceServers)),new r(e)},e.RTCPeerConnection.prototype=r.prototype},n.shimReplaceTrack=function(e){!e.RTCRtpSender||`replaceTrack`in e.RTCRtpSender.prototype||(e.RTCRtpSender.prototype.replaceTrack=e.RTCRtpSender.prototype.setTrack)};var a,o=function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e(`../utils`)),s=e(`./filtericeservers`),c=(a=e(`rtcpeerconnection-shim`))&&a.__esModule?a:{default:a}},{"../utils":15,"./filtericeservers":8,"./getdisplaymedia":9,"./getusermedia":10,"rtcpeerconnection-shim":16}],8:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0}),n.filterIceServers=function(e,t){var n=!1;return(e=JSON.parse(JSON.stringify(e))).filter(function(e){if(e&&(e.urls||e.url)){var t=e.urls||e.url;e.url&&!e.urls&&r.deprecated(`RTCIceServer.url`,`RTCIceServer.urls`);var i=typeof t==`string`;return i&&(t=[t]),t=t.filter(function(e){if(e.indexOf(`stun:`)===0)return!1;var t=e.startsWith(`turn`)&&!e.startsWith(`turn:[`)&&e.includes(`transport=udp`);return t&&!n?n=!0:t&&!n}),delete e.url,e.urls=i?t[0]:t,!!t.length}})};
4var r=function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e(`../utils`))},{"../utils":15}],9:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0}),n.shimGetDisplayMedia=function(e){`getDisplayMedia`in e.navigator&&e.navigator.mediaDevices&&(e.navigator.mediaDevices&&`getDisplayMedia`in e.navigator.mediaDevices||(e.navigator.mediaDevices.getDisplayMedia=e.navigator.getDisplayMedia.bind(e.navigator)))}},{}],10:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0}),n.shimGetUserMedia=function(e){var t=e&&e.navigator,n=t.mediaDevices.getUserMedia.bind(t.mediaDevices);t.mediaDevices.getUserMedia=function(e){return n(e).catch(function(e){return Promise.reject(function(e){return{name:{PermissionDeniedError:`NotAllowedError`}[e.name]||e.name,message:e.message,constraint:e.constraint,toString:function(){return this.name}}}(e))})}}},{}],11:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0}),n.shimGetDisplayMedia=n.shimGetUserMedia=void 0;var r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},i=e(`./getusermedia`);Object.defineProperty(n,`shimGetUserMedia`,{enumerable:!0,get:function(){return i.shimGetUserMedia}});var a=e(`./getdisplaymedia`);Object.defineProperty(n,`shimGetDisplayMedia`,{enumerable:!0,get:function(){return a.shimGetDisplayMedia}}),n.shimOnTrack=function(e){(e===void 0?`undefined`:r(e))===`object`&&e.RTCTrackEvent&&`receiver`in e.RTCTrackEvent.prototype&&!(`transceiver`in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,`transceiver`,{get:function(){return{receiver:this.receiver}}})},n.shimPeerConnection=function(e){var t=o.detectBrowser(e);if(!((e===void 0?`undefined`:r(e))!==`object`||!e.RTCPeerConnection&&!e.mozRTCPeerConnection)){if(!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&[`setLocalDescription`,`setRemoteDescription`,`addIceCandidate`].forEach(function(t){var n=e.RTCPeerConnection.prototype[t],r=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},t,function(){return arguments[0]=new(t===`addIceCandidate`?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)});e.RTCPeerConnection.prototype[t]=r[t]}),t.version<68){var n=e.RTCPeerConnection.prototype.addIceCandidate;e.RTCPeerConnection.prototype.addIceCandidate=function(e,t){return e?e&&e.candidate===``?Promise.resolve():n.apply(this,arguments):(t&&t.apply(null),Promise.resolve())}}var i={inboundrtp:`inbound-rtp`,outboundrtp:`outbound-rtp`,candidatepair:`candidate-pair`,localcandidate:`local-candidate`,remotecandidate:`remote-candidate`},a=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){var e=Array.prototype.slice.call(arguments),n=e[0],r=e[1],o=e[2];return a.apply(this,[n||null]).then(function(e){if(t.version<53&&!r)try{e.forEach(function(e){e.type=i[e.type]||e.type})}catch(t){if(t.name!==`TypeError`)throw t;e.forEach(function(t,n){e.set(n,Object.assign({},t,{type:i[t.type]||t.type}))})}return e}).then(r,o)}}},n.shimSenderGetStats=function(e){if(!((e===void 0?`undefined`:r(e))!==`object`||!e.RTCPeerConnection||!e.RTCRtpSender)&&!(e.RTCRtpSender&&`getStats`in e.RTCRtpSender.prototype)){var t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){var e=this,n=t.apply(this,[]);return n.forEach(function(t){return t._pc=e}),n});var n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){var e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}},n.shimReceiverGetStats=function(e){if(!((e===void 0?`undefined`:r(e))!==`object`||!e.RTCPeerConnection||!e.RTCRtpSender)&&!(e.RTCRtpSender&&`getStats`in e.RTCRtpReceiver.prototype)){var t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){var e=this,n=t.apply(this,[]);
4return n.forEach(function(t){return t._pc=e}),n}),o.wrapPeerConnectionEvent(e,`track`,function(e){return e.receiver._pc=e.srcElement,e}),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}},n.shimRemoveStream=function(e){!e.RTCPeerConnection||`removeStream`in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){var t=this;o.deprecated(`removeStream`,`removeTrack`),this.getSenders().forEach(function(n){n.track&&e.getTracks().includes(n.track)&&t.removeTrack(n)})})},n.shimRTCDataChannel=function(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)},n.shimAddTransceiver=function(e){if(!((e===void 0?`undefined`:r(e))!==`object`||!e.RTCPeerConnection)){var t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(e,n){this.setParametersPromises=[];var r=n,i=r&&`sendEncodings`in r;i&&r.sendEncodings.forEach(function(e){if(`rid`in e&&!/^[a-z0-9]{0,16}$/i.test(e.rid))throw TypeError(`Invalid RID value provided.`);if(`scaleResolutionDownBy`in e&&!(1<=parseFloat(e.scaleResolutionDownBy)))throw RangeError(`scale_resolution_down_by must be >= 1.0`);if(`maxFramerate`in e&&!(0<=parseFloat(e.maxFramerate)))throw RangeError(`max_framerate must be >= 0.0`)});
4var a=t.apply(this,arguments);if(i){var o=a.sender,s=o.getParameters();`encodings`in s||(s.encodings=r.sendEncodings,this.setParametersPromises.push(o.setParameters(s).catch(function(){})))}return a})}},n.shimCreateOffer=function(e){if(!((e===void 0?`undefined`:r(e))!==`object`||!e.RTCPeerConnection)){var t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){var e=this,n=arguments;return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(function(){return t.apply(e,n)}).finally(function(){e.setParametersPromises=[]}):t.apply(this,arguments)}}},n.shimCreateAnswer=function(e){if(!((e===void 0?`undefined`:r(e))!==`object`||!e.RTCPeerConnection)){var t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){var e=this,n=arguments;return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(function(){return t.apply(e,n)}).finally(function(){e.setParametersPromises=[]}):t.apply(this,arguments)}}};var o=function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e(`../utils`))},{"../utils":15,"./getdisplaymedia":12,"./getusermedia":13}],12:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0}),n.shimGetDisplayMedia=function(e,t){e.navigator.mediaDevices&&`getDisplayMedia`in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(n){if(n&&n.video)return!0===n.video?n.video={mediaSource:t}:n.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(n);var r=new DOMException(`getDisplayMedia without video constraints is undefined`);return r.name=`NotFoundError`,r.code=8,Promise.reject(r)})}},{}],13:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0});var r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e};n.shimGetUserMedia=function(e){var t=i.detectBrowser(e),n=e&&e.navigator,a=e&&e.MediaStreamTrack;if(n.getUserMedia=function(e,t,r){i.deprecated(`navigator.getUserMedia`,`navigator.mediaDevices.getUserMedia`),n.mediaDevices.getUserMedia(e).then(t,r)},!(55<t.version&&`autoGainControl`in n.mediaDevices.getSupportedConstraints())){var o=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])},s=n.mediaDevices.getUserMedia.bind(n.mediaDevices);if(n.mediaDevices.getUserMedia=function(e){return(e===void 0?`undefined`:r(e))===`object`&&r(e.audio)===`object`&&(e=JSON.parse(JSON.stringify(e)),o(e.audio,`autoGainControl`,`mozAutoGainControl`),o(e.audio,`noiseSuppression`,`mozNoiseSuppression`)),s(e)},a&&a.prototype.getSettings){var c=a.prototype.getSettings;a.prototype.getSettings=function(){var e=c.apply(this,arguments);return o(e,`mozAutoGainControl`,`autoGainControl`),o(e,`mozNoiseSuppression`,`noiseSuppression`),e}}if(a&&a.prototype.applyConstraints){var l=a.prototype.applyConstraints;a.prototype.applyConstraints=function(e){return this.kind===`audio`&&(e===void 0?`undefined`:r(e))===`object`&&(e=JSON.parse(JSON.stringify(e)),o(e,`autoGainControl`,`mozAutoGainControl`),o(e,`noiseSuppression`,`mozNoiseSuppression`)),l.apply(this,[e])}}}};var i=function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e(`../utils`))},{"../utils":15}],14:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0});var r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e};n.shimLocalStreamsAPI=function(e){if(!((e===void 0?`undefined`:r(e))!==`object`||!e.RTCPeerConnection)){if(`getLocalStreams`in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||=[],this._localStreams}),!(`addStream`in e.RTCPeerConnection.prototype)){var t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){var n=this;this._localStreams||=[],this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEac
4h(function(r){return t.call(n,r,e)}),e.getVideoTracks().forEach(function(r){return t.call(n,r,e)})},e.RTCPeerConnection.prototype.addTrack=function(e,n){var r=n;return r&&(this._localStreams?this._localStreams.includes(r)||this._localStreams.push(r):this._localStreams=[r]),t.apply(this,arguments)}}`removeStream`in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){var t=this;this._localStreams||=[];var n=this._localStreams.indexOf(e);if(n!==-1){this._localStreams.splice(n,1);var r=e.getTracks();this.getSenders().forEach(function(e){r.includes(e.track)&&t.removeTrack(e)})}})}},n.shimRemoteStreamsAPI=function(e){if(!((e===void 0?`undefined`:r(e))!==`object`||!e.RTCPeerConnection)&&(`getRemoteStreams`in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!(`onaddstream`in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,`onaddstream`,{get:function(){return this._onaddstream},set:function(e){var t=this;this._onaddstream&&(this.removeEventListener(`addstream`,this._onaddstream),this.removeEventListener(`track`,this._onaddstreampoly)),this.addEventListener(`addstream`,this._onaddstream=e),this.addEventListener(`track`,this._onaddstreampoly=function(e){e.streams.forEach(function(e){if(t._remoteStreams||=[],!t._remoteStreams.includes(e)){t._remoteStreams.push(e);var n=new Event(`addstream`);n.stream=e,t.dispatchEvent(n)}})})}});var t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){var e=this;return this._onaddstreampoly||this.addEventListener(`track`,this._onaddstreampoly=function(t){t.streams.forEach(function(t){if(e._remoteStreams||=[],!(0<=e._remoteStreams.indexOf(t))){e._remoteStreams.push(t);var n=new Event(`addstream`);n.stream=t,e.dispatchEvent(n)}})}),t.apply(e,arguments)}}},n.shimCallbacksAPI=function(e){if(!((e===void 0?`undefined`:r(e))!==`object`||!e.RTCPeerConnection)){var t=e.RTCPeerConnection.prototype,n=t.createOffer,i=t.createAnswer,a=t.setLocalDescription,o=t.setRemoteDescription,s=t.addIceCandidate;t.createOffer=function(e,t,r){var i=2<=arguments.length?r:e,a=n.apply(this,[i]);return t?(a.then(e,t),Promise.resolve()):a},t.createAnswer=function(e,t,n){var r=2<=arguments.length?n:e,a=i.apply(this,[r]);return t?(a.then(e,t),Promise.resolve()):a};var c=function(e,t,n){var r=a.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r};t.setLocalDescription=c,c=function(e,t,n){var r=o.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},t.setRemoteDescription=c,c=function(e,t,n){var r=s.apply(this,[e]);return n?(r.then(t,n),Promise.resolve()):r},t.addIceCandidate=c}},n.shimGetUserMedia=function(e){var t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){var n=t.mediaDevices,r=n.getUserMedia.bind(n);t.mediaDevices.getUserMedia=function(e){return r(a(e))}}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,n,r){t.mediaDevices.getUserMedia(e).then(n,r)}.bind(t))},n.shimConstraints=a,n.shimRTCIceServerUrls=function(e){var t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,n){if(e&&e.iceServers){for(var r=[],a=0;a<e.iceServers.length;a++){var o=e.iceServers[a];!o.hasOwnProperty(`urls`)&&o.hasOwnProperty(`url`)?(i.deprecated(`RTCIceServer.url`,`RTCIceServer.urls`),(o=JSON.parse(JSON.stringify(o))).urls=o.url,delete o.url,r.push(o)):r.push(e.iceServers[a])}e.iceServers=r}return new t(e,n)},e.RTCPeerConnection.prototype=t.prototype,`generateCertificate`in e.RTCPeerConnection&&Object.defineProperty(e.RTCPeerConnection,`generateCertificate`,{get:function(){return t.generateCertificate}})},n.shimTrackEventTransceiver=function(e){(e===void 0?`undefined`:r(e))===`object`&&e.RTCTrackEvent&&`receiver`in e.RTCTrackEvent.prototype&&!(`transceiver`in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,`transceiver`,{get:function(){return{receiver:this.receiver}}})},n.shimCreateOfferLegacy=function(e){var t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){e.offerToReceiveAudio!==void 0&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);var n=this.getTransceivers().find(function(e){return e.receiver.track.kind===`audio`});!1===e.offerToReceiveAudio&&n?n.direction===`sendrecv`?n.setDirection?n.setDirection(`sendonly`):n.direction=`sendonly`:n.direction===`recvonly`&&(n.setDirection?n.setDirection(`
4inactive`):n.direction=`inactive`):!0!==e.offerToReceiveAudio||n||this.addTransceiver(`audio`),e.offerToReceiveVideo!==void 0&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);var r=this.getTransceivers().find(function(e){return e.receiver.track.kind===`video`});!1===e.offerToReceiveVideo&&r?r.direction===`sendrecv`?r.setDirection?r.setDirection(`sendonly`):r.direction=`sendonly`:r.direction===`recvonly`&&(r.setDirection?r.setDirection(`inactive`):r.direction=`inactive`):!0!==e.offerToReceiveVideo||r||this.addTransceiver(`video`)}return t.apply(this,arguments)}};var i=function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(e(`../utils`));function a(e){return e&&e.video!==void 0?Object.assign({},e,{video:i.compactObject(e.video)}):e}},{"../utils":15}],15:[function(e,t,n){"use strict";Object.defineProperty(n,`__esModule`,{value:!0});var r=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e};function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.extractVersion=s,n.wrapPeerConnectionEvent=function(e,t,n){if(e.RTCPeerConnection){var r=e.RTCPeerConnection.prototype,i=r.addEventListener;r.addEventListener=function(e,r){if(e!==t)return i.apply(this,arguments);function a(e){var t=n(e);t&&r(t)}return this._eventMap=this._eventMap||{},this._eventMap[r]=a,i.apply(this,[e,a])};var a=r.removeEventListener;r.removeEventListener=function(e,n){if(e!==t||!this._eventMap||!this._eventMap[n])return a.apply(this,arguments);var r=this._eventMap[n];return delete this._eventMap[n],a.apply(this,[e,r])},Object.defineProperty(r,`on`+t,{get:function(){return this[`_on`+t]}
4,set:function(e){this[`_on`+t]&&(this.removeEventListener(t,this[`_on`+t]),delete this[`_on`+t]),e&&this.addEventListener(t,this[`_on`+t]=e)},enumerable:!0,configurable:!0})}},n.disableLog=function(e){return typeof e==`boolean`?(a=e)?`adapter.js logging disabled`:`adapter.js logging enabled`:Error(`Argument type: `+(e===void 0?`undefined`:r(e))+`. Please use a boolean.`)},n.disableWarnings=function(e){return typeof e==`boolean`?(o=!e,`adapter.js deprecation warnings `+(e?`disabled`:`enabled`)):Error(`Argument type: `+(e===void 0?`undefined`:r(e))+`. Please use a boolean.`)},n.log=function(){if((typeof window>`u`?`undefined`:r(window))===`object`){if(a)return;typeof console<`u`&&typeof console.log==`function`&&console.log.apply(console,arguments)}},n.deprecated=function(e,t){o&&console.warn(e+` is deprecated, please use `+t+` instead.`)},n.detectBrowser=function(e){var t=e.navigator,n={browser:null,version:null};if(e===void 0||!e.navigator)return n.browser=`Not a browser.`,n;if(t.mozGetUserMedia)n.browser=`firefox`,n.version=s(t.userAgent,/Firefox\/(\d+)\./,1);else if(t.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection&&!e.RTCIceGatherer)n.browser=`chrome`,n.version=s(t.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(t.mediaDevices&&t.userAgent.match(/Edge\/(\d+).(\d+)$/))n.browser=`edge`,n.version=s(t.userAgent,/Edge\/(\d+).(\d+)$/,2);else{if(!e.RTCPeerConnection||!t.userAgent.match(/AppleWebKit\/(\d+)\./))return n.browser=`Not a supported browser.`,n;n.browser=`safari`,n.version=s(t.userAgent,/AppleWebKit\/(\d+)\./,1),n.supportsUnifiedPlan=e.RTCRtpTransceiver&&`currentDirection`in e.RTCRtpTransceiver.prototype}return n},n.compactObject=function e(t){return c(t)?Object.keys(t).reduce(function(n,r){var a=c(t[r]),o=a?e(t[r]):t[r],s=a&&!Object.keys(o).length;return o===void 0||s?n:Object.assign(n,i({},r,o))},{}):t},n.walkStats=l,n.filterStats=function(e,t,n){var r=n?`outbound-rtp`:`inbound-rtp`,i=new Map;if(t===null)return i;var a=[];return e.forEach(function(e){e.type===`track`&&e.trackIdentifier===t.id&&a.push(e)}),a.forEach(function(t){e.forEach(function(n){n.type===r&&n.trackId===t.id&&l(e,n,i)})}),i};var a=!0,o=!0;function s(e,t,n){var r=e.match(t);return r&&r.length>=n&&parseInt(r[n],10)}function c(e){return Object.prototype.toString.call(e)===`[object Object]`}function l(e,t,n){t&&!n.has(t.id)&&(n.set(t.id,t),Object.keys(t).forEach(function(r){r.endsWith(`Id`)?l(e,e.get(t[r]),n):r.endsWith(`Ids`)&&t[r].forEach(function(t){l(e,e.get(t),n)})}))}},{}],16:[function(e,t,n){"use strict";var r=e(`sdp`);function i(e,t,n,i,a){var o=r.writeRtpDescription(e.kind,t);if(o+=r.writeIceParameters(e.iceGatherer.getLocalParameters()),o+=r.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),n===`offer`?`actpass`:a||`active`),o+=`a=mid:`+e.mid+`\r
5`,e.rtpSender&&e.rtpReceiver?o+=`a=sendrecv\r
6`:e.rtpSender?o+=`a=sendonly\r
7`:e.rtpReceiver?o+=`a=recvonly\r
8`:o+=`a=inactive\r
9`,e.rtpSender){var s=e.rtpSender._initialTrackId||e.rtpSender.track.id;e.rtpSender._initialTrackId=s;var c=`msid:`+(i?i.id:`-`)+` `+s+`\r
10`;o+=`a=`+c,o+=`a=ssrc:`+e.sendEncodingParameters[0].ssrc+` `+c,e.sendEncodingParameters[0].rtx&&(o+=`a=ssrc:`+e.sendEncodingParameters[0].rtx.ssrc+` `+c,o+=`a=ssrc-group:FID `+e.sendEncodingParameters[0].ssrc+` `+e.sendEncodingParameters[0].rtx.ssrc+`\r
11`)}return o+=`a=ssrc:`+e.sendEncodingParameters[0].ssrc+` cname:`+r.localCName+`\r
12`,e.rtpSender&&e.sendEncodingParameters[0].rtx&&(o+=`a=ssrc:`+e.sendEncodingParameters[0].rtx.ssrc+` cname:`+r.localCName+`\r
13`),o}function a(e,t){function n(e,t){e=parseInt(e,10);for(var n=0;n<t.length;n++)if(t[n].payloadType===e||t[n].preferredPayloadType===e)return t[n]}var r={codecs:[],headerExtensions:[],fecMechanisms:[]};return e.codecs.forEach(function(i){for(var a=0;a<t.codecs.length;a++){var o=t.codecs[a];if(i.name.toLowerCase()===o.name.toLowerCase()&&i.clockRate===o.clockRate){if(i.name.toLowerCase()===`rtx`&&i.parameters&&o.parameters.apt&&(s=i,c=o,l=e.codecs,u=t.codecs,f=d=void 0,d=n(s.parameters.apt,l),f=n(c.parameters.apt,u),!d||!f||d.name.toLowerCase()!==f.name.toLowerCase()))continue;(o=JSON.parse(JSON.stringify(o))).numChannels=Math.min(i.numChannels,o.numChannels),r.codecs.push(o),o.rtcpFeedback=o.rtcpFeedback.filter(function(e){for(var t=0;t<i.rtcpFeedback.length;t++)if(i.rtcpFeedback[t].type===e.type&&i.rtcpFeedback[t].parameter===e.parameter)return!0;return!1});break}}var s,c,l,u,d,f}),e.headerExtensions.forEach(function(e){for(var n=0;n<t.headerExtensions.length;n++){var i=t.headerExtensions[n];if(e.uri===i.uri){r.headerExtensions.push(i);break}}}),r}function o(e,t,n){return{offer:{setLocalDescription:[`stable`,`have-local-offer`],setRemoteDescription:[`stable`,`have-remote-offer`]},answer:{setLocalDescription:[`have-remote-offer`,`have-local-pranswer`],setRemoteDescription:[`have-local-offer`,`have-remote-pranswer`]}}[t][e].indexOf(n)!==-1}function s(e,t){var n=e.getRemoteCandidates().find(function(e){return t.foundation===e.foundation&&t.ip===e.ip&&t.port===e.port&&t.priority===e.priority&&t.protocol===e.protocol&&t.type===e.type});return n||e.addRemoteCandidate(t),!n}function c(e,t){var n=Error(t);return n.name=e,n.code={NotSupportedError:9,InvalidStateError:11,InvalidAccessError:15,TypeError:void 0,OperationError:void 0}[e],n}t.exports=function(e,t){function n(t,n){n.addTrack(t),n.dispatchEvent(new e.MediaStreamTrackEvent(`addtrack`,{track:t}))}function l(t,n,r,i){var a=new Event(`track`);a.track=n,a.receiver=r,a.transceiver={receiver:r},a.streams=i,e.setTimeout(function(){t._dispatchEvent(`track`,a)})}function u(n){var i=this,a=document.createDocumentFragment();if([`addEventListener`,`removeEventListener`,`dispatchEvent`].forEach(function(e){i[e]=a[e].bind(a)}),this.canTrickleIceCandidates=null,this.needNegotiation=!1,this.localStreams=[],this.remoteStreams=[],this._localDescription=null,this._remoteDescription=null,this.signalingState=`stable`,this.iceConnectionState=`new`,this.connectionState=`new`,this.iceGatheringState=`new`,n=JSON.parse(JSON.stringify(n||{})),this.usingBundle=n.bundlePolicy===`max-bundle`,n.rtcpMuxPolicy===`negotiate`)throw c(`NotSupportedError`,`rtcpMuxPolicy 'negotiate' is not supported`);switch(n.rtcpMuxPolicy||=`require`,n.iceTransportPolicy){case`all`:case`relay`:break;default:n.iceTransportPolicy=`all`}switch(n.bundlePolicy){case`balanced`:case`max-compat`:case`max-bundle`:break;default:n.bundlePolicy=`balanced`}if(n.iceServers=function(e,t){var n=!1;return(e=JSON.parse(JSON.stringify(e))).filter(function(e){if(e&&(e.urls||e.url)){var r=e.urls||e.url;e.url&&!e.urls&&console.warn(`RTCIceServer.url is deprecated! Use urls instead.`);var i=typeof r==`string`;return i&&(r=[r]),r=r.filter(function(e){return e.indexOf(`turn:`)===0&&e.indexOf(`transport=udp`)!==-1&&e.indexOf(`turn:[`)===-1&&!n?n=!0:e.indexOf(`stun:`)===0&&14393<=t&&e.indexOf(`?transport=udp`)===-1}),delete e.url,e.urls=i?r[0]:r,!!r.length}})}(n.iceServers||[],t),this._iceGatherers=[],n.iceCandidatePoolSize)for(var o=n.iceCandidatePoolSize;0<o;o--)this._iceGatherers.push(new e.RTCIceGatherer({iceServers:n.iceServers,gatherPolicy:n.iceTransportPolicy}));else n.iceCandidatePoolSize=0;this._config=n,this.transceivers=[],this._sdpSessionId=r.generateSessionId(),this._sdpSessionVersion=0,this._dtlsRole=void 0,this._isClosed=!1}
13Object.defineProperty(u.prototype,`localDescription`,{configurable:!0,get:function(){return this._localDescription}}),Object.defineProperty(u.prototype,`remoteDescription`,{configurable:!0,get:function(){return this._remoteDescription}}),u.prototype.onicecandidate=null,u.prototype.onaddstream=null,u.prototype.ontrack=null,u.prototype.onremovestream=null,u.prototype.onsignalingstatechange=null,u.prototype.oniceconnectionstatechange=null,u.prototype.onconnectionstatechange=null,u.prototype.onicegatheringstatechange=null,u.prototype.onnegotiationneeded=null,u.prototype.ondatachannel=null,u.prototype._dispatchEvent=function(e,t){this._isClosed||(this.dispatchEvent(t),typeof this[`on`+e]==`function`&&this[`on`+e](t))},u.prototype._emitGatheringStateChange=function(){var e=new Event(`icegatheringstatechange`);this._dispatchEvent(`icegatheringstatechange`,e)},u.prototype.getConfiguration=function(){return this._config},u.prototype.getLocalStreams=function(){return this.localStreams},u.prototype.getRemoteStreams=function(){return this.remoteStreams},u.prototype._createTransceiver=function(e,t){var n=0<this.transceivers.length,r={track:null,iceGatherer:null,iceTransport:null,dtlsTransport:null,localCapabilities:null,remoteCapabilities:null,rtpSender:null,rtpReceiver:null,kind:e,mid:null,sendEncodingParameters:null,recvEncodingParameters:null,stream:null,associatedRemoteMediaStreams:[],wantReceive:!0};
13if(this.usingBundle&&n)r.iceTransport=this.transceivers[0].iceTransport,r.dtlsTransport=this.transceivers[0].dtlsTransport;else{var i=this._createIceAndDtlsTransports();r.iceTransport=i.iceTransport,r.dtlsTransport=i.dtlsTransport}return t||this.transceivers.push(r),r},u.prototype.addTrack=function(t,n){if(this._isClosed)throw c(`InvalidStateError`,`Attempted to call addTrack on a closed peerconnection.`);var r;if(this.transceivers.find(function(e){return e.track===t}))throw c(`InvalidAccessError`,`Track already exists.`);for(var i=0;i<this.transceivers.length;i++)this.transceivers[i].track||this.transceivers[i].kind!==t.kind||(r=this.transceivers[i]);return r||=this._createTransceiver(t.kind),this._maybeFireNegotiationNeeded(),this.localStreams.indexOf(n)===-1&&this.localStreams.push(n),r.track=t,r.stream=n,r.rtpSender=new e.RTCRtpSender(t,r.dtlsTransport),r.rtpSender},u.prototype.addStream=function(e){var n=this;if(15025<=t)e.getTracks().forEach(function(t){n.addTrack(t,e)});else{var r=e.clone();e.getTracks().forEach(function(e,t){var n=r.getTracks()[t];e.addEventListener(`enabled`,function(e){n.enabled=e.enabled})}),r.getTracks().forEach(function(e){n.addTrack(e,r)})}},u.prototype.removeTrack=function(t){if(this._isClosed)throw c(`InvalidStateError`,`Attempted to call removeTrack on a closed peerconnection.`);if(!(t instanceof e.RTCRtpSender))throw TypeError(`Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.`);var n=this.transceivers.find(function(e){return e.rtpSender===t});if(!n)throw c(`InvalidAccessError`,`Sender was not created by this connection.`);var r=n.stream;n.rtpSender.stop(),n.rtpSender=null,n.track=null,n.stream=null,this.transceivers.map(function(e){return e.stream}).indexOf(r)===-1&&-1<this.localStreams.indexOf(r)&&this.localStreams.splice(this.localStreams.indexOf(r),1),this._maybeFireNegotiationNeeded()},u.prototype.removeStream=function(e){var t=this;e.getTracks().forEach(function(e){var n=t.getSenders().find(function(t){return t.track===e});n&&t.removeTrack(n)})},u.prototype.getSenders=function(){return this.transceivers.filter(function(e){return!!e.rtpSender}).map(function(e){return e.rtpSender})},u.prototype.getReceivers=function(){return this.transceivers.filter(function(e){return!!e.rtpReceiver}).map(function(e){return e.rtpReceiver})},u.prototype._createIceGatherer=function(t,n){var r=this;
13if(n&&0<t)return this.transceivers[0].iceGatherer;if(this._iceGatherers.length)return this._iceGatherers.shift();var i=new e.RTCIceGatherer({iceServers:this._config.iceServers,gatherPolicy:this._config.iceTransportPolicy});return Object.defineProperty(i,`state`,{value:`new`,writable:!0}),this.transceivers[t].bufferedCandidateEvents=[],this.transceivers[t].bufferCandidates=function(e){i.state=!e.candidate||Object.keys(e.candidate).length===0?`completed`:`gathering`,r.transceivers[t].bufferedCandidateEvents!==null&&r.transceivers[t].bufferedCandidateEvents.push(e)},i.addEventListener(`localcandidate`,this.transceivers[t].bufferCandidates),i},u.prototype._gather=function(t,n){var i=this,a=this.transceivers[n].iceGatherer;if(!a.onlocalcandidate){var o=this.transceivers[n].bufferedCandidateEvents;this.transceivers[n].bufferedCandidateEvents=null,a.removeEventListener(`localcandidate`,this.transceivers[n].bufferCandidates),a.onlocalcandidate=function(e){if(!(i.usingBundle&&0<n)){var o=new Event(`icecandidate`);o.candidate={sdpMid:t,sdpMLineIndex:n};var s=e.candidate,c=!s||Object.keys(s).length===0;if(c)a.state!==`new`&&a.state!==`gathering`||(a.state=`completed`);else{a.state===`new`&&(a.state=`gathering`),s.component=1,s.ufrag=a.getLocalParameters().usernameFragment;var l=r.writeCandidate(s);o.candidate=Object.assign(o.candidate,r.parseCandidate(l)),o.candidate.candidate=l,o.candidate.toJSON=function(){return{candidate:o.candidate.candidate,sdpMid:o.candidate.sdpMid,sdpMLineIndex:o.candidate.sdpMLineIndex,usernameFragment:o.candidate.usernameFragment}}}var u=r.getMediaSections(i._localDescription.sdp);u[o.candidate.sdpMLineIndex]+=c?`a=end-of-candidates\r
14`:`a=`+o.candidate.candidate+`\r
15`,i._localDescription.sdp=r.getDescription(i._localDescription.sdp)+u.join(``);var d=i.transceivers.every(function(e){return e.iceGatherer&&e.iceGatherer.state===`completed`});i.iceGatheringState!==`gathering`&&(i.iceGatheringState=`gathering`,i._emitGatheringStateChange()),c||i._dispatchEvent(`icecandidate`,o),d&&(i._dispatchEvent(`icecandidate`,new Event(`icecandidate`)),i.iceGatheringState=`complete`,i._emitGatheringStateChange())}},e.setTimeout(function(){o.forEach(function(e){a.onlocalcandidate(e)})},0)}},u.prototype._createIceAndDtlsTransports=function(){var t=this,n=new e.RTCIceTransport(null);n.onicestatechange=function(){t._updateIceConnectionState(),t._updateConnectionState()};var r=new e.RTCDtlsTransport(n);return r.ondtlsstatechange=function(){t._updateConnectionState()},r.onerror=function(){Object.defineProperty(r,`state`,{value:`failed`,writable:!0}),t._updateConnectionState()},{iceTransport:n,dtlsTransport:r}},u.prototype._disposeIceAndDtlsTransports=function(e){var t=this.transceivers[e].iceGatherer;t&&(delete t.onlocalcandidate,delete this.transceivers[e].iceGatherer);var n=this.transceivers[e].iceTransport;n&&(delete n.onicestatechange,delete this.transceivers[e].iceTransport);var r=this.transceivers[e].dtlsTransport;r&&(delete r.ondtlsstatechange,delete r.onerror,delete this.transceivers[e].dtlsTransport)},u.prototype._transceive=function(e,n,i){var o=a(e.localCapabilities,e.remoteCapabilities);n&&e.rtpSender&&(o.encodings=e.sendEncodingParameters,o.rtcp={cname:r.localCName,compound:e.rtcpParameters.compound},e.recvEncodingParameters.length&&(o.rtcp.ssrc=e.recvEncodingParameters[0].ssrc),e.rtpSender.send(o)),i&&e.rtpReceiver&&0<o.codecs.length&&(e.kind===`video`&&e.recvEncodingParameters&&t<15019&&e.recvEncodingParameters.forEach(function(e){delete e.rtx}),e.recvEncodingParameters.length?o.encodings=e.recvEncodingParameters:o.encodings=[{}],o.rtcp={compound:e.rtcpParameters.compound},e.rtcpParameters.cname&&(o.rtcp.cname=e.rtcpParameters.cname),e.sendEncodingParameters.length&&(o.rtcp.ssrc=e.sendEncodingParameters[0].ssrc),e.rtpReceiver.receive(o))},u.prototype.setLocalDescription=function(e){var t,n,i=this;if([`offer`,`answer`].indexOf(e.type)===-1)return Promise.reject(c(`TypeError`,`Unsupported type "`+e.type+`"`));if(!o(`setLocalDescription`,e.type,i.signalingState)||i._isClosed)return Promise.reject(c(`InvalidStateError`,`Can not set local `+e.type+` in state `+i.signalingState));if(e.type===`offer`)t=r.splitSections(e.sdp),n=t.shift(),t.forEach(function(e,t){var n=r.parseRtpParameters(e);i.transceivers[t].localCapabilities=n}
15),i.transceivers.forEach(function(e,t){i._gather(e.mid,t)});else if(e.type===`answer`){t=r.splitSections(i._remoteDescription.sdp),n=t.shift();var s=0<r.matchPrefix(n,`a=ice-lite`).length;t.forEach(function(e,t){var o=i.transceivers[t],c=o.iceGatherer,l=o.iceTransport,u=o.dtlsTransport,d=o.localCapabilities,f=o.remoteCapabilities;if(!(r.isRejected(e)&&r.matchPrefix(e,`a=bundle-only`).length===0)&&!o.rejected){var p=r.getIceParameters(e,n),m=r.getDtlsParameters(e,n);s&&(m.role=`server`),i.usingBundle&&t!==0||(i._gather(o.mid,t),l.state===`new`&&l.start(c,p,s?`controlling`:`controlled`),u.state===`new`&&u.start(m));var h=a(d,f);i._transceive(o,0<h.codecs.length,!1)}})}return i._localDescription={type:e.type,sdp:e.sdp},e.type===`offer`?i._updateSignalingState(`have-local-offer`):i._updateSignalingState(`stable`),Promise.resolve()},u.prototype.setRemoteDescription=function(i){var u=this;if([`offer`,`answer`].indexOf(i.type)===-1)return Promise.reject(c(`TypeError`,`Unsupported type "`+i.type+`"`));if(!o(`setRemoteDescription`,i.type,u.signalingState)||u._isClosed)return Promise.reject(c(`InvalidStateError`,`Can not set remote `+i.type+` in state `+u.signalingState));var d={};u.remoteStreams.forEach(function(e){d[e.id]=e});var f=[],p=r.splitSections(i.sdp),m=p.shift(),h=0<r.matchPrefix(m,`a=ice-lite`).length,g=0<r.matchPrefix(m,`a=group:BUNDLE `).length;u.usingBundle=g;var _=r.matchPrefix(m,`a=ice-options:`)[0];return u.canTrickleIceCandidates=!!_&&0<=_.substr(14).split(` `).indexOf(`trickle`),p.forEach(function(o,c){var l=r.splitLines(o),p=r.getKind(o),_=r.isRejected(o)&&r.matchPrefix(o,`a=bundle-only`).length===0,v=l[0].substr(2).split(` `)[2],y=r.getDirection(o,m),b=r.parseMsid(o),x=r.getMid(o)||r.generateIdentifier();if(_||p===`application`&&(v===`DTLS/SCTP`||v===`UDP/DTLS/SCTP`))u.transceivers[c]={mid:x,kind:p,protocol:v,rejected:!0};else{var S,C,w,T,E,D,O,k,A;!_&&u.transceivers[c]&&u.transceivers[c].rejected&&(u.transceivers[c]=u._createTransceiver(p,!0));var j,M,N=r.parseRtpParameters(o);_||(j=r.getIceParameters(o,m),(M=r.getDtlsParameters(o,m)).role=`client`),O=r.parseRtpEncodingParameters(o);var P=r.parseRtcpParameters(o),F=0<r.matchPrefix(o,`a=end-of-candidates`,m).length,I=r.matchPrefix(o,`a=candidate:`).map(function(e){return r.parseCandidate(e)}).filter(function(e){return e.component===1});if((i.type===`offer`||i.type===`answer`)&&!_&&g&&0<c&&u.transceivers[c]&&(u._disposeIceAndDtlsTransports(c),u.transceivers[c].iceGatherer=u.transceivers[
150].iceGatherer,u.transceivers[c].iceTransport=u.transceivers[0].iceTransport,u.transceivers[c].dtlsTransport=u.transceivers[0].dtlsTransport,u.transceivers[c].rtpSender&&u.transceivers[c].rtpSender.setTransport(u.transceivers[0].dtlsTransport),u.transceivers[c].rtpReceiver&&u.transceivers[c].rtpReceiver.setTransport(u.transceivers[0].dtlsTransport)),i.type!==`offer`||_)i.type===`answer`&&!_&&(C=(S=u.transceivers[c]).iceGatherer,w=S.iceTransport,T=S.dtlsTransport,E=S.rtpReceiver,D=S.sendEncodingParameters,k=S.localCapabilities,u.transceivers[c].recvEncodingParameters=O,u.transceivers[c].remoteCapabilities=N,u.transceivers[c].rtcpParameters=P,I.length&&w.state===`new`&&(!h&&!F||g&&c!==0?I.forEach(function(e){s(S.iceTransport,e)}):w.setRemoteCandidates(I)),g&&c!==0||(w.state===`new`&&w.start(C,j,`controlling`),T.state===`new`&&T.start(M)),!a(S.localCapabilities,S.remoteCapabilities).codecs.filter(function(e){return e.name.toLowerCase()===`rtx`}).length&&S.sendEncodingParameters[0].rtx&&delete S.sendEncodingParameters[0].rtx,u._transceive(S,y===`sendrecv`||y===`recvonly`,y===`sendrecv`||y===`sendonly`),!E||y!==`sendrecv`&&y!==`sendonly`?delete S.rtpReceiver:(A=E.track,b?(d[b.stream]||(d[b.stream]=new e.MediaStream),n(A,d[b.stream]),f.push([A,E,d[b.stream]])):(d.default||=new e.MediaStream,n(A,d.default),f.push([A,E,d.default]))));else{(S=u.transceivers[c]||u._createTransceiver(p)).mid=x,S.iceGatherer||=u._createIceGatherer(c,g),I.length&&S.iceTransport.state===`new`&&(!F||g&&c!==0?I.forEach(function(e){s(S.iceTransport,e)}):S.iceTransport.setRemoteCandidates(I)),k=e.RTCRtpReceiver.getCapabilities(p),t<15019&&(k.codecs=k.codecs.filter(function(e){return e.name!==`rtx`})),D=S.sendEncodingParameters||[{ssrc:1001*(2*c+2)}];var L,R=!1;y===`sendrecv`||y===`sendonly`?(R=!S.rtpReceiver,E=S.rtpReceiver||new e.RTCRtpReceiver(S.dtlsTransport,p),R&&(A=E.track,b&&b.stream===`-`||(L=b?(d[b.stream]||(d[b.stream]=new e.MediaStream,Object.defineProperty(d[b.stream],`id`,{get:function(){return b.stream}})),Object.defineProperty(A,`id`,{get:function(){return b.track}}),d[b.stream]):(d.default||=new e.MediaStream,d.default)),L&&(n(A,L),S.associatedRemoteMediaStreams.push(L)),f.push([A,E,L]))):S.rtpReceiver&&S.rtpReceiver.track&&(S.associatedRemoteMediaStreams.forEach(function(t){var n=t.getTracks().find(function(e){return e.id===S.rtpReceiver.track.id});n&&function(t,n){n.removeTrack(t),n.dispatchEvent(new e.MediaStreamTrackEvent(`removetrack`,{track:t}))}(n,t)}),S.associatedRemoteMediaStreams=[]),S.localCapabilities=k,S.remoteCapabilities=N,S.rtpReceiver=E,S.rtcpParameters=P,S.sendEncodingParameters=D,S.recvEncodingParameters=O,u._transceive(u.transceivers[c],!1,R)}}}),u._dtlsRole===void 0&&(u._dtlsRole=i.type===`offer`?`active`:`passive`),u._remoteDescription={type:i.type,sdp:i.sdp},i.type===`offer`?u._updateSignalingState(`have-remote-offer`):u._updateSignalingState(`stable`),Object.keys(d).forEach(function(t){var n=d[t];if(n.getTracks().length){if(u.remoteStreams.indexOf(n)===-1){u.remoteStreams.push(n);var r=new Event(`addstream`);r.stream=n,e.setTimeout(function(){u._dispatchEvent(`addstream`,r)})}f.forEach(function(e){var t=e[0],r=e[1];n.id===e[2].id&&l(u,t,r,[n])})}}),f.forEach(function(e){e[2]||l(u,e[0],e[1],[])}),e.setTimeout(function(){u&&u.transceivers&&u.transceivers.forEach(function(e){e.iceTransport&&e.iceTransport.state===`new`&&0<e.iceTransport.getRemoteCandidates().length&&(console.warn(`Timeout for addRemoteCandidate. Consider sending an end-of-candidates notification`),e.iceTransport.addRemoteCandidate({}))})},4e3),Promise.resolve()},u.prototype.close=function(){this.transceivers.forEach(function(e){e.iceTransport&&e.iceTransport.stop(),e.dtlsTransport&&e.dtlsTransport.stop(),e.rtpSender&&e.rtpSender.stop(),e.rtpReceiver&&e.rtpReceiver.stop()}),this._isClosed=!0,this._updateSignalingState(`closed`)},u.prototype._updateSignalingState=function(e){this.signalingState=e;var t=new Event(`signalingstatechange`);this._dispatchEvent(`signalingstatechange`,t)},u.prototype._maybeFireNegotiationNeeded=function(){var t=this;this.signalingState===`stable`&&!0!==this.needNegotiation&&(this.needNegotiation=!0,e.setTimeout(function(){if(t.needNegotiation){t.needNegotiation=!1;var e=new Event(`negotiationneeded`);t._dispatchEvent(`negotiationneeded`,e)}},0))},u.prototype._updateIceConnectionState=function(){var e,t={new:0,closed:0,checking:0,connected:0,completed:0,disconnected:0,failed:0};
15if(this.transceivers.forEach(function(e){e.iceTransport&&!e.rejected&&t[e.iceTransport.state]++}),e=`new`,0<t.failed?e=`failed`:0<t.checking?e=`checking`:0<t.disconnected?e=`disconnected`:0<t.new?e=`new`:0<t.connected?e=`connected`:0<t.completed&&(e=`completed`),e!==this.iceConnectionState){this.iceConnectionState=e;var n=new Event(`iceconnectionstatechange`);this._dispatchEvent(`iceconnectionstatechange`,n)}},u.prototype._updateConnectionState=function(){var e,t={new:0,closed:0,connecting:0,connected:0,completed:0,disconnected:0,failed:0};if(this.transceivers.forEach(function(e){e.iceTransport&&e.dtlsTransport&&!e.rejected&&(t[e.iceTransport.state]++,t[e.dtlsTransport.state]++)}),t.connected+=t.completed,e=`new`,0<t.failed?e=`failed`:0<t.connecting?e=`connecting`:0<t.disconnected?e=`disconnected`:0<t.new?e=`new`:0<t.connected&&(e=`connected`),e!==this.connectionState){this.connectionState=e;var n=new Event(`connectionstatechange`);this._dispatchEvent(`connectionstatechange`,n)}},u.prototype.createOffer=function(){var n=this;if(n._isClosed)return Promise.reject(c(`InvalidStateError`,`Can not call createOffer after close`));var a=n.transceivers.filter(function(e){return e.kind===`audio`}).length,o=n.transceivers.filter(function(e){return e.kind===`video`}).length,s=arguments[0];if(s){if(s.mandatory||s.optional)throw TypeError(`Legacy mandatory/optional constraints not supported.`);s.offerToReceiveAudio!==void 0&&(a=!0===s.offerToReceiveAudio?1:!1===s.offerToReceiveAudio?0:s.offerToReceiveAudio),s.offerToReceiveVideo!==void 0&&(o=!0===s.offerToReceiveVideo?1:!1===s.offerToReceiveVideo?0:s.offerToReceiveVideo)}for(n.transceivers.forEach(function(e){e.kind===`audio`?--a<0&&(e.wantReceive=!1):e.kind===`video`&&--o<0&&(e.wantReceive=!1)});0<a||0<o;)0<a&&(n._createTransceiver(`audio`),a--),0<o&&(n._createTransceiver(`video`),o--);var l=r.writeSessionBoilerplate(n._sdpSessionId,n._sdpSessionVersion++);n.transceivers.forEach(function(i,a){var o=i.track,s=i.kind;i.mid=i.mid||r.generateIdentifier(),i.iceGatherer||=n._createIceGatherer(a,n.usingBundle);var c=e.RTCRtpSender.getCapabilities(s);t<15019&&(c.codecs=c.codecs.filter(function(e){return e.name!==`rtx`})),c.codecs.forEach(function(e){e.name===`H264`&&e.parameters[`level-asymmetry-allowed`]===void 0&&(e.parameters[`level-asymmetry-allowed`]=`1`),i.remoteCapabilities&&i.remoteCapabilities.codecs&&i.remoteCapabilities.codecs.forEach(function(t){e.name.toLowerCase()===t.name.toLowerCase()&&e.clockRate===t.clockRate&&(e.preferredPayloadType=t.payloadType)})}),c.headerExtensions.forEach(function(e){(i.remoteCapabilities&&i.remoteCapabilities.headerExtensions||[]).forEach(function(t){e.uri===t.uri&&(e.id=t.id)})});var l=i.sendEncodingParameters||[{ssrc:1001*(2*a+1)}];o&&15019<=t&&s===`video`&&!l[0].rtx&&(l[0].rtx={ssrc:l[0].ssrc+1}),i.wantReceive&&(i.rtpReceiver=new e.RTCRtpReceiver(i.dtlsTransport,s)),i.localCapabilities=c,i.sendEncodingParameters=l}),n._config.bundlePolicy!==`max-compat`&&(l+=`a=group:BUNDLE `+n.transceivers.map(function(e){return e.mid}).join(` `)+`\r
16`),l+=`a=ice-options:trickle\r
17`,n.transceivers.forEach(function(e,t){l+=i(e,e.localCapabilities,`offer`,e.stream,n._dtlsRole),l+=`a=rtcp-rsize\r
18`,!e.iceGatherer||n.iceGatheringState===`new`||t!==0&&n.usingBundle||(e.iceGatherer.getLocalCandidates().forEac
18h(function(e){e.component=1,l+=`a=`+r.writeCandidate(e)+`\r
19`}),e.iceGatherer.state===`completed`&&(l+=`a=end-of-candidates\r
20`))});var u=new e.RTCSessionDescription({type:`offer`,sdp:l});return Promise.resolve(u)},u.prototype.createAnswer=function(){var n=this;if(n._isClosed)return Promise.reject(c(`InvalidStateError`,`Can not call createAnswer after close`));if(n.signalingState!==`have-remote-offer`&&n.signalingState!==`have-local-pranswer`)return Promise.reject(c(`InvalidStateError`,`Can not call createAnswer in signalingState `+n.signalingState));var o=r.writeSessionBoilerplate(n._sdpSessionId,n._sdpSessionVersion++);n.usingBundle&&(o+=`a=group:BUNDLE `+n.transceivers.map(function(e){return e.mid}).join(` `)+`\r
21`),o+=`a=ice-options:trickle\r
22`;var s=r.getMediaSections(n._remoteDescription.sdp).length;n.transceivers.forEach(function(e,r){if(!(s<r+1)){if(e.rejected)return e.kind===`application`?e.protocol===`DTLS/SCTP`?o+=`m=application 0 DTLS/SCTP 5000\r
23`:o+=`m=application 0 `+e.protocol+` webrtc-datachannel\r
24`:e.kind===`audio`?o+=`m=audio 0 UDP/TLS/RTP/SAVPF 0\r
25a=rtpmap:0 PCMU/8000\r
26`:e.kind===`video`&&(o+=`m=video 0 UDP/TLS/RTP/SAVPF 120\r
27a=rtpmap:120 VP8/90000\r
28`),void(o+=`c=IN IP4 0.0.0.0\r
29a=inactive\r
30a=mid:`+e.mid+`\r
31`);var c;e.stream&&(e.kind===`audio`?c=e.stream.getAudioTracks()[0]:e.kind===`video`&&(c=e.stream.getVideoTracks()[0]),c&&15019<=t&&e.kind===`video`&&!e.sendEncodingParameters[0].rtx&&(e.sendEncodingParameters[0].rtx={ssrc:e.sendEncodingParameters[0].ssrc+1}));var l=a(e.localCapabilities,e.remoteCapabilities);!l.codecs.filter(function(e){return e.name.toLowerCase()===`rtx`}).length&&e.sendEncodingParameters[0].rtx&&delete e.sendEncodingParameters[0].rtx,o+=i(e,l,`answer`,e.stream,n._dtlsRole),e.rtcpParameters&&e.rtcpParameters.reducedSize&&(o+=`a=rtcp-rsize\r
32`)}});var l=new e.RTCSessionDescription({type:`answer`,sdp:o});return Promise.resolve(l)},u.prototype.addIceCandidate=function(e){var t,n=this;return e&&e.sdpMLineIndex===void 0&&!e.sdpMid?Promise.reject(TypeError(`sdpMLineIndex or sdpMid required`)):new Promise(function(i,a){if(!n._remoteDescription)return a(c(`InvalidStateError`,`Can not add ICE candidate without a remote description`));if(e&&e.candidate!==``){var o=e.sdpMLineIndex;if(e.sdpMid){for(var l=0;l<n.transceivers.length;l++)if(n.transceivers[l].mid===e.sdpMid){o=l;break}}var u=n.transceivers[o];if(!u)return a(c(`OperationError`,`Can not add ICE candidate`));if(u.rejected)return i();var d=0<Object.keys(e.candidate).length?r.parseCandidate(e.candidate):{};if(d.protocol===`tcp`&&(d.port===0||d.port===9)||d.component&&d.component!==1)return i();
32if((o===0||0<o&&u.iceTransport!==n.transceivers[0].iceTransport)&&!s(u.iceTransport,d))return a(c(`OperationError`,`Can not add ICE candidate`));var f=e.candidate.trim();f.indexOf(`a=`)===0&&(f=f.substr(2)),(t=r.getMediaSections(n._remoteDescription.sdp))[o]+=`a=`+(d.type?f:`end-of-candidates`)+`\r
33`,n._remoteDescription.sdp=r.getDescription(n._remoteDescription.sdp)+t.join(``)}else for(var p=0;p<n.transceivers.length&&(n.transceivers[p].rejected||(n.transceivers[p].iceTransport.addRemoteCandidate({}),(t=r.getMediaSections(n._remoteDescription.sdp))[p]+=`a=end-of-candidates\r
34`,n._remoteDescription.sdp=r.getDescription(n._remoteDescription.sdp)+t.join(``),!n.usingBundle));p++);i()})},u.prototype.getStats=function(t){if(t&&t instanceof e.MediaStreamTrack){var n=null;if(this.transceivers.forEach(function(e){e.rtpSender&&e.rtpSender.track===t?n=e.rtpSender:e.rtpReceiver&&e.rtpReceiver.track===t&&(n=e.rtpReceiver)}),!n)throw c(`InvalidAccessError`,`Invalid selector.`);return n.getStats()}var r=[];return this.transceivers.forEach(function(e){[`rtpSender`,`rtpReceiver`,`iceGatherer`,`iceTransport`,`dtlsTransport`].forEach(function(t){e[t]&&r.push(e[t].getStats())})}),Promise.all(r).then(function(e){var t=new Map;return e.forEach(function(e){e.forEach(function(e){t.set(e.id,e)})}),t})},[`RTCRtpSender`,`RTCRtpReceiver`,`RTCIceGatherer`,`RTCIceTransport`,`RTCDtlsTransport`].forEach(function(t){var n=e[t];if(n&&n.prototype&&n.prototype.getStats){var r=n.prototype.getStats;n.prototype.getStats=function(){return r.apply(this).then(function(e){var t=new Map;return Object.keys(e).forEach(function(n){e[n].type=function(e){return{inboundrtp:`inbound-rtp`,outboundrtp:`outbound-rtp`,candidatepair:`candidate-pair`,localcandidate:`local-candidate`,remotecandidate:`remote-candidate`}[e.type]||e.type}(e[n]),t.set(n,e[n])}),t})}}});var d=[`createOffer`,`createAnswer`];return d.forEach(function(e){var t=u.prototype[e];u.prototype[e]=function(){var e=arguments;return typeof e[0]==`function`||typeof e[1]==`function`?t.apply(this,[arguments[2]]).then(function(t){typeof e[0]==`function`&&e[0].apply(null,[t])},function(t){typeof e[1]==`function`&&e[1].apply(null,[t])}):t.apply(this,arguments)}}),(d=[`setLocalDescription`,`setRemoteDescription`,`addIceCandidate`]).forEach(function(e){var t=u.prototype[e];u.prototype[e]=function(){var e=arguments;return typeof e[1]==`function`||typeof e[2]==`function`?t.apply(this,arguments).then(function(){typeof e[1]==`function`&&e[1].apply(null)},function(t){typeof e[2]==`function`&&e[2].apply(null,[t])}):t.apply(this,arguments)}}),[`getStats`].forEach(function(e){var t=u.prototype[e];u.prototype[e]=function(){var e=arguments;return typeof e[1]==`function`?t.apply(this,arguments).then(function(){typeof e[1]==`function`&&e[1].apply(null)}):t.apply(this,arguments)}}),u}},{sdp:17}],17:[function(e,t,n){"use strict";var r={generateIdentifier:function(){return Math.random().toString(36).substr(2,10)}};r.localCName=r.generateIdentifier(),r.splitLines=function(e){return e.trim().split(`
35`).map(function(e){return e.trim()})},r.splitSections=function(e){return e.split(`
36m=`).map(function(e,t){return(0<t?`m=`+e:e).trim()+`\r
37`})},r.getDescription=function(e){var t=r.splitSections(e);return t&&t[0]},r.getMediaSections=function(e){var t=r.splitSections(e);return t.shift(),t},r.matchPrefix=function(e,t){return r.splitLines(e).filter(function(e){return e.indexOf(t)===0})},r.parseCandidate=function(e){for(var t,n={foundation:(t=e.indexOf(`a=candidate:`)===0?e.substring(12).split(` `):e.substring(10).split(` `))[0],component:parseInt(t[1],10),protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]},r=8;r<t.length;r+=2)switch(t[r]){case`raddr`:n.relatedAddress=t[r+1];break;case`rport`:n.relatedPort=parseInt(t[r+1],10);break;case`tcptype`:n.tcpType=t[r+1];break;case`ufrag`:n.ufrag=t[r+1],n.usernameFragment=t[r+1];break;default:n[t[r]]=t[r+1]}return n},r.writeCandidate=function(e){var t=[];t.push(e.foundation),t.push(e.component),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);var n=e.type;
37return t.push(`typ`),t.push(n),n!==`host`&&e.relatedAddress&&e.relatedPort&&(t.push(`raddr`),t.push(e.relatedAddress),t.push(`rport`),t.push(e.relatedPort)),e.tcpType&&e.protocol.toLowerCase()===`tcp`&&(t.push(`tcptype`),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push(`ufrag`),t.push(e.usernameFragment||e.ufrag)),`candidate:`+t.join(` `)},r.parseIceOptions=function(e){return e.substr(14).split(` `)},r.parseRtpMap=function(e){var t=e.substr(9).split(` `),n={payloadType:parseInt(t.shift(),10)};return t=t[0].split(`/`),n.name=t[0],n.clockRate=parseInt(t[1],10),n.channels=t.length===3?parseInt(t[2],10):1,n.numChannels=n.channels,n},r.writeRtpMap=function(e){var t=e.payloadType;e.preferredPayloadType!==void 0&&(t=e.preferredPayloadType);var n=e.channels||e.numChannels||1;return`a=rtpmap:`+t+` `+e.name+`/`+e.clockRate+(n===1?``:`/`+n)+`\r
38`},r.parseExtmap=function(e){var t=e.substr(9).split(` `);return{id:parseInt(t[0],10),direction:0<t[0].indexOf(`/`)?t[0].split(`/`)[1]:`sendrecv`,uri:t[1]}},r.writeExtmap=function(e){return`a=extmap:`+(e.id||e.preferredId)+(e.direction&&e.direction!==`sendrecv`?`/`+e.direction:``)+` `+e.uri+`\r
39`},r.parseFmtp=function(e){for(var t,n={},r=e.substr(e.indexOf(` `)+1).split(`;`),i=0;i<r.length;i++)n[(t=r[i].trim().split(`=`))[0].trim()]=t[1];return n},r.writeFmtp=function(e){var t=``,n=e.payloadType;if(e.preferredPayloadType!==void 0&&(n=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){var r=[];Object.keys(e.parameters).forEach(function(t){e.parameters[t]?r.push(t+`=`+e.parameters[t]):r.push(t)}),t+=`a=fmtp:`+n+` `+r.join(`;`)+`\r
40`}return t},r.parseRtcpFb=function(e){var t=e.substr(e.indexOf(` `)+1).split(` `);return{type:t.shift(),parameter:t.join(` `)}},r.writeRtcpFb=function(e){var t=``,n=e.payloadType;return e.preferredPayloadType!==void 0&&(n=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach(function(e){t+=`a=rtcp-fb:`+n+` `+e.type+(e.parameter&&e.parameter.length?` `+e.parameter:``)+`\r
41`}),t},r.parseSsrcMedia=function(e){var t=e.indexOf(` `),n={ssrc:parseInt(e.substr(7,t-7),10)},r=e.indexOf(`:`,t);return-1<r?(n.attribute=e.substr(t+1,r-t-1),n.value=e.substr(r+1)):n.attribute=e.substr(t+1),n},r.parseSsrcGroup=function(e){var t=e.substr(13).split(` `);return{semantics:t.shift(),ssrcs:t.map(function(e){return parseInt(e,10)})}},r.getMid=function(e){var t=r.matchPrefix(e,`a=mid:`)[0];if(t)return t.substr(6)},r.parseFingerprint=function(e){var t=e.substr(14).split(` `);return{algorithm:t[0].toLowerCase(),value:t[1]}},r.getDtlsParameters=function(e,t){return{role:`auto`,fingerprints:r.matchPrefix(e+t,`a=fingerprint:`).map(r.parseFingerprint)}},r.writeDtlsParameters=function(e,t){var n=`a=setup:`+t+`\r
42`;return e.fingerprints.forEach(function(e){n+=`a=fingerprint:`+e.algorithm+` `+e.value+`\r
43`}),n},r.getIceParameters=function(e,t){var n=r.splitLines(e);return{usernameFragment:(n=n.concat(r.splitLines(t))).filter(function(e){return e.indexOf(`a=ice-ufrag:`)===0})[0].substr(12),password:n.filter(function(e){return e.indexOf(`a=ice-pwd:`)===0})[0].substr(10)}},r.writeIceParameters=function(e){return`a=ice-ufrag:`+e.usernameFragment+`\r
44a=ice-pwd:`+e.password+`\r
45`},r.parseRtpParameters=function(e){for(var t={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},n=r.splitLines(e)[0].split(` `),i=3;i<n.length;i++){var a=n[i],o=r.matchPrefix(e,`a=rtpmap:`+a+` `)[0];if(o){var s=r.parseRtpMap(o),c=r.matchPrefix(e,`a=fmtp:`+a+` `);switch(s.parameters=c.length?r.parseFmtp(c[0]):{},s.rtcpFeedback=r.matchPrefix(e,`a=rtcp-fb:`+a+` `).map(r.parseRtcpFb),t.codecs.push(s),s.name.toUpperCase()){case`RED`:case`ULPFEC`:t.fecMechanisms.push(s.name.toUpperCase())}}}return r.matchPrefix(e,`a=extmap:`).forEach(function(e){t.headerExtensions.push(r.parseExtmap(e))}),t},r.writeRtpDescription=function(e,t){var n=``;n+=`m=`+e+` `,n+=0<t.codecs.length?`9`:`0`,n+=` UDP/TLS/RTP/SAVPF `,n+=t.codecs.map(function(e){return e.preferredPayloadType===void 0?e.payloadType:e.preferredPayloadType}).join(` `)+`\r
46`,n+=`c=IN IP4 0.0.0.0\r
47`,n+=`a=rtcp:9 IN IP4 0.0.0.0\r
48`,t.codecs.forEach(function(e){n+=r.writeRtpMap(e),n+=r.writeFmtp(e),n+=r.writeRtcpFb(e)});var i=0;return t.codecs.forEach(function(e){e.maxptime>i&&(i=e.maxptime)}),0<i&&(n+=`a=maxptime:`+i+`\r
49`),n+=`a=rtcp-mux\r
50`,t.headerExtensions&&t.headerExtensions.forEach(function(e){n+=r.writeExtmap(e)}),n},r.parseRtpEncodingParameters=function(e){var t,n=[],i=r.parseRtpParameters(e),a=i.fecMechanisms.indexOf(`RED`)!==-1,o=i.fecMechanisms.indexOf(`ULPFEC`)!==-1,s=r.matchPrefix(e,`a=ssrc:`).map(function(e){return r.parseSsrcMedia(e)}).filter(function(e){return e.attribute===`cname`}),c=0<s.length&&s[0].ssrc,l=r.matchPrefix(e,`a=ssrc-group:FID`).map(function(e){return e.substr(17).split(` `).map(function(e){return parseInt(e,10)})});0<l.length&&1<l[0].length&&l[0][0]===c&&(t=l[0][1]),i.codecs.forEach(function(e){if(e.name.toUpperCase()===`RTX`&&e.parameters.apt){var r={ssrc:c,codecPayloadType:parseInt(e.parameters.apt,10)};c&&t&&(r.rtx={ssrc:t}),n.push(r),a&&((r=JSON.parse(JSON.stringify(r))).fec={ssrc:c,mechanism:o?`red+ulpfec`:`red`},n.push(r))}}
50),n.length===0&&c&&n.push({ssrc:c});var u=r.matchPrefix(e,`b=`);return u.length&&(u=u[0].indexOf(`b=TIAS:`)===0?parseInt(u[0].substr(7),10):u[0].indexOf(`b=AS:`)===0?1e3*parseInt(u[0].substr(5),10)*.95-16e3:void 0,n.forEach(function(e){e.maxBitrate=u})),n},r.parseRtcpParameters=function(e){var t={},n=r.matchPrefix(e,`a=ssrc:`).map(function(e){return r.parseSsrcMedia(e)}).filter(function(e){return e.attribute===`cname`})[0];n&&(t.cname=n.value,t.ssrc=n.ssrc);var i=r.matchPrefix(e,`a=rtcp-rsize`);return t.reducedSize=0<i.length,t.compound=i.length===0,t.mux=0<r.matchPrefix(e,`a=rtcp-mux`).length,t},r.parseMsid=function(e){var t,n=r.matchPrefix(e,`a=msid:`);if(n.length===1)return{stream:(t=n[0].substr(7).split(` `))[0],track:t[1]};var i=r.matchPrefix(e,`a=ssrc:`).map(function(e){return r.parseSsrcMedia(e)}).filter(function(e){return e.attribute===`msid`});return 0<i.length?{stream:(t=i[0].value.split(` `))[0],track:t[1]}:void 0},r.parseSctpDescription=function(e){var t,n=r.parseMLine(e),i=r.matchPrefix(e,`a=max-message-size:`);0<i.length&&(t=parseInt(i[0].substr(19),10)),isNaN(t)&&(t=65536);var a=r.matchPrefix(e,`a=sctp-port:`);if(0<a.length)return{port:parseInt(a[0].substr(12),10),protocol:n.fmt,maxMessageSize:t};if(0<r.matchPrefix(e,`a=sctpmap:`).length){var o=r.matchPrefix(e,`a=sctpmap:`)[0].substr(10).split(` `);return{port:parseInt(o[0],10),protocol:o[1],maxMessageSize:t}}},r.writeSctpDescription=function(e,t){var n=[];return n=e.protocol===`DTLS/SCTP`?[`m=`+e.kind+` 9 `+e.protocol+` `+t.port+`\r
51`,`c=IN IP4 0.0.0.0\r
52`,`a=sctpmap:`+t.port+` `+t.protocol+` 65535\r
53`]:[`m=`+e.kind+` 9 `+e.protocol+` `+t.protocol+`\r
54`,`c=IN IP4 0.0.0.0\r
55`,`a=sctp-port:`+t.port+`\r
56`],t.maxMessageSize!==void 0&&n.push(`a=max-message-size:`+t.maxMessageSize+`\r
57`),n.join(``)},r.generateSessionId=function(){return Math.random().toString().substr(2,21)},r.writeSessionBoilerplate=function(e,t,n){var i=t===void 0?2:t;return`v=0\r
58o=`+(n||`thisisadapterortc`)+` `+(e||r.generateSessionId())+` `+i+` IN IP4 127.0.0.1\r
59s=-\r
60t=0 0\r
61`},r.writeMediaSection=function(e,t,n,i){var a=r.writeRtpDescription(e.kind,t);if(a+=r.writeIceParameters(e.iceGatherer.getLocalParameters()),a+=r.writeDtlsParameters(e.dtlsTransport.getLocalParameters(),n===`offer`?`actpass`:`active`),a+=`a=mid:`+e.mid+`\r
62`,e.direction?a+=`a=`+e.direction+`\r
63`:e.rtpSender&&e.rtpReceiver?a+=`a=sendrecv\r
64`:e.rtpSender?a+=`a=sendonly\r
65`:e.rtpReceiver?a+=`a=recvonly\r
66`:a+=`a=inactive\r
67`,e.rtpSender){var o=`msid:`+i.id+` `+e.rtpSender.track.id+`\r
68`;a+=`a=`+o,a+=`a=ssrc:`+e.sendEncodingParameters[0].ssrc+` `+o,e.sendEncodingParameters[0].rtx&&(a+=`a=ssrc:`+e.sendEncodingParameters[0].rtx.ssrc+` `+o,a+=`a=ssrc-group:FID `+e.sendEncodingParameters[0].ssrc+` `+e.sendEncodingParameters[0].rtx.ssrc+`\r
69`)}return a+=`a=ssrc:`+e.sendEncodingParameters[0].ssrc+` cname:`+r.localCName+`\r
70`,e.rtpSender&&e.sendEncodingParameters[0].rtx&&(a+=`a=ssrc:`+e.sendEncodingParameters[0].rtx.ssrc+` cname:`+r.localCName+`\r
71`),a},r.getDirection=function(e,t){for(var n=r.splitLines(e),i=0;i<n.length;i++)switch(n[i]){case`a=sendrecv`:case`a=sendonly`:case`a=recvonly`:case`a=inactive`:return n[i].substr(2)}return t?r.getDirection(t):`sendrecv`},r.getKind=function(e){return r.splitLines(e)[0].split(` `)[0].substr(2)},r.isRejected=function(e){return e.split(` `,2)[1]===`0`},r.parseMLine=function(e){var t=r.splitLines(e)[0].substr(2).split(` `);return{kind:t[0],port:parseInt(t[1],10),protocol:t[2],fmt:t.slice(3).join(` `)}},r.parseOLine=function(e){var t=r.matchPrefix(e,`o=`)[0].substr(2).split(` `);return{username:t[0],sessionId:t[1],sessionVersion:parseInt(t[2],10),netType:t[3],addressType:t[4],address:t[5]}},r.isValidSDP=function(e){if(typeof e!=`string`||e.length===0)return!1;for(var t=r.splitLines(e),n=0;n<t.length;n++)if(t[n].length<2||t[n].charAt(1)!==`=`)return!1;return!0},typeof t==`object`&&(t.exports=r)},{}]},{},[1])(1)}),(function(e,n){typeof t==`object`&&t.exports?(t.exports=n(),window.Spinner=n()):typeof define==`function`&&define.amd?define(n):e.Spinner=n()})(e,function(){"use strict";function e(e,t){var n,r=document.createElement(e||`div`);for(n in t)r[n]=t[n];return r}function t(e){for(var t=1,n=arguments.length;n>t;t++)e.appendChild(arguments[t]);return e}function n(e,t,n,r){var i=[`opacity`,t,~~(100*e),n,r].join(`-`),a=.01+n/r*100,o=Math.max(1-(1-e)/t*(100-a),e),s=l.substring(0,l.indexOf(`Animation`)).toLowerCase(),c=s&&`-`+s+`-`||``;return f[i]||(u.insertRule(`@`+c+`keyframes `+i+`{0%{opacity:`+o+`}`+a+`%{opacity:`+e+`}`+(a+.01)+`%{opacity:1}`+(a+t)%100+`%{opacity:`+e+`}100%{opacity:`+o+`}}`,u.cssRules.length),f[i]=1),i}function r(e,t){var n,r,i=e.style;if(t=t.charAt(0).toUpperCase()+t.slice(1),i[t]!==void 0)return t;for(r=0;r<d.length;r++)if(n=d[r]+t,i[n]!==void 0)return n}function i(e,t){for(var n in t)e.style[r(e,n)||n]=t[n];return e}function a(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)e[r]===void 0&&(e[r]=n[r])}return e}function o(e,t){return typeof e==`string`?e:e[t%e.length]}function s(e){this.opts=a(e||{},s.defaults,p)}function c(){function n(t,n){return e(`<`+t+` xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">`,n)}u.addRule(`.spin-vml`,`behavior:url(#default#VML)`),s.prototype.lines=function(e,r){function a(){return i(n(`group`,{coordsize:u+` `+u,coordorigin:-l+` `+-l}),{width:u,height:u})}function s(e,s,c){t(f,t(i(a(),{rotation:360/r.lines*e+`deg`,left:~~s}),t(i(n(`roundrect`,{arcsize:r.corners}),{width:l,height:r.scale*r.width,left:r.scale*r.radius,top:-r.scale*r.width>>1,filter:c}),n(`fill`,{color:o(r.color,e),opacity:r.opacity}),n(`stroke`,{opacity:0}
71))))}var c,l=r.scale*(r.length+r.width),u=2*r.scale*l,d=-(r.width+r.length)*r.scale*2+`px`,f=i(a(),{position:`absolute`,top:d,left:d});if(r.shadow)for(c=1;c<=r.lines;c++)s(c,-2,`progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)`);for(c=1;c<=r.lines;c++)s(c);return t(e,f)},s.prototype.opacity=function(e,t,n,r){var i=e.firstChild;r=r.shadow&&r.lines||0,i&&t+r<i.childNodes.length&&(i=i.childNodes[t+r],i&&=i.firstChild,i&&=i.firstChild,i&&(i.opacity=n))}}var l,u,d=[`webkit`,`Moz`,`ms`,`O`],f={},p={lines:12,length:7,width:5,radius:10,scale:1,corners:1,color:`#000`,opacity:.25,rotate:0,direction:1,speed:1,trail:100,fps:20,zIndex:2e9,className:`spinner`,top:`50%`,left:`50%`,shadow:!1,hwaccel:!1,position:`absolute`};if(s.defaults={},a(s.prototype,{spin:function(t){this.stop();var n=this,r=n.opts,a=n.el=e(null,{className:r.className});if(i(a,{position:r.position,width:0,zIndex:r.zIndex,left:r.left,top:r.top}),t&&t.insertBefore(a,t.firstChild||null),a.setAttribute(`role`,`progressbar`),n.lines(a,n.opts),!l){var o,s=0,c=(r.lines-1)*(1-r.direction)/2,u=r.fps,d=u/r.speed,f=(1-r.opacity)/(d*r.trail/100),p=d/r.lines;(function e(){s++;for(var t=0;t<r.lines;t++)o=Math.max(1-(s+(r.lines-t)*p)%d*f,r.opacity),n.opacity(a,t*r.direction+c,o,r);n.timeout=n.el&&setTimeout(e,~~(1e3/u))})()}return n},stop:function(){var e=this.el;return e&&(clearTimeout(this.timeout),e.parentNode&&e.parentNode.removeChild(e),this.el=void 0),this},lines:function(r,a){function s(t,n){return i(e(),{position:`absolute`,width:a.scale*(a.length+a.width)+`px`,height:a.scale*a.width+`px`,background:t,boxShadow:n,transformOrigin:`left`,transform:`rotate(`+~~(360/a.lines*u+a.rotate)+`deg) translate(`+a.scale*a.radius+`px,0)`,borderRadius:(a.corners*a.scale*a.width>>1)+`px`})}for(var c,u=0,d=(a.lines-1)*(1-a.direction)/2;u<a.lines;u++)c=i(e(),{position:`absolute`,top:1+~(a.scale*a.width/2)+`px`,transform:a.hwaccel?`translate3d(0,0,0)`:``,opacity:a.opacity,animation:l&&n(a.opacity,a.trail,d+u*a.direction,a.lines)+` `+1/a.speed+`s linear infinite`}),a.shadow&&t(c,i(s(`#000`,`0 0 4px #000`),{top:`2px`})),t(r,t(c,s(o(a.color,u),`0 0 1px rgba(0,0,0,.1)`)));return r},opacity:function(e,t,n){t<e.childNodes.length&&(e.childNodes[t].style.opacity=n)}}),typeof document<`u`){u=function(){var n=e(`style`,{type:`text/css`});return t(document.getElementsByTagName(`head`)[0],n),n.sheet||n.styleSheet}();var m=i(e(`group`),{behavior:`url(#default#VML)`});!r(m,`transform`)&&m.adj?c():l=r(m,`animation`)}return s}),(function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,`__esModule`,{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t||4&t&&typeof e==`object`&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,`default`,{enumerable:!0,value:e}),2&t&&typeof e!=`string`)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=0)})([function(e,t){function n(e,t){pluginHandle.consentDialog(!1),e?callbacks.error(e):streamsDone(handleId,jsep,media,callbacks,t)}function r(e,t,n){a.log(`Adding media constraint (screen capture)`),a.debug(e),navigator.mediaDevices.getUserMedia(e).then((function(e){n?navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then((function(n){e.addTrack(n.getAudioTracks()[0]),t(null,e)})):t(null,e)})).catch((function(e){pluginHandle.consentDialog(!1),t(e)}))}a.sessions={},a.isExtensionEnabled=function(){if(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)return!0;if(window.navigator.userAgent.match(`Chrome`)){var e=parseInt(window.navigator.userAgent.match(/Chrome\/(.*) /)[1],10),t=33;return window.navigator.userAgent.match(`Linux`)&&(t=35),e>=26&&e<=t||a.extension.isInstalled()}return!0};var i={extensionId:`hapfgfdkleiggjjpfpenajgdnfckjpaj`,isInstalled:function(){return document.querySelector(`#janus-extension-installed`)!==null},getScreen:function(e){var t=window.setTimeout((function(){let t=Error(`NavigatorUserMediaError`);return t.name=`The required Chrome extension is not installed: click <a href="#">here</a> to install it. (NOTE: this will need you to refresh the page)`,e(t)}),1e3);this.cache[t]=e,window.postMessage({type:`janusGetScreen`,id:t},`*`)},init:function(){var e={};this.cache=e,window.addEventListener(`message`,(function(t){if(t.origin==window.location.origin)if(t.data.type==`janusGotScreen`&&e[t.data.id]){var n=e[t.data.id];if(delete e[t.data.id],t.data.sourceId===``){var r=Error(`NavigatorUserMediaError`);r.name=`You cancelled the request for permission, giving up...`,n(r)}else n(null,t.data.sourceId)}else t.data.type==`janusGetScreenPending`&&(console.log(`clearing `,t.data.id),window.clearTimeout(t.data.id))}))}};function a(e){if(a.initDone===void 0)return e.error(`Library not initialized`),{};if(!a.isWebrtcSupported())return e.error(`WebRTC not supported by this browser`),{};if(a.log(`Library initialized: `+a.initDone),(e||={}).success=typeof e.success==`function`?e.success:a.noop,e.error=typeof e.error==`function`?e.error:a.noop,e.destroyed=typeof e.destroyed==`function`?e.destroyed:a.noop,e.onmessage=typeof e.onmessage==`function`?e.onmessage:a.noop,e.onuserevent=typeof e.onuserevent==`function`?e.onuserevent:a.noop,e.onsessionevent=typeof e.onsessionevent==`function`?e.onse
71ssionevent:a.noop,e.onsetup=typeof e.onsetup==`function`?e.onsetup:a.noop,e.server===null||e.server===void 0)return e.error(`Invalid server url`),{};var t=!1,i=null,o={},s=null,c=null,l=0,u=e.server;a.isArray(u)?(a.log(`Multiple servers provided (`+u.length+`), will use the first that works`),u=null,c=e.server,a.debug(c)):u.indexOf(`ws`)===0?(t=!0,a.log(`Using WebSockets to contact Janus: `+u)):(t=!1,a.log(`Using REST API to contact Janus: `+u));var d=e.iceServers,f=e.iceTransportPolicy,p=e.bundlePolicy,m=e.ipv6;m??=!1;var h=!1;e.withCredentials!==void 0&&e.withCredentials!==null&&(h=!0===e.withCredentials);var g=10;e.max_poll_events!==void 0&&e.max_poll_events!==null&&(g=e.max_poll_events),g<1&&(g=1);var _=null;e.token!==void 0&&e.token!==null&&(_=e.token);var v=null;e.apisecret!==void 0&&e.apisecret!==null&&(v=e.apisecret),this.destroyOnUnload=!0,e.destroyOnUnload!==void 0&&e.destroyOnUnload!==null&&(this.destroyOnUnload=!0===e.destroyOnUnload);var y=25e3;e.keepAlivePeriod!==void 0&&e.keepAlivePeriod!==null&&(y=e.keepAlivePeriod),isNaN(y)&&(y=25e3);var b=6e4;e.longPollTimeout!==void 0&&e.longPollTimeout!==null&&(b=e.longPollTimeout),isNaN(b)&&(b=6e4);var x=!1,S=null,C=``,w=0,T={},E=this,D=0,O={},k=`brtc_v0`,A=e.userid,j=`janus`,M=`janus-protocol`;function N(){if(S!=null)if(a.debug(`Long poll...`),x){var t=u+`/`+S+`?rid=`+new Date().getTime();g!=null&&(t=t+`&maxev=`+g),_!=null&&(t=t+`&token=`+encodeURIComponent(_)),v!=null&&(t=t+`&apisecret=`+encodeURIComponent(v)),a.httpAPICall(t,{verb:`GET`,withCredentials:h,success:P,timeout:b,error:function(t,n){if(a.error(t+`:`,n),++D>3)return x=!1,void e.error(`Lost connection to the server (is it down?)`);N()}})}else a.warn(`Is the server down? (connected=false)`)}function P(n,r){if(D=0,t||S==null||!0===r||N(),t||!a.isArray(n))if(n[j]!==`keepalive`)if(n[j]!==`ack`)if(n[j]!==`success`)if(n[j]!==`bdcrender`)if(n[j]===`trickle`){if((c=n.sender)==null)return void a.warn(`Missing sender...`);if((u=T[c])==null)return void a.debug(`This handle is not attached to this session`);var o=n.candidate;a.debug(`Got a trickled candidate on session `+S),a.debug(o);var s=u.webrtcStuff;s.pc&&s.remoteSdp?(a.debug(`Adding remote candidate:`,o),o&&!0!==o.completed?s.pc.addIceCandidate(o):s.pc.addIceCandidate()):(a.debug(`We didn't do setRemoteDescription (trickle got here before the offer?), caching candidate`),s.candidates||=[],s.candidates.push(o),a.debug(s.candidates))}else{if(n[j]===`webrtcup`)return a.debug(`Got a webrtcup event on session `+S),a.debug(n),(c=n.sender)==null?void a.warn(`Missing sender...`):(u=T[c])==null?void a.debug(`This handle is not attached to this session`):void u.webrtcState(!0);if(n[j]===`hangup`){if(a.debug(`Got a hangup event on session `+S),a.debug(n),(c=n.sender)==null)return void a.warn(`Missing sender...`);if((u=T[c])==null)return void a.debug(`This handle is not attached to this session`);u.webrtcState(!1,n.reason),u.hangup()}else if(n[j]===`detached`){if(a.debug(`Got a detached event on session `+S),a.debug(n),(c=n.sender)==null)return void a.warn(`Missing sender...`);if((u=T[c])==null)return;u.detached=!0,u.ondetached(),u.detach()}else if(n[j]===`media`){if(a.debug(`Got a media event on session `+S),a.debug(n),(c=n.sender)==null)return void a.warn(`Missing sender...`);if((u=T[c])==null)return void a.debug(`This handle is not attached to this session`);u.mediaState(n.type,n.receiving||n.sending)}else if(n[j]===`slowlink`){if(a.debug(`Got a slowlink event on session `+S),a.debug(n),(c=n.sender)==null)return void a.warn(`Missing sender...`);if((u=T[c])==null)return void a.debug(`This handle is not attached to this session`);u.slowLink(n.uplink,n.nacks)}else{if(n[j]===`error`){a.error(`Ooops: `+n.error.code+` `+n.error.reason),k!==`brtc_v0`&&e.error(`ServerErrorEvent: code:`+n.error.code+`, reason:`+n.error.reason,n.error.code,n.error.reason),a.debug(n),(h=n.transaction)!=null&&((g=O[h])!=null&&g(n),delete O[h]);return}if(n[j]===`event`){var c;if(a.debug(`Got a plugin event on session `+S),a.debug(n),(c=n.sender)==null){var l=n.recvdata;if(l!=null)return void a.sessions[S].onmessage(l);n.detached==null?a.warn(`Missing sender...`):a.sessions[S].onuserevent
71(n);return}if((m=n.plugindata)==null)return void a.warn(`Missing plugindata...`);a.debug(`  -- Event is coming from `+c+` (`+m.plugin+`)`);var u,d=m.data;if(a.debug(d),(u=T[c])==null)return void a.warn(`This handle is not attached to this session`);var f=n.jsep;f!=null&&(a.debug(`Handling SDP as well...`),a.debug(f));var p=u.onmessage;p==null?a.debug(`No provided notification callback`):(a.debug(`Notifying application...`),p(d,f))}else{if(n[j]===`timeout`)return a.error(`Timeout on session `+S),a.debug(n),void(t&&i.close(3504,`Gateway timeout`));var m;if(n[j]===`userevent`)return(m=n.plugindata)==null?void a.warn(`Missing plugindata...`):(d=m.data)==null?void a.warn(`Missing plugindata['data']...`):n.plugindata?void a.sessions[S].onuserevent(d):void 0;if(n[j]===`sessionevent`)return void(a.sessions[S]&&a.sessions[S].onsessionevent(n));if(n[j]===`setuped`||n[j]===`brtc_joined`){a.debug(`Got a setuped/brtc_joined`),a.debug(n),(h=n.transaction)!=null&&((g=O[h])!=null&&g(n),delete O[h]);return}a.warn(`Unknown message/event  '`+n[j]+`' on session `+S),a.debug(n)}}}else{var h,g;if(a.debug(`Got a bdcrender on session `+S),a.debug(n),(h=n.transaction)!=null&&typeof n.status==`string`&&((g=O[h])!=null&&g(n),g))return void delete O[h];n.action===`event`&&a.sessions[S].onbdcrevent(n)}else a.debug(`Got a success on session `+S),a.debug(n),(h=n.transaction)!=null&&((g=O[h])!=null&&g(n),delete O[h]);else a.debug(`Got an ack on session `+S),a.debug(n),(h=n.transaction)!=null&&((g=O[h])!=null&&g(n),delete O[h]);else a.vdebug(`Got a keepalive on session `+S);else for(var _=0;_<n.length;_++)P(n[_],!0)}function F(){if(u!==null&&t&&x){s=setTimeout(F,y);var e={[j]:`keepalive`,session_id:S,transaction:a.randomString(12),ts:new Date().toLocaleString()};_!=null&&(e.token=_),v!=null&&(e.apisecret=v),i.send(JSON.stringify(e))}}function I(n){var r=a.randomString(12),d={[j]:`create`,transaction:r};if(n.mediaserverip!==void 0&&n.mediaserverip!==null&&(d.janusIp=n.mediaserverip),n.clientip!==void 0&&n.clientip!==null&&(d.clientTcpIp=n.clientip),n.clientudpip!==void 0&&n.clientudpip!==null&&(d.clientUdpIp=n.clientudpip),n.sdktag!==void 0&&n.sdktag!==null&&(d.sdktag=n.sdktag),d.uri=u.split(`?`)[0],n.userevent!==void 0&&!1!==n.userevent&&(d.userevent=n.userevent),n.sessionevent!==void 0&&!1!==n.sessionevent&&(d.sessionevent=n.sessionevent),typeof n.rigidpull==`boolean`&&n.rigidpull&&(d.rigidPull=n.rigidpull),n.reconnect&&(x=!1,d[j]=`claim`,d.session_id=S,i&&(i.onopen=null,i.onerror=null,i.onclose=null,s&&=(clearTimeout(s),null))),_!=null&&(d.token=_),v!=null&&(d.apisecret=v),u===null&&a.isArray(c)&&((u=c[l]).indexOf(`ws`)===0?(t=!0,a.log(`Server #`+(l+1)+`: trying WebSockets to contact Janus (`+u+`)`)):(t=!1,a.log(`Server #`+(l+1)+`: trying REST API to contact Janus (`+u+`)`))),t)for(var f in i=a.newWebSocket(u,M),o={error:function(){if(a.error(`Error connecting to the Janus WebSockets server... `+u),a.isArray(c)&&!n.reconnect)return++l==c.length?void n.error(`Error connecting to any of the provided Janus servers: Is the server down?`):(u=null,void setTimeout((function(){I(n)}),200));n.error(`Error connecting to the Janus WebSockets server: Is the server down?`)},open:function(){O[r]=function(e){if(a.debug(e),e[j]!==`success`)return a.error(`Ooops: `+e.error.code+` `+e.error.reason),void n.error(e.error.reason);s=setTimeout(F,y),x=!0,S=e.session_id?e.session_id:e.data.id,e.data.uid&&e.data.roomName&&(C=e.data.roomName,w=e.data.uid),n.reconnect?a.log(`Claimed session: `+S):a.log(`Created session: `+S),a.sessions[S]=E,e.data.version&&(k=e.data.version),n.success(e.data)},i.send(JSON.stringify(d))},message:function(e){P(JSON.parse(e.data))},close:function(){u!==null&&x&&(x=!1,e.error(`Lost connection to the server (is it down?)`))}})i.addEventListener(f,o[f]);else a.httpAPICall(u,{verb:`POST`,withCredentials:h,body:d,success:function(e){if(a.debug(e),e[j]!==`success`)return a.error(`Ooops: `+e.error.code+` `+e.error.reason),void n.error(e.error.reason);x=!0,S=e.session_id?e.session_id:e.data.id,n.reconnect?a.log(`Claimed session: `+S):a.log(`Created session: `+S),a.sessions[S]=E,N(),n.success()},error:function(e,t){if(a.error(e+`:`,t),a.isArray(c)&&!n.reconnect)return++l==c.length?void n.error(`Error c
71onnecting to any of the provided Janus servers: Is the server down?`):(u=null,void setTimeout((function(){I(n)}),200));t===``?n.error(e+`: Is the server down?`):n.error(e+`: `+t)}})}function L(e,t,n,r,i){if(a.debug(t),t[j]!==`success`&&t[j]!==`setuped`)return a.error(`Ooops: `+t.error.code+` `+t.error.reason),void e.error(`Ooops: `+t.error.code+` `+t.error.reason);var o;t[j]===`success`?o=t.data.id:t[j]===`setuped`&&(o=t.data.handle_id),a.log(`Created handle: `+o);var s={session:E,plugin:n,id:o,token:r,detached:!1,webrtcStuff:{started:!1,myStream:null,streamExternal:!1,remoteStream:null,mySdp:null,mediaConstraints:null,pc:null,outerpc:i,dataChannel:{},dtmfSender:null,trickle:!0,iceDone:!1,volume:{value:null,timer:null},bitrate:{value:null,bsnow:null,bsbefore:null,tsnow:null,tsbefore:null,timer:null},fps:{value:null,fsnow:null,fsbefore:null,tsnow:null,tsbefore:null,timer:null},stats:null},getId:function(){return o},getPlugin:function(){return n},getVolume:function(){return ie(o,!0)},getRemoteVolume:function(){return ie(o,!0)},getLocalVolume:function(){return ie(o,!1)},isAudioMuted:function(){return ae(o,!1)},muteAudio:function(){return W(o,!1,!0)},unmuteAudio:function(){return W(o,!1,!1)},isVideoMuted:function(){return ae(o,!0)},muteVideo:function(){return W(o,!0,!0)},unmuteVideo:function(){return W(o,!0,!1)},getBitrate:function(){return G(o)},getFps:function(){return function(e){var t=T[e];if(t==null||t.webrtcStuff===null||t.webrtcStuff===void 0)return a.warn(`Invalid handle`),0;var n=t.webrtcStuff;return n.pc===null||n.pc===void 0?0:n.pc.getStats?n.fps.timer===null||n.fps.timer===void 0?(a.log(`Starting framerate timer (via getStats)`),n.fps.timer=setInterval((function(){n.pc.getStats().then((function(e){e.forEach((function(e){if(e){var t=!1;if((e.mediaType===`video`||e.id.toLowerCase().indexOf(`video`)>-1)&&e.type===`inbound-rtp`&&e.id.indexOf(`rtcp`)<0?t=!0:e.type!=`ssrc`||!e.framesReceived||e.googCodecName!==`VP8`&&e.googCodecName!==``||(t=!0),t)if(n.fps.fsnow=e.framesDecoded,n.fps.tsnow=e.timestamp,n.fps.bsbefore===null||n.fps.tsbefore===null)n.fps.fsbefore=n.fps.fsnow,n.fps.tsbefore=n.fps.tsnow;else{var r=n.fps.tsnow-n.fps.tsbefore;a.webRTCAdapter.browserDetails.browser==`safari`&&(r/=1e3);var i=Math.round(1e3*(n.fps.fsnow-n.fps.fsbefore)/r);a.webRTCAdapter.browserDetails.browser===`safari`&&(i=parseInt(i/1e3)),n.fps.value=i,n.fps.fsbefore=n.fps.fsnow,n.fps.tsbefore=n.fps.tsnow}}}))}))}),1e3),0):n.fps.value:(a.warn(`Getting the video framerate unsupported by browser`),0)}(o)},getStatsInfo:function(e){return function(e,t){var n=T[e];if(n==null||n.webrtcStuff===null||n.webrtcStuff===void 0)return null;var r=n.webrtcStuff;return r.pc===null||r.pc===void 0?null:r.pc.getStats?(r.pc.getStats().then((function(e){e.forEach((function(e){t.log(e)}))})),r.stats):null}(o,e)},getLocalStats:function(e,t,n){return function(e,t,n,r){var i=T[e];if(i==null||i.webrtcStuff===null||i.webrtcStuff===void 0)return a.warn(`Invalid handle`),`Invalid handle`;var o=i.webrtcStuff;if(o.pc===null||o.pc===void 0)return`Invalid PeerConnection`;o.pc.getStats&&o.pc.getStats().then((function(e){if(n%t==0){let t={};e.forEach(n=>{let r,i,a;if(n.type===`outbound-rtp`){if(n.isRemote)return;let o=n.timestamp;if(r=n.bytesSent,i=n.packetsSent,a=n.retransmittedPacketsSent,K&&K.has(n.id)){let s=(o-K.get(n.id).timestamp)/1e3,c=8*(r-K.get(n.id).bytesSent)/s/1e3;if(c=parseInt(c,10),n.kind===`video`||n.mediaType===`video`){t.videoBitrate=c,t.videoBytesSent=r;let o=e.get(n.trackId),l=o?o.frameWidth:0,u=o?o.frameHeight:0,d=o?o.framesSent:0,f=K.get(n.id).trackId,p=f?(d-K.get(f).framesSent)/s:0;p=parseInt(p,10),t.frameWidth=l,t.frameHeight=u,t.fps=p,t.videoPacketsSent=i,t.videoPacketsLost=a}else n.kind!==`audio`&&n.mediaType!==`audio`||(t.audioBitrate=c,t.audioBytesSent=r,t.audioPacketsSent=i,t.audioPacketsLost=a)}if(q&&q.has(n.id)){let i=(o-q.get(n.id).timestamp)/1e3,a=8*(r-q.get(n.id).bytesSent)/i/1e3;if(a=parseInt(a,10),n.kind===`video`||n.mediaType===`video`){t.videoAverageBitrate=a;let r=n.trackId?e.get(n.trackId).framesSent:0,o=q.get(n.id).trackId,s=o?(r-q.get(o).framesSent)/i:0;s=parseInt(s,10),t.averageFps=s}else n.kind!==`audio`&&n.mediaType!==`audio`||(t.audioAverageBitrate=a)}}else if(n.type===`candidate-pair`){let e=1e3*n.currentRoundTripTime;e=parseInt(e,10),t.rtt=e}t.timestamp=parseInt(n.timestamp,10)}),q?r.success(t):r.error(),q=e}else r.error();K=e}))}(o,e,t,n)},getRemoteStats:function(e,t,n){return function(e,t,n,r){var i=T[e];
71if(i==null||i.webrtcStuff===null||i.webrtcStuff===void 0)return a.warn(`Invalid handle`),`Invalid handle`;var o=i.webrtcStuff;if(o.pc===null||o.pc===void 0)return`Invalid PeerConnection`;o.pc.getStats&&o.pc.getStats().then((function(i){if(n%t==0){let t={};i.forEach(n=>{let r,o,s;if(n.type===`inbound-rtp`){let c=n.timestamp;r=n.bytesReceived,o=n.packetsReceived,s=n.packetsLost;let l=oe[e];if(l&&l.has(n.id)){let e=(c-l.get(n.id).timestamp)/1e3,u=8*(r-l.get(n.id).bytesReceived)/e/1e3;if(u=parseInt(u,10),n.kind===`video`||n.mediaType===`video`){t.videoBitrate=u,t.videoBytesReceived=r;let c=n.trackId?i.get(n.trackId):null,d=c?c.framesReceived:0,f=l.get(n.id).trackId,p=f?(d-l.get(f).framesReceived)/e:0;p=parseInt(p,10);let m=c?c.frameWidth:0,h=c?c.frameHeight:0;if(t.frameWidth=m,t.frameHeight=h,t.fps=p,t.videoPacketsReceived=o,t.videoPacketsLost=s,a.webRTCAdapter.browserDetails.browser!==`safari`){let e=c?c.jitterBufferDelay:0,n=c?c.jitterBufferEmittedCount:0,r=e/n*1e3;t.jitterBufferDelay=parseInt(e,10),t.jitterBufferEmittedCount=n,t.jitterBufferMs=parseInt(r,10)}}else n.kind!==`audio`&&n.mediaType!==`audio`||(t.audioBitrate=u,t.audioBytesReceived=r,t.audioPacketsReceived=o,t.audioPacketsLost=s)}let u=J[e];if(u&&u.has(n.id)){let e=(c-u.get(n.id).timestamp)/1e3,a=8*(r-u.get(n.id).bytesReceived)/e/1e3;if(a=parseInt(a,10),n.kind===`video`||n.mediaType===`video`){t.videoAverageBitrate=a;let r=n.trackId?i.get(n.trackId).framesReceived:0,o=u.get(n.id).trackId,s=o?(r-u.get(o).framesReceived)/e:0;s=parseInt(s,10),t.averageFps=s}else n.kind!==`audio`&&n.mediaType!==`audio`||(t.audioAverageBitrate=a)}}else if(n.type===`candidate-pair`){let e=1e3*n.currentRoundTripTime;e=parseInt(e,10),t.rtt=e}t.timestamp=parseInt(n.timestamp,10)}),J[e]?r.success(t):r.error(),J[e]=i}else r.error();oe[e]=i}))}(o,e,t,n)},getSsrcs:function(){return function(e){var t=T[e];if(t==null||t.webrtcStuff===null||t.webrtcStuff===void 0)return void a.warn(`Invalid handle`);var n=t.webrtcStuff;if(n.pc===null||n.pc===void 0)return null;var r=n.pc.getTransceivers();if(r&&r.length>0)for(var i in r){let e=r[i].receiver;if(e&&e.track&&e.track.kind===`audio`){let t=e.getSynchronizationSources();if(a.webRTCAdapter.browserDetails.browser===`safari`)for(let e in t){let n=t[e];n.audioLevel=10**(-1*n.audioLevel/20)}return t}}}(o)},send:function(e){ee(o,e)},data:function(e){te(o,e)},dtmf:function(e){V(o,e)},consentDialog:e.consentDialog,iceState:e.iceState,mediaState:e.mediaState,webrtcState:e.webrtcState,slowLink:e.slowLink,onmessage:e.onmessage,createOffer:function(e){re(o,!0,e)},createAnswer:function(e){re(o,!1,e)},handleRemoteJsep:function(e){U(o,e)},onlocalstream:e.onlocalstream,onremotestream:e.onremotestream,ondata:e.ondata,ondataopen:e.ondataopen,oncleanup:e.oncleanup,ondetached:e.ondetached,hangup:function(e){ce(o,!0===e)},detach:function(e){ne(o,e)}};T[o]=s,e.success(s)}function R(e,n,r,o){if((e||={}).success=typeof e.success==`function`?e.success:a.noop,e.error=typeof e.error==`function`?e.error:a.noop,e.consentDialog=typeof e.consentDialog==`function`?e.consentDialog:a.noop,e.iceState=typeof e.iceState==`function`?e.iceState:a.noop,e.mediaState=typeof e.mediaState==`function`?e.mediaState:a.noop,e.webrtcState=typeof e.webrtcState==`function`?e.webrtcState:a.noop,e.slowLink=typeof e.slowLink==`function`?e.slowLink:a.noop,e.onmessage=typeof e.onmessage==`function`?e.onmessage:a.noop,e.onlocalstream=typeof e.onlocalstream==`function`?e.onlocalstream:a.noop,e.onremotestream=typeof e.onremotestream==`function`?e.onremotestream:a.noop,e.ondata=typeof e.ondata==`function`?e.ondata:a.noop,e.ondataopen=typeof e.ondataopen==`function`?e.ondataopen:a.noop,e.oncleanup=typeof e.oncleanup==`function`?e.oncleanup:a.noop,e.ondetached=typeof e.ondetached==`function`?e.ondetached:a.noop,!x)return a.warn(`Is the server down? (connected=false)`),void e.error(`Is the server down? (connected=false)`);var s=e.plugin;if(s==null)return a.error(`Invalid plugin`),void e.error(`Invalid plugin`);var c=e.opaqueId,l=e.token?e.token:_,d=a.randomString(12),f={[j]:`attach`,plugin:s,opaque_id:c,transaction:d};if(l!=null&&(f.token=l),v!=null&&(f.apisecret=v),t){if(n)return void L(e,n,s,l);if(r&&o){var p={};p[j]=`success`,p.data={},p.data.id=o,L(e,p,s,l,r);return}O[d]=function(t){L(e,t,s,l)},f.session_id=S,i.send(JSON.stringify(f));return}a.httpAPICall(u+`/`+S,{verb:`POST`,withCredentials:h,body:f,success:function(t){if(a.debug(t),t[j]!==`success`)return a.error(`Ooops: `+t.error.code+` `+t.error.reason),void e.error(`Ooops: `+t.error.code+` `+t.error.reason);var n=t.data.id;a.log(`Created handle: `+n);var r={session:E,plugin:s,id:n,token:l,detached:!1,webrtcStuff:{started:!1,myStream:null,streamExternal:!1,remoteStream:null,mySdp:null,mediaConstraints:null,pc:null,dataChannel:{},dtmfSender:null,trickle:!0,iceDone:!1,volume:{value:null,timer:null},bitrate:{value:null,bsnow:null,bsbefore:null,tsnow:null,tsbefore:null,timer:null}},getId:function(){return n},getPlugin:function(){return s},getVolume:function(){return ie(n,!0)},getRemoteVolume:function(){return ie(n,!0)},getLocalVolume:function(){return ie(n,!1)},isAudioMuted:function(){return ae(n,!1)},muteAudio:function(){return W(n,!1,!0)},unmuteAudio:function(){return W(n,!1,!1)},isVideoMuted:function(){return ae(n,!0)},muteVideo:function(){return W(n,!0,!0)},unmuteVideo:function(){return W(n,!0,!1)},getBitrate:function(){return G(n)},send:function(e){ee(n,e)},data:function(e){te(n,e)},dtmf:function(e){V(n,e)},consentDialog:e.consentDialog,iceState:e.iceState,mediaState:e.mediaState,webrtcState:e.webrtcState,slowLink:e.slowLink,onmessage:e.onmessage,createOffer:function(e){re(n,!0,e)},createAnswer:function(e){re(n,!1,e)},handleRemoteJsep:function(e){U(n,e)},onlocalstream:e.onlocalstream,onremotestream:e.onremotestream,ondata:e.ondata,ondataopen:e.ondataopen,oncleanup:e.oncleanup,ondetached:e.ondetached,hangup:function(e){ce(n,!0===e)},detach:function(e){ne(n,e)}};T[n]=r,e.success(r)},error:function(e,t){a.error(e+`:`,t)}})}function ee(e,n){if((n||={}).success=typeof n.success==`function`?n.success:a.noop,n.error=typeof n.error==`function`?n.error:a.noop,!x)return a.warn(`Is the server down? (connected=false)`),void n.error(`Is the server down? (connected=false)`);var r=T[e];if(r==null||r.webrtcStuff===null||r.webrtcStuff===void 0)return a.warn(`Invalid handle`),void n.error(`Invalid handle`);var o=n.message,s=n.jsep,c=a.randomString(12),l={[j]:`message`,body:o,transaction:c};if(r.token!==null&&r.token!==void 0&&(l.token=r.token),v!=null&&(l.apisecret=v),s!=null&&(l.jsep=s),a.debug(`Sending message to plugin (handle=`+e+`):`),a.debug(l),t)return l.session_id=S,l.handle_id=e,O[c]=function(e){if(a.debug(`Message sent!`),a.debug(e),e[j]===`success`){var t=e.plugindata;if(t==null)return a.warn(`Request succeeded, but missing plugindata...`),void n.success();a.log(`Synchronous transaction successful (`+t.plugin+`)`);var r=t.data;a.debug(r),n.success(r);return}e[j]===`ack`?n.success():e.error!==void 0&&e.error!==null?(a.error(`Ooops: `+e.error.code+` `+e.error.reason),n.error(e.error.code+` `+e.error.reason)):(a.error(`Unknown error`),n.error(`Unknown error`))},void i.send(JSON.stringify(l));a.httpAPICall(u+`/`+S+`/`+e,{verb:`POST`,withCredentials:h,body:l,success:function(e){if(a.debug(`Message sent!`),a.debug(e),e[j]===`success`){var t=e.plugindata;if(t==null)return a.warn(`Request succeeded, but missing plugindata...`),void n.success();a.log(`Synchronous transaction successful (`+t.plugin+`)`);var r=t.data;a.debug(r),n.success(r);return}e[j]===`ack`?n.success():e.error!==void 0&&e.error!==null?(a.error(`Ooops: `+e.error.code+` `+e.error.reason),n.error(e.error.code+` `+e.error.reason)):(a.error(`Unknown error`),n.error(`Unknown error`))},error:function(e,t){a.error(e+`:`,t),n.error(e+`: `+t)}})}function z(e,n){if(k===`brtc_v0`)if(x){var r=T[e];if(r!=null&&r.webrtcStuff!==null&&r.webrtcStuff!==void 0){var o={[j]:`trickle`,candidate:n,transaction:a.randomString(12)};if(r.token!==null&&r.token!==void 0&&(o.token=r.token),v!=null&&(o.apisecret=v),a.vdebug(`Sending trickle candidate (handle=`+e+`):`),a.vdebug(o),t)return o.session_id=S,o.handle_id=e,void i.send(JSON.stringify(o));a.httpAPICall(u+`/`+S+`/`+e,{verb:`POST`,withCredentials:h,body:o,success:function(e){a.vdebug(`Candidate sent!`),a.vdebug(e),e[j]===`ack`||a.error(`Ooops: `+e.error.code+` `+e.error.reason)},error:function(e,t){a.error(e+`:`,t)}})}else a.warn(`Invalid handle`)}else a.warn(`Is the server down? (connected=false)`)}function B(e,t,n,r){var i=T[e];
71if(i!=null&&i.webrtcStuff!==null&&i.webrtcStuff!==void 0){var o=i.webrtcStuff,s=function(e){a.log(`Received state change on data channel:`,e);var t=e.target.label,n=o.dataChannel[t]?o.dataChannel[t].readyState:`null`;if(a.log(`State change on <`+t+`> data channel: `+n),n===`open`){if(o.dataChannel[t].pending&&o.dataChannel[t].pending.length>0){for(var r in a.log(`Sending pending messages on <' + label + '>:`,o.dataChannel[t].pending.length),o.dataChannel[t].pending){var s=o.dataChannel[t].pending[r];a.log(`Sending string on data channel <`+t+`>: `+s),o.dataChannel[t].send(s)}o.dataChannel[t].pending=[]}i.ondataopen(t)}};if(n)o.dataChannel[t]=n;else{if(o.pc===null)return;o.dataChannel[t]=o.pc.createDataChannel(t,{ordered:!1})}o.dataChannel[t].onmessage=function(e){a.log(`Received message on data channel:`,e);var t=e.target.label;i.ondata(e.data,t)},o.dataChannel[t].onopen=s,o.dataChannel[t].onclose=s,o.dataChannel[t].onerror=function(e){a.log(`Got error on data channel:`,e)},o.dataChannel[t].pending=[],r&&o.dataChannel[t].pending.push(r)}else a.warn(`Invalid handle`)}function te(e,t){(t||={}).success=typeof t.success==`function`?t.success:a.noop,t.error=typeof t.error==`function`?t.error:a.noop;var n=T[e];if(n==null||n.webrtcStuff===null||n.webrtcStuff===void 0)return a.warn(`Invalid handle`),void t.error(`Invalid handle`);var r=n.webrtcStuff,i=t.text;if(i==null)return a.warn(`Invalid text`),void t.error(`Invalid text`);var o=t.label?t.label:a.dataChanDefaultLabel;r.dataChannel[o]?r.dataChannel[o].readyState===`open`?(a.log(`Sending string on data channel <`+o+`>: `+i),r.dataChannel[o].send(i),t.success()):(r.dataChannel[o].pending.push(i),t.success()):(B(e,o,!1,i),t.success())}function V(e,t){(t||={}).success=typeof t.success==`function`?t.success:a.noop,t.error=typeof t.error==`function`?t.error:a.noop;var n=T[e];if(n==null||n.webrtcStuff===null||n.webrtcStuff===void 0)return a.warn(`Invalid handle`),void t.error(`Invalid handle`);var r=n.webrtcStuff;if(r.dtmfSender===null||r.dtmfSender===void 0){if(r.pc!==void 0&&r.pc!==null){var i=r.pc.getSenders().find((function(e){return e.track&&e.track.kind===`audio`}));if(!i)return a.warn(`Invalid DTMF configuration (no audio track)`),void t.error(`Invalid DTMF configuration (no audio track)`);r.dtmfSender=i.dtmf,r.dtmfSender&&(a.log(`Created DTMF Sender`),r.dtmfSender.ontonechange=function(e){a.debug(`Sent DTMF tone: `+e.tone)})}if(r.dtmfSender===null||r.dtmfSender===void 0)return a.warn(`Invalid DTMF configuration`),void t.error(`Invalid DTMF configuration`)}var o=t.dtmf;if(o==null)return a.warn(`Invalid DTMF parameters`),void t.error(`Invalid DTMF parameters`);var s=o.tones;if(s==null)return a.warn(`Invalid DTMF string`),void t.error(`Invalid DTMF string`);var c=o.duration;c??=500;var l=o.gap;l??=50,a.debug(`Sending DTMF string `+s+` (duration `+c+`ms, gap `+l+`ms)`),r.dtmfSender.insertDTMF(s,c,l),t.success()}function ne(e,n){(n||={}).success=typeof n.success==`function`?n.success:a.noop,n.error=typeof n.error==`function`?n.error:a.noop;var r=!0;n.asyncRequest!==void 0&&n.asyncRequest!==null&&(r=!0===n.asyncRequest);var o=!1;n.noRequest!==void 0&&n.noRequest!==null&&(o=!0===n.noRequest),a.log(`Destroying handle `+e+` (async=`+r+`)`),ce(e);var s=T[e];if(s==null||s.detached||o)return delete T[e],void n.success();if(!x)return a.warn(`Is the server down? (connected=false)`),void n.error(`Is the server down? (connected=false)`);var c={[j]:`detach`,transaction:a.randomString(12)};if(s.token!==null&&s.token!==void 0&&(c.token=s.token),v!=null&&(c.apisecret=v),t)return c.session_id=S,c.handle_id=e,i.send(JSON.stringify(c)),delete T[e],void n.success();a.httpAPICall(u+`/`+S+`/`+e,{verb:`POST`,async:r,withCredentials:h,body:c,success:function(t){a.log(`Destroyed handle:`),a.debug(t),t[j]!==`success`&&a.error(`Ooops: `+t.error.code+` `+t.error.reason),delete T[e],n.success()},error:function(t,r){a.error(t+`:`,r),delete T[e],n.success()}})}function H(e,t,n,r,i){var o=!1;r.media.update!==null&&!0===r.media.update&&(o=!0);var s=T[e];if(s==null||s.webrtcStuff===null||s.webrtcStuff===void 0)return a.warn(`Invalid handle`),void r.error(`Invalid handle`);var c=s.webrtcStuff;a.debug(`streamsDone:`,i),i&&(a.debug(`  -- Audio tracks:`,i.getAudioTracks()),a.debug(`  -- Video tracks:`,i.getVideoTracks()));var l=!1;if(c.myStream&&n.update&&!c.streamExternal){if((!n.update&&Y(n)||n.update&&(n.addAudio||n.replaceAudio))&&i.getAudioTracks()&&i.getAudioTracks().length)if(c.myStream.addTrack(i.getAudioTracks()[0]),a.webRTCAdapter.browserDetails.browser===`firefox`&&a.webRTCAdapter.browserDetails.version>=59||a.webRTCAdapter.browserDetails.browser===`safari`&&window.RTCRtpSender.prototype.replaceTrack||a.webRTCAdapter.browserDetails.browser===`chrome`&&a.webRTCAdapter.browserDetails.version>=72){a.log((n.replaceAudio?`Replacing`:`Adding`)+` audio track:`,i.getAudioTracks()[0]);var u=null;if((g=c.pc.getTransceivers())&&g.length>0){for(var h in g)if((v=g[h]).sender&&v.sender.track&&v.sender.track.kind===`audio`||v.receiver&&v.receiver.track&&v.receiver.track.kind===`audio`){u=v;break}}u&&u.sender?u.sender.replaceTrack(i.getAudioTracks()[0]):c.pc.addTrack(i.getAudioTracks()[0],i)}else a.log((n.replaceAudio?`Replacing`:`Adding`)+` audio track:`,i.getAudioTracks()[0]),c.pc.addTrack(i.getAudioTracks()[0],i);if((!n.update&&Z(n)||n.update&&(n.addVideo||n.replaceVideo))&&i.getVideoTracks()&&i.getVideoTracks().length)if(c.myStream.addTrack(i.getVideoTracks()[0]),a.webRTCAdapter.browserDetails.browser===`firefox`&&a.webRTCAdapter.browserDetails.version>=59||a.webRTCAdapter.browserDetails.browser===`safari`&&window.RTCRtpSender.prototype.replaceTrack||a.webRTCAdapter.browserDetails.browser===`chrome`&&a.webRTCAdapter.browserDetails.version>=72){a.log((n.replaceVideo?`Replacing`:`Adding`)+` video track:`,i.getVideoTracks()[0]);var g,_=null;if((g=c.pc.getTransceivers())&&g.length>0)for(var h in g){var v;if((v=g[h]).sender&&v.sender.track&&v.sender.track.kind===`video`||v.receiver&&v.receiver.track&&v.receiver.track.kind===`video`){_=v;break}}_&&_.sender?_.sender.replaceTrack(i.getVideoTracks()[0]):c.pc.addTrack(i.getVideoTracks()[0],i)}else a.log((n.replaceVideo?`Replacing`:`Adding`)+` video track:`,i.getVideoTracks()[0]),c.pc.addTrack(i.getVideoTracks()[0],i)}else c.myStream=i,l=!0;if(!c.pc){var y={iceServers:d,iceTransportPolicy:f,bundlePolicy:p};a.webRTCAdapter.browserDetails.browser===`chrome`&&(y.sdpSemantics=a.webRTCAdapter.browserDetails.version<72?`plan-b`:`unified-plan`);var b={optional:[{DtlsSrtpKeyAgreement:!0}]};
71if(!0===m&&b.optional.push({googIPv6:!0}),r.rtcConstraints&&typeof r.rtcConstraints==`object`)for(var h in a.debug(`Adding custom PeerConnection constraints:`,r.rtcConstraints),r.rtcConstraints)b.optional.push(r.rtcConstraints[h]);a.webRTCAdapter.browserDetails.browser===`edge`&&(y.bundlePolicy=`max-bundle`),a.log(`Creating PeerConnection`),a.debug(b),c.outerpc?c.pc=c.outerpc:c.pc=new RTCPeerConnection(y,b),a.debug(c.pc),c.pc.getStats&&(c.volume={},c.bitrate.value=`0 kbits/sec`,c.fps.value=0),a.log(`Preparing local SDP and gathering candidates (trickle=`+c.trickle+`)`),c.pc.oniceconnectionstatechange=function(e){c.pc&&s.iceState(c.pc.iceConnectionState)},c.pc.onicecandidate=function(t){if(t.candidate==null||a.webRTCAdapter.browserDetails.browser===`edge`&&t.candidate.candidate.indexOf(`endOfCandidates`)>0)a.log(`End of candidates.`),c.iceDone=!0,!0===c.trickle?z(e,{completed:!0}):function(e,t){(t||={}).success=typeof t.success==`function`?t.success:a.noop,t.error=typeof t.error==`function`?t.error:a.noop;var n=T[e];if(n==null||n.webrtcStuff===null||n.webrtcStuff===void 0)return void a.warn(`Invalid handle, not sending anything`);var r=n.webrtcStuff;if(a.log(`Sending offer/answer SDP...`),r.mySdp===null||r.mySdp===void 0)return void a.warn(`Local SDP instance is invalid, not sending anything...`);r.mySdp={type:r.pc.localDescription.type,sdp:r.pc.localDescription.sdp},!1===r.trickle&&(r.mySdp.trickle=!1),a.debug(t),r.sdpSent=!0,t.success(r.mySdp)}(e,r);else{var n={candidate:t.candidate.candidate,sdpMid:t.candidate.sdpMid,sdpMLineIndex:t.candidate.sdpMLineIndex};!0===c.trickle&&z(e,n)}},c.pc.ontrack=function(e){if(a.log(`Handling Remote Track`),a.debug(e),e.streams){if(c.remoteStream=e.streams[0],e.track){var t=e.transceiver?e.transceiver.mid:e.track.id;try{s.onremotestream(c.remoteStream,e.track,t,!0)}catch{}}else s.onremotestream(c.remoteStream);e.track&&!e.track.onended&&(a.log(`Adding onended callback to track:`,e.track),e.track.onended=function(n){a.log(`Remote track removed:`,n),c.remoteStream&&(c.remoteStream.removeTrack(n.target),s.onremotestream(c.remoteStream,e.track,t,!1))})}}}if(l&&i!=null){a.log(`Adding local stream`);var x=!0===r.simulcast2;i.getTracks().forEach((function(e){a.log(`Adding local track:`,e),x?e.kind===`audio`?c.pc.addTrack(e,i):(a.log(`Enabling rid-based simulcasting:`,e),c.pc.addTransceiver(e,{direction:`sendrecv`,streams:[i],sendEncodings:[{rid:`h`,active:!0,maxBitrate:9e5},{rid:`m`,active:!0,maxBitrate:3e5,scaleResolutionDownBy:2},{rid:`l`,active:!0,maxBitrate:1e5,scaleResolutionDownBy:4}]})):c.pc.addTrack(e,i)}))}if(function(e){return a.debug(`isDataEnabled:`,e),a.webRTCAdapter.browserDetails.browser==`edge`?(a.warn(`Edge doesn't support data channels yet`),!1):e!=null&&!0===e.data}(n)&&!c.dataChannel[a.dataChanDefaultLabel]&&(a.log(`Creating data channel`),B(e,a.dataChanDefaultLabel,!1),k===`brtc_v4`&&[`BRTC_CLIENT_UNRELIABLE_MESSAGE`,`BRTC_CLIENT_BROADCAST_EVENT`].forEach(t=>{B(e,t,c.pc.createDataChannel(t,{ordered:!1,maxRetransmits:10}))}),c.pc.ondatachannel=function(t){a.log(`Data channel created by Janus:`,t),B(e,t.channel.label,t.channel)}),c.myStream){let e=!0;o&&(e=!1),s.onlocalstream(c.myStream,e)}c.outerpc?r.success():t==null?function(e,t,n){(n||={}).success=typeof n.success==`function`?n.success:a.noop,n.error=typeof n.error==`function`?n.error:a.noop,n.customizeSdp=typeof n.customizeSdp==`function`?n.customizeSdp:a.noop;var r=T[e];if(r==null||r.webrtcStuff===null||r.webrtcStuff===void 0)return a.warn(`Invalid handle`),void n.error(`Invalid handle`);var i=r.webrtcStuff,o=!0===n.simulcast;o?a.log(`Creating offer (iceDone=`+i.iceDone+`, simulcast=`+o+`)`):a.log(`Creating offer (iceDone=`+i.iceDone+`)`);var s={};if(a.webRTCAdapter.browserDetails.browser===`firefox`&&a.webRTCAdapter.browserDetails.version>=59||a.webRTCAdapter.browserDetails.browser===`safari`&&window.RTCRtpSender.prototype.replaceTrack||a.webRTCAdapter.browserDetails.browser===`chrome`&&a.webRTCAdapter.browserDetails.version>=72){var c=null,l=null,u=i.pc.getTransceivers();if(u&&u.length>0)for(var d in u){var f=u[d];f.sender&&f.sender.track&&f.sender.track.kind===`audio`||f.receiver&&f.receiver.track&&f.receiver.track.kind===`audio`?c||=f:(f.sender&&f.sender.track&&f.sender.track.kind===`video`||f.receiver&&f.receiver.track&&f.receiver.track.kind===`video`)&&(l||=f)}var p=Y(t),m=X(t);p||m?p&&m?c&&(c.setDirection?c.setDirection(`sendrecv`):c.direction=`sendrecv`,a.log(`Setting audio transceiver to sendrecv:`,c)):p&&!m?c&&(c.setDirection?c.setDirection(`sendonly`):c.direction=`sendonly`,a.log(`Setting audio transceiver to sendonly:`,c)):!p&&m&&(c?(c.setDirection?c.setDirection(`recvonly`):c.direction=`recvonly`,a.log(`Setting audio transceiver to recvonly:`,c)):(c=i.pc.addTransceiver(`audio`,{direction:`recvonly`}),a.log(`Adding recvonly audio transceiver:`,c))):t.removeAudio&&c&&(c.setDirection?c.setDirection(`
71inactive`):c.direction=`inactive`,a.log(`Setting audio transceiver to inactive:`,c));var h=Z(t),g=le(t);h||g?h&&g?l&&(l.setDirection?l.setDirection(`sendrecv`):l.direction=`sendrecv`,a.log(`Setting video transceiver to sendrecv:`,l)):h&&!g?l&&(l.setDirection?l.setDirection(`sendonly`):l.direction=`sendonly`,a.log(`Setting video transceiver to sendonly:`,l)):!h&&g&&(l?(l.setDirection?l.setDirection(`recvonly`):l.direction=`recvonly`,a.log(`Setting video transceiver to recvonly:`,l)):(l=i.pc.addTransceiver(`video`,{direction:`recvonly`}),a.log(`Adding recvonly video transceiver:`,l))):t.removeVideo&&l&&(l.setDirection?l.setDirection(`inactive`):l.direction=`inactive`,a.log(`Setting video transceiver to inactive:`,l))}else s.offerToReceiveAudio=X(t),s.offerToReceiveVideo=le(t);!0===n.iceRestart&&(s.iceRestart=!0),a.debug(s);var _=Z(t);if(_&&o&&a.webRTCAdapter.browserDetails.browser===`firefox`){a.log(`Enabling Simulcasting for Firefox (RID)`);var v=i.pc.getSenders().find((function(e){return e.track.kind==`video`}));if(v){var y=v.getParameters();y||={},y.encodings=[{rid:`h`,active:!0,maxBitrate:9e5},{rid:`m`,active:!0,maxBitrate:3e5,scaleResolutionDownBy:2},{rid:`l`,active:!0,maxBitrate:1e5,scaleResolutionDownBy:4}],v.setParameters(y)}}r.session.sendlog({log:{event:`calling pc.createOffer`,code:1,ts:new Date().toLocaleString()}}),i.pc.createOffer(s).then((function(e){a.debug(e);var t={type:e.type,sdp:e.sdp};n.customizeSdp(t),e.sdp=t.sdp,a.log(`Setting local description`),_&&o&&(a.webRTCAdapter.browserDetails.browser===`chrome`||a.webRTCAdapter.browserDetails.browser===`safari`?(a.log(`Enabling Simulcasting for Chrome (SDP munging)`),e.sdp=function(e){for(var t=e.split(`\r
72`),n=!1,r=[-1],i=[-1],o=null,s=null,c=null,l=null,u=-1,d=0;d<t.length;d++)if(p=t[d].match(/m=(\w+) */)){if(p[1]===`video`){if(!(r[0]<0)){u=d;break}n=!0}else if(r[0]>-1){u=d;break}}else if(n){var f=t[d].match(/a=ssrc-group:FID (\d+) (\d+)/);if(f)r[0]=f[1],i[0]=f[2],t.splice(d,1),d--;else{if(r[0]){if((h=t[d].match(`a=ssrc:`+r[0]+` cname:(.+)`))&&(o=h[1]),(h=t[d].match(`a=ssrc:`+r[0]+` msid:(.+)`))&&(s=h[1]),(h=t[d].match(`a=ssrc:`+r[0]+` mslabel:(.+)`))&&(c=h[1]),(h=t[d].match(`a=ssrc:`+r[0]+` label:(.+)`))&&(l=h[1]),t[d].indexOf(`a=ssrc:`+i[0])===0){t.splice(d,1),d--;continue}if(t[d].indexOf(`a=ssrc:`+r[0])===0){t.splice(d,1),d--;continue}}t[d].length!=0||(t.splice(d,1),d--)}}if(r[0]<0)for(u=-1,n=!1,d=0;d<t.length;d++){var p;if(p=t[d].match(/m=(\w+) */)){if(p[1]===`video`){if(!(r[0]<0)){u=d;break}n=!0}else if(r[0]>-1){u=d;break}}else if(n){if(r[0]<0){var m=t[d].match(/a=ssrc:(\d+)/);if(m){r[0]=m[1],t.splice(d,1),d--;continue}}else{var h;if((h=t[d].match(`a=ssrc:`+r[0]+` cname:(.+)`))&&(o=h[1]),(h=t[d].match(`a=ssrc:`+r[0]+` msid:(.+)`))&&(s=h[1]),(h=t[d].match(`a=ssrc:`+r[0]+` mslabel:(.+)`))&&(c=h[1]),(h=t[d].match(`a=ssrc:`+r[0]+` label:(.+)`))&&(l=h[1]),t[d].indexOf(`a=ssrc:`+i[0])===0){t.splice(d,1),d--;continue}if(t[d].indexOf(`a=ssrc:`+r[0])===0){t.splice(d,1),d--;continue}}t[d].length!=0||(t.splice(d,1),d--)}}if(r[0]<0)return a.warn(`Couldn't find the video SSRC, simulcasting NOT enabled`),e;for(u<0&&(u=t.length),r[1]=Math.floor(4294967295*Math.random()),r[2]=Math.floor(4294967295*Math.random()),i[1]=Math.floor(4294967295*Math.random()),i[2]=Math.floor(4294967295*Math.random()),d=0;d<r.length;d++)o&&(t.splice(u,0,`a=ssrc:`+r[d]+` cname:`+o),u++),s&&(t.splice(u,0,`a=ssrc:`+r[d]+` msid:`+s),u++),c&&(t.splice(u,0,`a=ssrc:`+r[d]+` mslabel:`+c),u++),l&&(t.splice(u,0,`a=ssrc:`+r[d]+` label:`+l),u++),o&&(t.splice(u,0,`a=ssrc:`+i[d]+` cname:`+o),u++),s&&(t.splice(u,0,`a=ssrc:`+i[d]+` msid:`+s),u++),c&&(t.splice(u,0,`a=ssrc:`+i[d]+` mslabel:`+c),u++),l&&(t.splice(u,0,`a=ssrc:`+i[d]+` label:`+l),u++);return t.splice(u,0,`a=ssrc-group:FID `+r[2]+` `+i[2]),t.splice(u,0,`a=ssrc-group:FID `+r[1]+` `+i[1]),t.splice(u,0,`a=ssrc-group:FID `+r[0]+` `+i[0]),t.splice(u,0,`a=ssrc-group:SIM `+r[0]+` `+r[1]+` `+r[2]),(e=t.join(`\r
73`)).endsWith(`\r
74`)||(e+=`\r
75`),e}(e.sdp)):a.webRTCAdapter.browserDetails.browser!==`firefox`&&a.warn(`simulcast=true, but this is not Chrome nor Firefox, ignoring`)),i.mySdp=e.sdp,r.session.sendlog({log:{event:`calling pc.setLocalDescription`,code:1,ts:new Date().toLocaleStr
75ing()}}),i.pc.setLocalDescription(e).catch(n.error),i.mediaConstraints=s,i.iceDone||i.trickle?(a.log(`Offer ready`),a.debug(n),n.success(e)):a.log(`Waiting for all candidates...`)}),n.error)}(e,n,r):c.pc.setRemoteDescription(t).then((function(){if(a.log(`Remote description accepted!`),c.remoteSdp=t.sdp,c.candidates&&c.candidates.length>0){for(var i in c.candidates){var o=c.candidates[i];a.debug(`Adding remote candidate:`,o),o&&!0!==o.completed?c.pc.addIceCandidate(o):c.pc.addIceCandidate()}c.candidates=[]}(function(e,t,n){(n||={}).success=typeof n.success==`function`?n.success:a.noop,n.error=typeof n.error==`function`?n.error:a.noop,n.customizeSdp=typeof n.customizeSdp==`function`?n.customizeSdp:a.noop;var r=T[e];if(r==null||r.webrtcStuff===null||r.webrtcStuff===void 0)return a.warn(`Invalid handle`),void n.error(`Invalid handle`);var i=r.webrtcStuff,o=!0===n.simulcast;o?a.log(`Creating answer (iceDone=`+i.iceDone+`, simulcast=`+o+`)`):a.log(`Creating answer (iceDone=`+i.iceDone+`)`);var s=null;if(a.webRTCAdapter.browserDetails.browser===`firefox`&&a.webRTCAdapter.browserDetails.version>=59||a.webRTCAdapter.browserDetails.browser===`safari`&&window.RTCRtpSender.prototype.replaceTrack||a.webRTCAdapter.browserDetails.browser===`chrome`&&a.webRTCAdapter.browserDetails.version>=72){s={};var c=null,l=null,u=i.pc.getTransceivers();if(u&&u.length>0)for(var d in u){var f=u[d];f.sender&&f.sender.track&&f.sender.track.kind===`audio`||f.receiver&&f.receiver.track&&f.receiver.track.kind===`audio`?c||=f:(f.sender&&f.sender.track&&f.sender.track.kind===`video`||f.receiver&&f.receiver.track&&f.receiver.track.kind===`video`)&&(l||=f)}var p=Y(t),m=X(t);p||m?p&&m?c&&(c.setDirection?c.setDirection(`sendrecv`):c.direction=`sendrecv`,a.log(`Setting audio transceiver to sendrecv:`,c)):p&&!m?c&&(c.setDirection?c.setDirection(`sendonly`):c.direction=`sendonly`,a.log(`Setting audio transceiver to sendonly:`,c)):!p&&m&&(c?(c.setDirection?c.setDirection(`recvonly`):c.direction=`recvonly`,a.log(`Setting audio transceiver to recvonly:`,c)):(c=i.pc.addTransceiver(`audio`,{direction:`recvonly`}),a.log(`Adding recvonly audio transceiver:`,c))):t.removeAudio&&c&&(c.setDirection?c.setDirection(`inactive`):c.direction=`inactive`,a.log(`Setting audio transceiver to inactive:`,c));var h=Z(t),g=le(t);h||g?h&&g?l&&(l.setDirection?l.setDirection(`sendrecv`):l.direction=`sendrecv`,a.log(`Setting video transceiver to sendrecv:`,l)):h&&!g?l&&(l.setDirection?l.setDirection(`sendonly`):l.direction=`sendonly`,a.log(`Setting video transceiver to sendonly:`,l)):!h&&g&&(l?(l.setDirection?l.setDirection(`recvonly`):l.direction=`recvonly`,a.log(`Setting video transceiver to recvonly:`,l)):(l=i.pc.addTransceiver(`video`,{direction:`recvonly`}),a.log(`Adding recvonly video transceiver:`,l))):t.removeVideo&&l&&(l.setDirection?l.setDirection(`inactive`):l.direction=`inactive`,a.log(`Setting video transceiver to inactive:`,l))}else s=a.webRTCAdapter.browserDetails.browser==`firefox`||a.webRTCAdapter.browserDetails.browser==`edge`?{offerToReceiveAudio:X(t),offerToReceiveVideo:le(t)}:{mandatory:{OfferToReceiveAudio:X(t),OfferToReceiveVideo:le(t)}};a.debug(s);var _=Z(t);if(_&&o&&a.webRTCAdapter.browserDetails.browser===`firefox`){a.log(`Enabling Simulcasting for Firefox (RID)`);var v=i.pc.getSenders()[1];a.log(v);var y=v.getParameters();a.log(y),v.setParameters({encodings:[{rid:`high`,active:!0,priority:`high`,maxBitrate:1e6},{rid:`medium`,active:!0,priority:`medium`,maxBitrate:3e5},{rid:`low`,active:!0,priority:`low`,maxBitrate:1e5}]})}i.pc.createAnswer(s).then((function(e){a.debug(e);var t={type:e.type,sdp:e.sdp};n.customizeSdp(t),e.sdp=t.sdp,a.log(`Setting local description`),_&&o&&(a.webRTCAdapter.browserDetails.browser===`chrome`?a.warn(`simulcast=true, but this is an answer, and video breaks in Chrome if we enable it`):a.webRTCAdapter.browserDetails.browser!==`firefox`&&a.warn(`simulcast=true, but this is not Chrome nor Firefox, ignoring`)),i.mySdp=e.sdp,i.pc.setLocalDescription(e).catch(n.error),i.mediaConstraints=s,i.iceDone||i.trickle?n.success(e):a.log(`Waiting for all candidates...`)}),n.error)})(e,n,r)}),r.error)}function re(e,t,i){(i||={}).success=typeof i.success==`function`?i.success:a.noop,i.error=typeof i.error==`function`?i.error:se;var o=i.jsep;if(!(t&&o)&&!(t||o&&o.type&&o.sdp))return a.error(`A valid JSEP is required for createAnswer`),void i.error(`A valid JSEP is required for createAnswer`);i.media=i.media||{audio:!0,video:!0};var s=i.media,c=T[e];
75if(c==null||c.webrtcStuff===null||c.webrtcStuff===void 0)return a.warn(`Invalid handle`),void i.error(`Invalid handle`);var l,u=c.webrtcStuff;if(u.trickle=(l=i.trickle,a.debug(`isTrickleEnabled:`,l),l==null||!0===l),u.pc===void 0||u.pc===null)s.update=!1,s.keepAudio=!1,s.keepVideo=!1;else if(u.pc!==void 0&&u.pc!==null){if(a.log(`Updating existing media session`),s.update=!0,i.stream!==null&&i.stream!==void 0)i.stream!==u.myStream&&a.log(`Renegotiation involves a new external stream`);else{if(s.addAudio){if(s.keepAudio=!1,s.replaceAudio=!1,s.removeAudio=!1,s.audioSend=!0,u.myStream&&u.myStream.getAudioTracks()&&u.myStream.getAudioTracks().length)return a.error(`Can't add audio stream, there already is one`),void i.error(`Can't add audio stream, there already is one`)}else s.removeAudio?(s.keepAudio=!1,s.replaceAudio=!1,s.addAudio=!1,s.audioSend=!1):s.replaceAudio&&(s.keepAudio=!1,s.addAudio=!1,s.removeAudio=!1,s.audioSend=!0);if(u.myStream===null||u.myStream===void 0?(s.replaceAudio&&(s.keepAudio=!1,s.replaceAudio=!1,s.addAudio=!0,s.audioSend=!0),Y(s)&&(s.keepAudio=!1,s.addAudio=!0)):u.myStream.getAudioTracks()===null||u.myStream.getAudioTracks()===void 0||u.myStream.getAudioTracks().length===0?(s.replaceAudio&&(s.keepAudio=!1,s.replaceAudio=!1,s.addAudio=!0,s.audioSend=!0),Y(s)&&(s.keepVideo=!1,s.addAudio=!0)):!Y(s)||s.removeAudio||s.replaceAudio||(s.keepAudio=!0),s.addVideo){if(s.keepVideo=!1,s.replaceVideo=!1,s.removeVideo=!1,s.videoSend=!0,u.myStream&&u.myStream.getVideoTracks()&&u.myStream.getVideoTracks().length)return a.error(`Can't add video stream, there already is one`),void i.error(`Can't add video stream, there already is one`)}else s.removeVideo?(s.keepVideo=!1,s.replaceVideo=!1,s.addVideo=!1,s.videoSend=!1):s.replaceVideo&&(s.keepVideo=!1,s.addVideo=!1,s.removeVideo=!1,s.videoSend=!0);u.myStream===null||u.myStream===void 0||u.myStream.getVideoTracks()===null||u.myStream.getVideoTracks()===void 0||u.myStream.getVideoTracks().length===0?(s.replaceVideo&&(s.keepVideo=!1,s.replaceVideo=!1,s.addVideo=!0,s.videoSend=!0),Z(s)&&(s.keepVideo=!1,s.addVideo=!0)):!Z(s)||s.removeVideo||s.replaceVideo||(s.keepVideo=!0),s.addData&&(s.data=!0)}if(Y(s)&&s.keepAudio&&Z(s)&&s.keepVideo)return c.consentDialog(!1),void H(e,o,s,i,u.myStream)}if(s.update&&!u.streamExternal){if(s.removeAudio||s.replaceAudio){if(u.myStream&&u.myStream.getAudioTracks()&&u.myStream.getAudioTracks().length){var d=u.myStream.getAudioTracks()[0];a.log(`Removing audio track:`,d),u.myStream.removeTrack(d);try{d.stop()}catch{}}if(u.pc.getSenders()&&u.pc.getSenders().length){var f=!0;if(s.replaceAudio&&(a.webRTCAdapter.browserDetails.browser===`firefox`||a.webRTCAdapter.browserDetails.browser===`chrome`&&a.webRTCAdapter.browserDetails.version>=72)&&(f=!1),f)for(var p in u.pc.getSenders())(d=u.pc.getSenders()[p])&&d.track&&d.track.kind===`audio`&&(a.log(`Removing audio sender:`,d),u.pc.removeTrack(d))}}if(s.removeVideo||s.replaceVideo){if(u.myStream&&u.myStream.getVideoTracks()&&u.myStream.getVideoTracks().length){d=u.myStream.getVideoTracks()[0],a.log(`Removing video track:`,d),u.myStream.removeTrack(d);try{d.stop()}catch{}}if(u.pc.getSenders()&&u.pc.getSenders().length){var m=!0;if(s.replaceVideo&&(a.webRTCAdapter.browserDetails.browser===`firefox`||a.webRTCAdapter.browserDetails.browser===`chrome`&&a.webRTCAdapter.browserDetails.version>=72)&&(m=!1),m)for(var p in u.pc.getSenders())(d=u.pc.getSenders()[p])&&d.track&&d.track.kind===`video`&&(a.log(`Removing video sender:`,d),u.pc.removeTrack(d))}}}if(i.stream!==null&&i.stream!==void 0){var h=i.stream;if(a.log(`MediaStream provided by the application`),a.debug(h),s.update&&s.replaceAll&&u.myStream&&u.myStream!==i.stream&&!u.streamExternal){try{var g=u.myStream.getTracks();for(var _ in g){var v=g[_];a.log(v),v?.stop()}}catch{}u.myStream=null}c.consentDialog(!1),H(e,o,s,i,h);return}if(Y(s)||Z(s)){if(!a.isGetUserMediaAvailable())return void i.error(`getUserMedia not available`);var y={mandatory:{},optional:[]};c.consentDialog(!0);var b=Y(s);!0===b&&s!=null&&s!=null&&typeof s.audio==`object`&&(b=s.audio);var x=Z(s);if(!0===x&&s!=null&&s!=null){var S=!0===i.simulcast,C=!0===i.simulcast2;if(!S&&!C||o||s.video!==void 0&&!1!==s.video||(s.video=`hires`),s.video&&s.video!=`screen`&&s.video!=`window`)if(typeof s.video==`object`){if(x=s.video,s.videoDeviceId!==null&&s.videoDeviceId!==void 0){let e={
75ideal:s.videoDeviceId};x.deviceId=e,x.facingMode={}}}else{var w=0,E=0;if(s.video===`lowres`?(E=240,w=320):s.video===`lowres-16:9`?(E=180,w=320):s.video===`hires`||s.video===`hires-16:9`||s.video===`hdres`?(E=720,w=1280):s.video===`fhdres`?(E=1080,w=1920):s.video===`4kres`?(E=2160,w=3840):s.video===`stdres`?(E=480,w=640):s.video===`stdres-16:9`?(E=360,w=640):(a.log(`Default video setting is stdres 4:3`),E=480,w=640),a.log(`Adding media constraint:`,s.video),x={height:{ideal:E},width:{ideal:w}},s.video.includes(`x`)){strs=s.video.split(`x`);var D=strs[0],O=strs[1].split(`@`),k=O[0],j=15;O.length>1&&(j=O[1]),x={height:{ideal:k},width:{ideal:D},frameRate:{ideal:j}}}if(s.videoDeviceId!==null&&s.videoDeviceId!==void 0){let e={ideal:s.videoDeviceId};x.deviceId=e,x.facingMode={}}a.log(`Adding video constraint:`,x)}else if(s.video===`screen`||s.video===`window`){if(s.screenshareFrameRate||=3,s.screenstream)return void(Y(s)&&!s.keepAudio?navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then((function(t){s.screenstream.addTrack(t.getAudioTracks()[0]),H(e,o,s,i,s.screenstream)})):H(e,o,s,i,s.screenstream));if(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)return void(a.webRTCAdapter.browserDetails.browser===`safari`?i.ongetsharescreenstream():navigator.mediaDevices.getDisplayMedia({video:!s.screenconfig||s.screenconfig})).then((function(t){c.consentDialog(!1),Y(s)&&!s.keepAudio?navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then((function(n){t.addTrack(n.getAudioTracks()[0]),H(e,o,s,i,t)})):H(e,o,s,i,t)}),(function(e){c.consentDialog(!1),i.error(e)}));if(a.webRTCAdapter.browserDetails.browser===`chrome`){var M=a.webRTCAdapter.browserDetails.version,N=33;window.navigator.userAgent.match(`Linux`)&&(N=35),M>=26&&M<=N?r(y={video:{mandatory:{googLeakyBucket:!0,maxWidth:window.screen.width,maxHeight:window.screen.height,minFrameRate:s.screenshareFrameRate,maxFrameRate:s.screenshareFrameRate,chromeMediaSource:`screen`}},audio:Y(s)&&!s.keepAudio},n):a.extension.getScreen((function(e,t){if(e)return c.consentDialog(!1),i.error(e);(y={audio:!1,video:{mandatory:{chromeMediaSource:`desktop`,maxWidth:window.screen.width,maxHeight:window.screen.height,minFrameRate:s.screenshareFrameRate,maxFrameRate:s.screenshareFrameRate},optional:[{googLeakyBucket:!0},{googTemporalLayeredScreencast:!0}]}}).video.mandatory.chromeMediaSourceId=t,r(y,n,Y(s)&&!s.keepAudio)}))}else if(a.webRTCAdapter.browserDetails.browser===`firefox`){if(!(a.webRTCAdapter.browserDetails.version>=33)){var P=Error(`NavigatorUserMediaError`);P.name=`Your version of Firefox does not support screen sharing, please install Firefox 33 (or more recent versions)`,c.consentDialog(!1),i.error(P);return}r(y={video:{mozMediaSource:s.video,mediaSource:s.video},audio:Y(s)&&!s.keepAudio},(function(e,t){if(n(e,t),!e)var r=t.currentTime,i=window.setInterval((function(){t||window.clearInterval(i),t.currentTime==r&&(window.clearInterval(i),t.onended&&t.onended()),r=t.currentTime}),500)}))}return}}s!=null&&s.video===`screen`||navigator.mediaDevices.enumerateDevices().then((function(t){var n=t.some((function(e){return e.kind===`audioinput`})),r=function(e){if(a.debug(`isScreenSendEnabled:`,e),e==null||typeof e.video!=`object`||typeof e.video.mandatory!=`object`)return!1;var t=e.video.mandatory;return t.chromeMediaSource?t.chromeMediaSource===`desktop`||t.chromeMediaSource===`screen`:t.mozMediaSource?t.mozMediaSource===`window`||t.mozMediaSource===`screen`:t.mediaSource?t.mediaSource===`window`||t.mediaSource===`screen`:!1}(s)||t.some((function(e){return e.kind===`videoinput`})),l=Y(s),u=Z(s),d=function(e){return a.debug(`isAudioSendRequired:`,e),e!=null&&!1!==e.audio&&!1!==e.audioSend&&e.failIfNoAudio!==void 0&&e.failIfNoAudio!==null&&!0===e.failIfNoAudio}(s),f=function(e){return a.debug(`isVideoSendRequired:`,e),e!=null&&!1!==e.video&&!1!==e.videoSend&&e.failIfNoVideo!==void 0&&e.failIfNoVideo!==null&&!0===e.failIfNoVideo}(s);if(l||u||d||f){var p=!!l&&n,m=!!u&&r;if(!p&&!m)return c.consentDialog(!1),i.error(`No capture device found`),!1;if(!p&&d)return c.consentDialog(!1),i.error(`Audio capture is required, but no capture device found`),!1;if(!m&&f)return c.consentDialog(!1),i.error(`Video capture is required, but no capture device found`),!1}var g={audio:!(!n||s.keepAudio)&&b,video:!(!r||s.keepVideo)&&x};if(a.debug(`getUserMedia constraints`,g),g.audio||g.video){var _=new Promise((function(e,t){var n={};n.code=0,n.name=`NotAllowedError timeout`,n.message=`Permission denied`;var r=18e4;s.waitPermissionTimeout!==void 0&&s.waitPermissionTimeout!==null&&(r=s.waitPermissionTimeout),isNaN(r)&&(r=18e4),setTimeout(t,r,n)})),v=new Date;c.session.sendlog({log:{event:`calling mediaDevices.getUserMedia`,code:1,constraints:g,id:parseInt(A),ts:v.toLocaleStr
75ing()+`.`+v.getMilliseconds()}});var y=Date.now();Promise.race([navigator.mediaDevices.getUserMedia(g),_]).then((function(t){var n=Date.now()-y,r=new Date;c.session.sendlog({log:{event:`calling mediaDevices.getUserMedia on then:`,code:0,id:parseInt(A),deltatime:n,is_normal:n<2e3?`ok`:`a little long`,ts:r.toLocaleString()+`.`+r.getMilliseconds()}}),c.consentDialog(!1),H(e,o,s,i,t)})).catch((function(e){c.consentDialog(!1),i.error({code:e.code,name:e.name,message:e.message})}))}else c.consentDialog(!1),H(e,o,s,i,h)})).catch((function(e){c.consentDialog(!1),i.error(`enumerateDevices error`,e)}))}else H(e,o,s,i)}function U(e,t){(t||={}).success=typeof t.success==`function`?t.success:a.noop,t.error=typeof t.error==`function`?t.error:se;var n=t.jsep,r=T[e];if(r==null||r.webrtcStuff===null||r.webrtcStuff===void 0)return a.warn(`Invalid handle`),void t.error(`Invalid handle`);var i=r.webrtcStuff;if(n!=null){if(i.pc===null)return a.warn(`Wait, no PeerConnection?? if this is an answer, use createAnswer and not handleRemoteJsep`),void t.error(`No PeerConnection: if this is an answer, use createAnswer and not handleRemoteJsep`);i.pc.setRemoteDescription(n).then((function(){if(a.log(`Remote description accepted!`),i.remoteSdp=n.sdp,i.candidates&&i.candidates.length>0){for(var e in i.candidates){var r=i.candidates[e];a.debug(`Adding remote candidate:`,r),r&&!0!==r.completed?i.pc.addIceCandidate(r):i.pc.addIceCandidate()}i.candidates=[]}t.success()}),t.error)}else t.error(`Invalid JSEP`)}function ie(e,t){var n=T[e];if(n==null||n.webrtcStuff===null||n.webrtcStuff===void 0)return a.warn(`Invalid handle`),2;var r=t?`remote`:`local`,i=n.webrtcStuff;return i.volume[r]||(i.volume[r]={value:2}),i.pc===null||i.pc===void 0?2:i.pc.getStats&&a.webRTCAdapter.browserDetails.browser===`chrome`?!t||i.remoteStream!==null&&i.remoteStream!==void 0?t||i.myStream!==null&&i.myStream!==void 0?i.volume[r].timer===null||i.volume[r].timer===void 0?(a.log(`Starting `+r+` volume monitor`),i.volume[r].timer=setInterval((function(){i.pc.getStats().then((function(e){for(var n=e,a=0;a<n.length;a++){var o=n[a];o.type==`ssrc`&&i.volume[r]!==void 0&&(t&&o.stat(`audioOutputLevel`)?i.volume[r].value=parseInt(o.stat(`audioOutputLevel`)):!t&&o.stat(`audioInputLevel`)&&(i.volume[r].value=parseInt(o.stat(`audioInputLevel`))))}}))}),200),2):i.volume[r].value:(a.warn(`Local stream unavailable`),2):(a.warn(`Remote stream unavailable`),2):(a.warn(`Getting the `+r+` volume unsupported by browser`),2)}function ae(e,t){var n=T[e];if(n==null||n.webrtcStuff===null||n.webrtcStuff===void 0)return a.warn(`Invalid handle`),!0;var r=n.webrtcStuff;return r.pc===null||r.pc===void 0?(a.warn(`Invalid PeerConnection`),!0):r.myStream===void 0||r.myStream===null?(a.warn(`Invalid local MediaStream`),!0):t?r.myStream.getVideoTracks()===null||r.myStream.getVideoTracks()===void 0||r.myStream.getVideoTracks().length===0?(a.warn(`No video track`),!0):!r.myStream.getVideoTracks()[0].enabled:r.myStream.getAudioTracks()===null||r.myStream.getAudioTracks()===void 0||r.myStream.getAudioTracks().length===0?(a.warn(`No audio track`),!0):!r.myStream.getAudioTracks()[0].enabled}function W(e,t,n){var r=T[e];if(r==null||r.webrtcStuff===null||r.webrtcStuff===void 0)return a.warn(`Invalid handle`),!1;var i=r.webrtcStuff;return i.pc===null||i.pc===void 0?(a.warn(`Invalid PeerConnection`),!1):i.myStream===void 0||i.myStream===null?(a.warn(`Invalid local MediaStream`),!1):t?i.myStream.getVideoTracks()===null||i.myStream.getVideoTracks()===void 0||i.myStream.getVideoTracks().length===0?(a.warn(`No video track`),!1):(i.myStream.getVideoTracks()[0].enabled=!n,!0):i.myStream.getAudioTracks()===null||i.myStream.getAudioTracks()===void 0||i.myStream.getAudioTracks().length===0?(a.warn(`No audio track`),!1):(i.myStream.getAudioTracks()[0].enabled=!n,!0)}function G(e){var t=T[e];if(t==null||t.webrtcStuff===null||t.webrtcStuff===void 0)return a.warn(`Invalid handle`),`Invalid handle`;var n=t.webrtcStuff;return n.pc===null||n.pc===void 0?`Invalid PeerConnection`:n.pc.getStats?n.bitrate.timer===null||n.bitrate.timer===void 0?(a.log(`Starting bitrate timer (via getStats)`),n.bitrate.timer=setInterval((function(){n.pc.getStats().then((function(e){e.forEach((function(e){if(e){var t=!1;if((e.mediaType===`video`||e.id.toLowerCase().indexOf(`video`)>
75-1)&&e.type===`inbound-rtp`&&e.id.indexOf(`rtcp`)<0?t=!0:e.type!=`ssrc`||!e.bytesReceived||e.googCodecName!==`VP8`&&e.googCodecName!==``||(t=!0),t)if(n.bitrate.bsnow=e.bytesReceived,n.bitrate.tsnow=e.timestamp,n.bitrate.bsbefore===null||n.bitrate.tsbefore===null)n.bitrate.bsbefore=n.bitrate.bsnow,n.bitrate.tsbefore=n.bitrate.tsnow;else{var r=n.bitrate.tsnow-n.bitrate.tsbefore;a.webRTCAdapter.browserDetails.browser==`safari`&&(r/=1e3);var i=Math.round(8*(n.bitrate.bsnow-n.bitrate.bsbefore)/r);a.webRTCAdapter.browserDetails.browser===`safari`&&(i=parseInt(i/1e3)),n.bitrate.value=i+` kbits/sec`,n.bitrate.bsbefore=n.bitrate.bsnow,n.bitrate.tsbefore=n.bitrate.tsnow}}}))}))}),1e3),`0 kbits/sec`):n.bitrate.value:(a.warn(`Getting the video bitrate unsupported by browser`),`Feature unsupported by browser`)}let K;a.dataChanDefaultLabel=`JanusDataChannel`,e.brtc_v2?function(n){var r=a.randomString(12),d={[j]:`setup`,enable_multistream:!0,version:`brtc_v2`},f={plugin:`janus.plugin.videoroom`,session_config:{userevent:!0,sessionevent:!0},app_id:n.appid,room_name:n.roomname,id:n.userid,display:n.displayname,token:`no_token`,ptype:n.role,room_config:{publishers:100,videocodec:`H264`,audiocodec:`opus`}};if(n.sdktag!==void 0&&n.sdktag!==null&&(d.sdktag=n.sdktag),n.mediaserverip!==void 0&&n.mediaserverip!==null&&(f.session_config.janusIp=n.mediaserverip),n.clientip!==void 0&&n.clientip!==null&&(f.session_config.clientTcpIp=n.clientip),n.clientudpip!==void 0&&n.clientudpip!==null&&(f.session_config.clientUdpIp=n.clientudpip),d.body=f,d.transaction=r,d.uri=u.split(`?`)[0],t)for(var p in i=a.newWebSocket(u,M),o={error:function(){if(a.error(`Error connecting to the Janus WebSockets server... `+u),a.isArray(c)&&!n.reconnect)return++l==c.length?void n.error(`Error connecting to any of the provided Janus servers: Is the server down?`):(u=null,void setTimeout((function(){I(n)}),200));n.error(`Error connecting to the Janus WebSockets server: Is the server down?`)},open:function(){O[r]=function(e){if(e[j]!==`setuped`)return a.error(`Ooops: `+e.error.code+` `+e.error.reason),void n.error(e.error.reason);s=setTimeout(F,y),x=!0,S=e.session_id?e.session_id:e.data.id,a.sessions[S]=E,k=`brtc_v2`,e.data.version&&(k=e.data.version),n.onsetup(e)},i.send(JSON.stringify(d))},message:function(e){P(JSON.parse(e.data))},close:function(){u!==null&&x&&(x=!1,e.error(`Lost connection to the server (is it down?)`))}})i.addEventListener(p,o[p])}(e):e.brtc_v4?(j=`janus`,M=`janus-protocol`,a.dataChanDefaultLabel=`BRTC_SERVER_P2P_EVENT`,function(n){var r=a.randomString(12),c={[j]:`brtc_join`,version:`brtc_v4`},l={appId:n.appid,roomName:n.roomname,userId:n.userid,display:n.displayname,token:n.token,roomConfig:{videoCodec:`h264`,audioCodec:`opus`,subscribeMode:n.v4_submode},sessionConfig:{},participants:n.v4_participants};if(n.sdktag!==void 0&&n.sdktag!==null&&(l.sessionConfig.sdktag=n.sdktag),n.mediaserverip!==void 0&&n.mediaserverip!==null&&(l.sessionConfig.mediaserverip=n.mediaserverip),n.videocodec!==void 0&&n.videocodec!==null&&(l.roomConfig.videoCodec=n.videocodec),n.audiocodec!==void 0&&n.audiocodec!==null&&(l.roomConfig.audioCodec=n.audiocodec),typeof n.rtmp==`object`&&n.rtmp!==null&&(l.roomConfig.rtmp=n.rtmp),c.body=l,c.transaction=r,t)for(var d in i=a.newWebSocket(u,M),o={error:function(){a.error(`Error connecting to the BRTC WebSockets server... `+u),n.error(`Error connecting to the BRTC WebSockets server: Is the server down?`)},open:function(){O[r]=function(e){if(e[j]!==`brtc_joined`)return a.error(`Ooops: `+e.error.code+` `+e.error.reason),void n.error(e.error.reason);s=setTimeout(F,y),x=!0,S=e.session_id?e.session_id:e.data.id,a.sessions[S]=E,k=`brtc_v4`,e.data.version&&(k=e.data.version),n.onv4joined(e)},i.send(JSON.stringify(c))},message:function(e){P(JSON.parse(e.data))},close:function(){u!==null&&x&&(x=!1,e.error(`Lost connection to the server (is it down?)`))}})i.addEventListener(d,o[d])}(e)):e.brtc_render?(j=`brtc`,M=`brtc-protocol`,I(e)):I(e),this.getServer=function(){return u},this.isConnected=function(){return x},this.reconnect=function(e){(e||={}).success=typeof e.success==`function`?e.success:a.noop,e.error=typeof e.error==`function`?e.error:a.noop,e.reconnect=!0,I(e)}
75,this.getSessionId=function(){return S},this.getRoomName=function(){return C},this.getUserID=function(){return w},this.destroy=function(n){(function(n){(n||={}).success=typeof n.success==`function`?n.success:a.noop;var r=!0;n.asyncRequest!==void 0&&n.asyncRequest!==null&&(r=!0===n.asyncRequest);var c=!0;n.notifyDestroyed!==void 0&&n.notifyDestroyed!==null&&(c=!0===n.notifyDestroyed);var l=!1;if(n.cleanupHandles!==void 0&&n.cleanupHandles!==null&&(l=!0===n.cleanupHandles),a.log(`Destroying session `+S+` (async=`+r+`)`),!x)return a.warn(`Is the server down? (connected=false)`),void n.success();if(S==null)return a.warn(`No session to destroy`),n.success(),void(c&&e.destroyed());if(l)for(var d in T)ne(d,{noRequest:!0});var f={[j]:`destroy`,transaction:a.randomString(12)};if(_!=null&&(f.token=_),v!=null&&(f.apisecret=v),t){f.session_id=S;var p=function(){for(var e in o)i.removeEventListener(e,o[e]);i.removeEventListener(`message`,m),i.removeEventListener(`error`,g),s&&clearTimeout(s),i.close()},m=function(t){var r=JSON.parse(t.data);r.session_id==f.session_id&&r.transaction==f.transaction&&(p(),n.success(),c&&e.destroyed())},g=function(t){p(),n.error(`Failed to destroy the server: Is the server down?`),c&&e.destroyed()};i.addEventListener(`message`,m),i.addEventListener(`error`,g),i.readyState==1&&i.send(JSON.stringify(f));return}a.httpAPICall(u+`/`+S,{verb:`POST`,async:r,withCredentials:h,body:f,success:function(t){a.log(`Destroyed session:`),a.debug(t),S=null,x=!1,t[j]!==`success`&&a.error(`Ooops: `+t.error.code+` `+t.error.reason),n.success(),c&&e.destroyed()},error:function(t,r){a.error(t+`:`,r),S=null,x=!1,n.success(),c&&e.destroyed()}})})(n)},this.attach=function(e,t){R(e,t)},this.attachv4=function(e,t,n,r){R(e,t,n,r)},this.send=function(e){(function(e){if((e||={}).success=typeof e.success==`function`?e.success:a.noop,e.error=typeof e.error==`function`?e.error:a.noop,x){var n=e.message,r=a.randomString(12),o={[j]:`message`,body:n,transaction:r};t&&(o.session_id=S,O[r]=function(t){if(t[j]===`success`){var n=t.data;n==null?(a.warn(`Request succeeded, but missing data...`),e.success()):e.success(n);return}e.success()},i.send(JSON.stringify(o)))}})(e)},this.sendlog=function(e){(function(e){if((e||={}).success=typeof e.success==`function`?e.success:a.noop,e.error=typeof e.error==`function`?e.error:a.noop,x){var n=e.log,r=a.randomString(12),o={[j]:`sdklog`,log:n,transaction:r};t&&(o.session_id=S,i.send(JSON.stringify(o)))}})(e)},this.doaction=function(e,n){(function(e,n){if((n||={}).success=typeof n.success==`function`?n.success:a.noop,n.error=typeof n.error==`function`?n.error:a.noop,x){var r=a.randomString(12),o=e||{};(e={})[[j]]=`bdcrender`,(e=Object.assign({},e,o)).transaction=r,t&&(e.session_id=S,O[r]=function(e){if(n.response=typeof n.response==`function`?n.response:a.noop,n.response(e),e.action!==`success`)e.status===`success`?(t=e.data,n.success(t)):e.status===`failure`?n.error(e):n.success();else{var t=e.data;n.success(t)}},i.send(JSON.stringify(e)))}})(e,n)},this.onmessage=function(t){e.onmessage(t)},this.onuserevent=function(t){e.onuserevent(t)},this.onsessionevent=function(t){e.onsessionevent(t)},this.onbdcrevent=function(t){e.onbdcrevent(t)},this.V2setup=function(e){if(t){let t=a.randomString(12),n=e.request;O[t]=function(t){e.onsetup(t)},n.session_id=S,n.transaction=t,i.send(JSON.stringify(n));return}};let q=null,oe=[],J=[];function se(e){a.error(`WebRTC error:`,e)}function ce(e,n){a.log(`Cleaning WebRTC stuff`);var r=T[e];if(r!=null){var o=r.webrtcStuff;if(o!=null){if(!0===n){var s={[j]:`hangup`,transaction:a.randomString(12)};r.token!==null&&r.token!==void 0&&(s.token=r.token),v!=null&&(s.apisecret=v),a.debug(`Sending hangup request (handle=`+e+`):`),a.debug(s),t?(s.session_id=S,s.handle_id=e,i.send(JSON.stringify(s))):a.httpAPICall(u+`/`+S+`/`+e,{verb:`POST`,withCredentials:h,body:s})}o.remoteStream=null,o.volume&&(o.volume.local&&o.volume.local.timer&&clearInterval(o.volume.local.timer),o.volume.remote&&o.volume.remote.timer&&clearInterval(o.volume.remote.timer)),o.volume={},o.bitrate.timer&&clearInterval(o.bitrate.timer),o.bitrate.timer=null,o.bitrate.bsnow=null,o.bitrate.bsbefore=null,o.bitrate.tsnow=null,o.bitrate.tsbefore=null,o.bitrate.value=null,o.fps.timer&&clearInterval(o.fps.timer),o.fps.timer=null,o.fps.fsnow=null,o.fps.fsbefore=null,o.fps.tsnow=null,o.fps.tsbefore=null,o.fps.value=null;try{if(!o.streamExternal&&o.myStream!==null&&o.myStream!==void 0){a.log(`Stopping local stream tracks`);var c=o.myStream.getTracks();for(var l in c){var d=c[l];a.log(d),d?.stop()}}}catch{}o.streamExternal=!1,o.myStream=null;try{o.pc.close()}catch{}o.pc=null,o.candidates=null,o.mySdp=null,o.remoteSdp=null,o.iceDone=!1,o.dataChannel={},o.dtmfSender=null}r.oncleanup()}}function Y(e){return a.debug(`isAudioSendEnabled:`,e),e==null||!1!==e.audio&&(e.audioSen
75d===void 0||e.audioSend===null||!0===e.audioSend)}function X(e){return a.debug(`isAudioRecvEnabled:`,e),e==null||!1!==e.audio&&(e.audioRecv===void 0||e.audioRecv===null||!0===e.audioRecv)}function Z(e){return a.debug(`isVideoSendEnabled:`,e),e==null||!1!==e.video&&(e.videoSend===void 0||e.videoSend===null||!0===e.videoSend)}function le(e){return a.debug(`isVideoRecvEnabled:`,e),e==null||!1!==e.video&&(e.videoRecv===void 0||e.videoRecv===null||!0===e.videoRecv)}}function o(e,t,n){n??={},n.success=typeof n.success==`function`?n.success:function(){},n.error=typeof n.error==`function`?n.error:function(){},(function(e,t,n,r,i){let a=null;try{a=new XMLHttpRequest}catch{try{a=new ActiveXObject(`Microsoft.XMLHTTP`)}catch{window.alert(`Your browser does not support XMLHTTP!`);return}}a.open(`GET`,e+`?message=`+btoa(`[RTC_QUALITY_CONTROL]`+function(e){var t,n,r=``;for(e=e.replace(/\r\n/g,`
76`),n=0;n<e.length;n++)(t=e.charCodeAt(n))<128?r+=String.fromCharCode(t):t>127&&t<2048?(r+=String.fromCharCode(t>>6|192),r+=String.fromCharCode(63&t|128)):(r+=String.fromCharCode(t>>12|224),r+=String.fromCharCode(t>>6&63|128),r+=String.fromCharCode(63&t|128));return r}(JSON.stringify(t))),!0);for(let e in n)if(n.hasOwnProperty(e)){let t=n[e];a.setRequestHeader(e,t)}a.send(),a.onreadystatechange=function(){}})(e,t,{"Content-Type":`application/json`},n.success,n.error)}a.useDefaultDependencies=function(e){var t=e&&e.fetch||fetch,n=e&&e.Promise||Promise,r=e&&e.WebSocket||WebSocket;return{newWebSocket:function(e,t){return new r(e,t)},extension:e&&e.extension||i,isArray:function(e){return Array.isArray(e)},webRTCAdapter:e&&e.adapter||adapter,httpAPICall:function(e,r){var i={method:r.verb,headers:{Accept:`application/json, text/plain, */*`},cache:`no-cache`};r.verb===`POST`&&(i.headers[`Content-Type`]=`application/json`),r.withCredentials!==void 0&&(i.credentials=!0===r.withCredentials?`include`:r.withCredentials?r.withCredentials:`omit`),r.body!==void 0&&(i.body=JSON.stringify(r.body));var o=t(e,i).catch((function(e){return n.reject({message:`Probably a network error, is the server down?`,error:e})}));if(r.timeout!==void 0){var s=new n((function(e,t){var n=setTimeout((function(){return clearTimeout(n),t({message:`Request timed out`,timeout:r.timeout})}),r.timeout)}));o=n.race([o,s])}return o.then((function(e){return e.ok?typeof r.success==typeof a.noop?e.json().then((function(e){r.success(e)})).catch((function(t){return n.reject({message:`Failed to parse response body`,error:t,response:e})})):void 0:n.reject({message:`API call failed`,response:e})})).catch((function(e){typeof r.error==typeof a.noop&&r.error(e.message||`<< internal error >>`,e)})),o}}},a.useOldDependencies=function(e){var t=e&&e.jQuery||jQuery,n=e&&e.WebSocket||WebSocket;return{newWebSocket:function(e,t){return new n(e,t)},isArray:function(e){return t.isArray(e)},extension:e&&e.extension||i,webRTCAdapter:e&&e.adapter||adapter,httpAPICall:function(e,n){var r=n.body===void 0?{}:{contentType:`application/json`,data:JSON.stringify(n.body)},i=n.withCredentials===void 0?{}:{xhrFields:{withCredentials:n.withCredentials}};return t.ajax(t.extend(r,i,{url:e,type:n.verb,cache:!1,dataType:`json`,async:n.async,timeout:n.timeout,success:function(e){typeof n.success==typeof a.noop&&n.success(e)},error:function(e,t,r){typeof n.error==typeof a.noop&&n.error(t,r)}}))}}},a.noop=function(){},a.dataChanDefaultLabel=`JanusDataChannel`,a.init=function(e){if((e||={}).callback=typeof e.callback==`function`?e.callback:a.noop,!0===a.initDone)e.callback();else{if(typeof console<`u`&&console.log!==void 0||(console={log:function(){}}),a.trace=a.noop,a.debug=a.noop,a.vdebug=a.noop,a.log=a.noop,a.warn=a.noop,a.error=a.noop,!0===e.debug||e.debug===`all`)a.trace=console.trace.bind(console),a.debug=console.debug.bind(console),a.vdebug=console.debug.bind(console),a.log=console.log.bind(console),a.warn=console.warn.bind(console),a.error=console.error.bind(console);else if(Array.isArray(e.debug))for(var t in e.debug){var n=e.debug[t];switch(n){case`trace`:a.trace=console.trace.bind(console);break;case`debug`:a.debug=console.debug.bind(console);break;case`vdebug`:a.vdebug=console.debug.bind(console);break;case`log`:a.log=console.log.bind(console);break;case`warn`:a.warn=console.warn.bind(console);break;case`error`:a.error=console.error.bind(console);break;default:console.error(`Unknown debugging option '`+n+`' (supported: 'trace', 'debug', 'vdebug', 'log', warn', 'error')`)}}a.log(`Initializing library`);
76var r=e.dependencies||a.useDefaultDependencies();a.isArray=r.isArray,a.webRTCAdapter=r.webRTCAdapter,a.httpAPICall=r.httpAPICall,a.newWebSocket=r.newWebSocket,a.extension=r.extension,a.extension.init(),a.listDevices=function(e,t){e=typeof e==`function`?e:a.noop,t??={audio:!0,video:!0},a.isGetUserMediaAvailable()?navigator.mediaDevices.getUserMedia(t).then((function(t){navigator.mediaDevices.enumerateDevices().then((function(n){a.debug(n),e(n);try{var r=t.getTracks();for(var i in r)r[i]?.stop()}catch{}}))})).catch((function(t){a.error(t),e([])})):(a.warn(`navigator.mediaDevices unavailable`),e([]))},a.attachMediaStream=function(e,t){if(e!=null)if(a.webRTCAdapter.browserDetails.browser===`chrome`){a.webRTCAdapter.browserDetails.version;try{e.srcObject=t}catch{e.src=URL.createObjectURL(t)}}else e.srcObject=t},a.reattachMediaStream=function(e,t){a.webRTCAdapter.browserDetails.browser===`chrome`?a.webRTCAdapter.browserDetails.version>=52?e.srcObject=t.srcObject:e.src===void 0?a.error(`Error reattaching stream to element`):e.src=t.src:e.srcObject=t.srcObject};var i=[`iPad`,`iPhone`,`iPod`].indexOf(navigator.platform)>=0?`pagehide`:`beforeunload`,o=window[`on`+i];if(window.addEventListener(i,(function(e){for(var t in a.log(`Closing window`),a.sessions)a.sessions[t]!==null&&a.sessions[t]!==void 0&&a.sessions[t].destroyOnUnload&&(a.log(`Destroying session `+t),a.sessions[t].destroy({asyncRequest:!1,notifyDestroyed:!1}));o&&typeof o==`function`&&o()})),a.safariVp8=!1,a.webRTCAdapter.browserDetails.browser===`safari`&&a.webRTCAdapter.browserDetails.version>=605)if(RTCRtpSender&&RTCRtpSender.getCapabilities&&RTCRtpSender.getCapabilities(`video`)&&RTCRtpSender.getCapabilities(`video`).codecs&&RTCRtpSender.getCapabilities(`video`).codecs.length){for(var t in RTCRtpSender.getCapabilities(`video`).codecs){var s=RTCRtpSender.getCapabilities(`video`).codecs[t];if(s&&s.mimeType&&s.mimeType.toLowerCase()===`video/vp8`){a.safariVp8=!0;break}}a.safariVp8?a.log(`This version of Safari supports VP8`):a.warn(`This version of Safari does NOT support VP8: if you're using a Technology Preview, try enabling the 'WebRTC VP8 codec' setting in the 'Experimental Features' Develop menu`)}else{var c=new RTCPeerConnection({},{});c.createOffer({offerToReceiveVideo:!0}).then((function(e){a.safariVp8=e.sdp.indexOf(`VP8`)!==-1,a.safariVp8?a.log(`This version of Safari supports VP8`):a.warn(`This version of Safari does NOT support VP8: if you're using a Technology Preview, try enabling the 'WebRTC VP8 codec' setting in the 'Experimental Features' Develop menu`),c.close(),c=null}))}a.initDone=!0,e.callback()}},a.isWebrtcSupported=function(){return window.RTCPeerConnection!==void 0&&window.RTCPeerConnection!==null},a.isGetUserMediaAvailable=function(){return navigator.mediaDevices!==void 0&&navigator.mediaDevices!==null&&navigator.mediaDevices.getUserMedia!==void 0&&navigator.mediaDevices.getUserMedia!==null},a.randomString=function(e){for(var t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789`,n=``,r=0;r<e;r++){var i=Math.floor(Math.random()*t.length);n+=t.substring(i,i+1)}return n},function(){var e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_=null,v=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],y=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],b=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,99,99],x=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],S=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function w(){this.next=null,this.list=null}function T(){this.e=0,this.b=0,this.n=0,this.t=null}function E(e,t,n,r,i,a){var o;this.BMAX=16,this.N_MAX=288,this.status=0,this.root=null,this.m=0;var s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C=[],E=[],D=new T,O=[],k=[],A=[];for(S=this.root=null,d=0;d<this.BMAX+1;d++)C[d]=0;for(d=0;d<this.BMAX+1;d++)E[d]=0;for(d=0;d<this.BMAX;d++)O[d]=null;for(d=0;d<this.N_MAX;d++)k[d]=0;for(d=0;d<this.BMAX+1;d++)A[d]=0;s=t>256?e[256]:this.BMAX,m=e,h=0,d=t;do C[m[h]]++,h++;while(--d>0);if(C[0]===t)return this.root=null,this.m=0,void(this.status=0);for(f=1;f<=this.BMAX&&C[f]===0;f++);
76for(p=f,a<f&&(a=f),d=this.BMAX;d!==0&&C[d]===0;d--);for(l=d,a>d&&(a=d),y=1<<f;f<d;f++,y<<=1)if((y-=C[f])<0)return this.status=2,void(this.m=a);if((y-=C[d])<0)return this.status=2,void(this.m=a);for(C[d]+=y,A[1]=f=0,m=C,h=1,v=2;--d>0;)A[v++]=f+=m[h++];m=e,h=0,d=0;do(f=m[h++])!==0&&(k[A[f]++]=d);while(++d<t);for(t=A[l],A[0]=d=0,m=k,h=0,u=-1,_=E[0]=0,g=null,b=0;p<=l;p++)for(o=C[p];o-- >0;){for(;p>_+E[1+u];){if(_+=E[1+u],u++,b=(b=l-_)>a?a:b,(c=1<<(f=p-_))>o+1)for(c-=o+1,v=p;++f<b&&!((c<<=1)<=C[++v]);)c-=C[v];for(_+f>s&&_<s&&(f=s-_),b=1<<f,E[1+u]=f,g=[],x=0;x<b;x++)g[x]=new T;(S=S?S.next=new w:this.root=new w).next=null,S.list=g,O[u]=g,u>0&&(A[u]=d,D.b=E[u],D.e=16+f,D.t=g,f=(d&(1<<_)-1)>>_-E[u],O[u-1][f].e=D.e,O[u-1][f].b=D.b,O[u-1][f].n=D.n,O[u-1][f].t=D.t)}for(D.b=p-_,h>=t?D.e=99:m[h]<n?(D.e=m[h]<256?16:15,D.n=m[h++]):(D.e=i[m[h]-n],D.n=r[m[h++]-n]),c=1<<p-_,f=d>>_;f<b;f+=c)g[f].e=D.e,g[f].b=D.b,g[f].n=D.n,g[f].t=D.t;for(f=1<<p-1;(d&f)!=0;f>>=1)d^=f;for(d^=f;(d&(1<<_)-1)!==A[u];)_-=E[u],u--}this.m=E[1],this.status=+(y!==0&&l!==1)}function D(e){for(;o<e;)a|=(h.length===g?-1:255&h[g++])<<o,o+=8}function O(e){return a&v[e]}function k(e){a>>=e,o-=e}function A(n,r,i){var a,o,c;if(i===0)return 0;for(c=0;;){for(D(p),a=(o=d.list[O(p)]).e;a>16;){if(a===99)return-1;k(o.b),D(a-=16),a=(o=o.t[O(a)]).e}if(k(o.b),a!==16){if(a===15)break;for(D(a),l=o.n+O(a),k(a),D(m),a=(o=f.list[O(m)]).e;a>16;){if(a===99)return-1;k(o.b),D(a-=16),a=(o=o.t[O(a)]).e}for(k(o.b),D(a),u=t-o.n-O(a),k(a);l>0&&c<i;)l--,u&=32767,t&=32767,n[r+ c++]=e[t++]=e[u++];if(c===i)return i}else if(t&=32767,n[r+ c++]=e[t++]=o.n,c===i)return i}return s=-1,c}function j(n,r,i){var c;if(k(c=7&o),D(16),c=O(16),k(16),D(16),c!==(65535&~a))return-1;for(k(16),l=c,c=0;l>0&&c<i;)l--,t&=32767,D(8),n[r+ c++]=e[t++]=O(8),k(8);return l===0&&(s=-1),c}function M(e,t,a){if(!_){var o,s,c=[];for(o=0;o<144;o++)c[o]=8;for(;o<256;o++)c[o]=9;for(;o<280;o++)c[o]=7;for(;o<288;o++)c[o]=8;if((s=new E(c,288,257,y,b,r=7)).status!==0)return console.error(`HufBuild error: `+s.status),-1;for(_=s.root,r=s.m,o=0;o<30;o++)c[o]=5;if((s=new E(c,30,0,x,S,i=5)).status>1)return _=null,console.error(`HufBuild error: `+s.status),-1;n=s.root,i=s.m}return d=_,f=n,p=r,m=i,A(e,t,a)}function N(e,t,n){var r,i,a,o,s,c,l,u,h,g=[];for(r=0;r<316;r++)g[r]=0;if(D(5),l=257+O(5),k(5),D(5),u=1+O(5),k(5),D(4),c=4+O(4),k(4),l>286||u>30)return-1;for(i=0;i<c;i++)D(3),g[C[i]]=O(3),k(3);for(;i<19;i++)g[C[i]]=0;if((h=new E(g,19,19,null,null,p=7)).status!==0)return-1;for(d=h.root,p=h.m,o=l+u,r=a=0;r<o;)if(D(p),k(i=(s=d.list[O(p)]).b),(i=s.n)<16)g[r++]=a=i;else if(i===16){if(D(2),i=3+O(2),k(2),r+i>o)return-1;for(;i-- >0;)g[r++]=a}else if(i===17){if(D(3),i=3+O(3),k(3),r+i>o)return-1;for(;i-- >0;)g[r++]=0;a=0}else{if(D(7),i=11+O(7),k(7),r+i>o)return-1;for(;i-- >0;)g[r++]=0;a=0}if(h=new E(g,l,257,y,b,p=9),p===0&&(h.status=1),h.status!==0&&h.status!==1)return-1;for(d=h.root,p=h.m,r=0;r<u;r++)g[r]=g[r+l];return h=new E(g,u,0,x,S,m=6),f=h.root,(m=h.m)===0&&l>257||h.status!==0?-1:A(e,t,n)}function P(n,r,i){var a,o;for(a=0;a<i;){if(c&&s===-1)return a;if(l>0){if(s!==0)for(;l>0&&a<i;)l--,u&=32767,t&=32767,n[r+ a++]=e[t++]=e[u++];else{for(;l>0&&a<i;)l--,t&=32767,D(8),n[r+ a++]=e[t++]=O(8),k(8);l===0&&(s=-1)}if(a===i)return a}if(s===-1){if(c)break;D(1),O(1)!==0&&(c=!0),k(1),D(2),s=O(2),k(2),d=null,l=0}switch(s){case 0:o=j(n,r+a,i-a);break;case 1:o=d?A(n,r+a,i-a):M(n,r+a,i-a);break;case 2:o=d?A(n,r+a,i-a):N(n,r+a,i-a);break;default:o=-1}if(o===-1)return c?0:-1;a+=o}return a}window.brtc_inflate=function(n){var r,i=[];e||=[],t=0,a=0,o=0,s=-1,c=!1,l=u=0,d=null,h=n,g=0;do r=P(i,i.length,1024);while(r>0);return h=null,i}}();function s(){var e=`janus.plugin.videoroom`,t=a.randomString(12),n=`-id-`+t;this.setThisDomID=function(e){n=e};var r=!1,i=!1,s=!1,c=null,l=null,u=null,d=null,f=null,p=`brtc-client-`+t,m=!1,h=null,g=null,_=null,v=null,y=[],b=[],x=[],S=[],C=[],w=[],T=null,E=null,D=null,O=null,k=``,A=null,j=10,M=`h264`,N=null,P=!0,F=!1,I=!1,L=!0,R=!0,ee=!0,z=!0;let B=null,te=1500;var V=null,ne=!1,H=!1,re=!1,U=!0,ie=!0,ae=!1,W=!1,G=1e4,K=``,q=!0,oe=null,J=``,se=!1,ce=null,Y=18e4,X=null,Z=null,le=null,ue=null,de=null,fe=null,pe=function(){},me=!0,he=!0,ge=!1,_e=!1,ve=!0;let ye=null,be=null,xe=null;var Se=function(){},Ce=function(){},we=function(){},Te=function(){},Ee=function(){},De=function(){},Oe=function(){},ke=function(){},Ae=function(){Wt(!0)},je=function(){},Me=function(e){},Ne=function(e){},Pe=function(e){},Fe=function(e){},Ie=function(e){},Le=function(e){},Re=function(){},ze=function(e){},Be=function(e,t){},Ve=function(e,t){},He=function(e,t){},Ue=function(e,t,n){},We=function(e){},Ge=function(e){},Ke=function(e){},qe=[],Je=[],Ye=function(e){},Xe=function(e){},Ze=!1,Qe=function(){},Q={using_video:!0,using_audio:!0,mirrorlocalvideo:!0,remoteaudioid:``,videoprofile:`hires`,videoDeviceId:null,audioDeviceId:null,audioOutputDeviceId:null,myStream:null,onlocalstream:function(){}};let $e={serverUrl:`https://rtc-log.cdn.bcebos.com/collect`,defaultOpen:!0,gatherInterval:2,uploadInterval:10};var et=!1,tt=`online`;let nt=null;var rt=function(){},it=function(){},at=function(){},ot=function(){},st=!1,ct=`hires`,lt=`raw`,ut=!0,dt=null,ft=null,pt=null,mt=[{ptype:`publisher`,sdpInfo:{}},{ptype:`subscriber`,streamCreateMode:`pre_create`,sdpInfo:{}}],ht=!1;function gt(e,t){e?it(t):rt(t)}function $(e){return new _t.init(e)}var _t={init:function(e){if(!e)return this;if(typeof e==`string`){var t=document.getElementById(e.substring(1)+n);return t||=document.getElementById(e.substring(1)),t?(this[0]=t,this.length=1,this.append=function(e){if(t!=null){var n=document.createElement(`div`),r=document.createDocumentFragment();n.innerHTML=e;for(var i=0,a=n.children,o=a.length;i<o;i++)r.appendChild(a[0]);return t.appendChild(r),a=null,r=null,n=null,t}},this.remove=function(){t!=null&&t.parentNode!=null&&t.parentNode.removeChild(t)},this.attr=function(e,n){if(t!=null)return t.setAttribute(e,n),this[0]=t,this.length=1,this},this.unbind=function(e){return t},this.empty=function(){return t.innerHTML=``,t},this.hide=function(){t!=null&&(t.style.display=`none`)},this.removeClass=function(e){if(t!=null)return t.classList.remove(e),this[0]=t,this.length=1,this.show=function(){t!=null&&(t.style.display=0)},this.text=function(e){if(t!=null)return t.innerHTML=e,this[0]=t,this.length=1,this.show=function(){t!=null&&(t.style.display=0)},this},this},this.show=function(){t!=null&&(t.style.display===`none`?t.style.display=`inline-block`:t.style.display=0)},this.get=function(e){return t},this.bind=function(e,n){t.addEventListener(e,n)},this.text=function(e){t!=null&&(t.innerHTML=e)}):(this.length=0,this.remove=function(){},this.removeClass=function(){},this.append=function(e){},this.empty=function(e){},this.text=function(e){},this.get=function(e){return null},this.hide=function(){},this.show=function(){}),this}}};
76function vt(){_&&_.getVideoTracks().forEach((function(e){e.stop()}))}this.BRTC_Start=function(t){if(console.log(`BRTC_Start: `+window.BRTC_Version()),(t||={}).success=typeof t.success==`function`?t.success:function(){},t.error=typeof t.error==`function`?t.error:function(){},t.destroyed=typeof t.destroyed==`function`?t.destroyed:function(){},t.onlocalstream=typeof t.onlocalstream==`function`?t.onlocalstream:function(){},t.onlocalstream_end=typeof t.onlocalstream_end==`function`?t.onlocalstream_end:function(){},t.onmessage=typeof t.onmessage==`function`?t.onmessage:function(){},t.onattribute=typeof t.onattribute==`function`?t.onattribute:function(){},c=t.server!==null&&t.server!==void 0?t.server:`wss://rtc.exp.bcelive.com/janus`,r=!1,i=!1,s=!1,ce=null,e=`janus.plugin.videoroom`,typeof t.multistream==`boolean`&&(r=t.multistream),typeof t.v4==`boolean`&&(i=t.v4),t.bdcruserid&&t.projectid&&(s=!0),typeof t.brtc_render==`boolean`&&(s=t.brtc_render),t.displayname&&t.displayname.includes(`BRTC_V2_MS_FLAG`)&&(r=!0),t.displayname&&t.displayname.includes(`BRTC_V4_FLAG`)&&(i=!0),t.videocodec!==null&&t.videocodec!==void 0&&(M=t.videocodec),t.audiocodec!==null&&t.audiocodec!==void 0&&(N=t.audiocodec),Nt(t),t.logintimeout!==null&&t.logintimeout!==void 0&&(G=t.logintimeout),t.logintimeoutevent!==null&&t.logintimeoutevent!==void 0&&(je=t.logintimeoutevent),t.remotevideoloading!==null&&t.remotevideoloading!==void 0&&(Me=t.remotevideoloading),t.statsconfig!==null&&t.statsconfig!==void 0){let e=t.statsconfig;e.serverurl!==null&&e.serverurl!==void 0&&($e.serverUrl=e.serverurl),e.gatherinterval!==null&&e.gatherinterval!==void 0&&parseInt(e.gatherinterval,10)&&($e.gatherInterval=e.gatherinterval),e.uploadinterval!==null&&e.uploadinterval!==void 0&&parseInt(e.uploadinterval,10)&&($e.uploadInterval=e.uploadinterval)}if(t.linkdownupthreshold!==null&&t.linkdownupthreshold!==void 0&&t.linkdownupthreshold,t.linkdownevent!==null&&t.linkdownevent!==void 0&&(rt=t.linkdownevent),t.mediastate!==null&&t.mediastate!==void 0&&(at=t.mediastate),t.linkupevent!==null&&t.linkupevent!==void 0&&(it=t.linkupevent),setTimeout((function(){u===null&&je()}),G),t.userevent!==null&&t.userevent!==void 0&&(me=t.userevent),t.sessionevent!==null&&t.sessionevent!==void 0&&(he=t.sessionevent),typeof t.usingremotemediastate==`boolean`&&t.usingremotemediastate?(ot=t.remotemediastating,ge=!0):ge=!1,typeof t.userevent_joinedroom==`function`&&(Ve=t.userevent_joinedroom),typeof t.userevent_leavingroom==`function`&&(He=t.userevent_leavingroom),typeof t.onrtmpstreaming==`function`&&(Ue=t.onrtmpstreaming),typeof t.onrecording==`function`&&(We=t.onrecording),typeof t.onmsgdelayinfo==`function`&&(Ge=t.onmsgdelayinfo),typeof t.onbdcrdevicelocked==`function`&&(Ke=t.onbdcrdevicelocked),typeof t.a==`function`&&t.a(`[email protected]`),c=s?c+`?projectid=`+t.projectid+`&appid=`+t.appid+`&bdcruserid=`+t.bdcruserid+`&token=`+t.token:c+`?appid=`+t.appid+`&roomname=`+encodeURIComponent(t.roomname)+`&uid=`+t.userid+`&token=`+t.token,(r||i)&&(c+=`&enable_multistream=true`),i&&(c+=`&enablePruneSignal=true`),typeof t.tag==`string`&&(c=c+`&tag=`+encodeURIComponent(t.tag)),(typeof t.compulsive!=`boolean`||t.compulsive)&&(c+=`&compulsive=true`),!m)if(m=!0,Se=t.success,Ce=t.error,we=t.destroyed,Te=t.onlocalstream,Ee=t.onlocalstream_end,Xe=t.onattribute,Ye=t.onmessage,t.remotevideoon!==null&&t.remotevideoon!==void 0&&(Ne=t.remotevideoon),t.remotevideooff!==null&&t.remotevideooff!==void 0&&(Pe=t.remotevideooff),t.remotevideocoming!==null&&t.remotevideocoming!==void 0&&(Ie=t.remotevideocoming),t.remotevideoleaving!==null&&t.remotevideoleaving!==void 0&&(Le=t.remotevideoleaving),t.remotevideounpublished!==null&&t.remotevideounpublished!==void 0&&(ze=t.remotevideounpublished),t.remotedata!==null&&t.remotedata!==void 0&&(Be=t.remotedata),t.localvideopublishing!==null&&t.localvideopublishing!==void 0&&(De=t.localvideopublishing),typeof t.localvideoconnected_state==`function`&&(Oe=t.localvideoconnected_state),t.localvideopublished_ok!==null&&t.localvideopublished_ok!==void 0&&(ke=t.localvideopublished_ok),t.localvideopublished_closed!==null&&t.localvideopublished_closed!==void 0&&(Ae=t.localvideopublished_closed),typeof t.remotevideoconnected_state==`function`&&(Re=t.remotevideoconnected_state),t.remotevideo_closed!==null&&t.remotevideo_closed!==void 0&&(Fe=t.remotevideo_closed),a.isWebrtcSupported()){if
76(E=t.roomname,O=t.userid,k=t.bdcruserid,T=t.appid,A=t.displayname,P||(A+=`:web_listener`),D=`publisher`,i)return this.BRTC_MuteCamera=this.v4hook_BRTC_MuteCamera,this.BRTC_MuteRemoteVideo=this.v4hook_BRTC_MuteRemoteVideo,this.BRTC_MuteRemoteAudio=this.v4hook_BRTC_MuteRemoteAudio,this.BRTC_SwitchScreen=this.v4hook_BRTC_SwitchScreen,this.BRTC_StopPublish=this.v4hook_BRTC_StopPublish,this.BRTC_StopSubscribeStreaming=this.v4hook_BRTC_StopSubscribeStreaming,e=`brtc.plugin.videoroom`,void new Promise((e,t)=>{var n=new RTCPeerConnection;n.addTransceiver(`audio`,{direction:`sendonly`}),n.addTransceiver(`video`,{direction:`sendonly`}),n.createDataChannel(`brtc`,{ordered:!0});var r=n.createOffer().then((function(e){return new Promise((t,n)=>{e.ptype=`publisher`,t(e)})}));ft=n,(n=new RTCPeerConnection).addTransceiver(`audio`,{direction:`recvonly`}),n.addTransceiver(`video`,{direction:`recvonly`}),n.addTransceiver(`audio`,{direction:`recvonly`}),n.addTransceiver(`video`,{direction:`recvonly`}),n.addTransceiver(`audio`,{direction:`recvonly`}),n.addTransceiver(`video`,{direction:`recvonly`}),n.addTransceiver(`audio`,{direction:`recvonly`}),n.addTransceiver(`video`,{direction:`recvonly`}),n.addTransceiver(`audio`,{direction:`recvonly`}),n.addTransceiver(`video`,{direction:`recvonly`}),n.createDataChannel(`brtc`,{ordered:!0});var i=n.createOffer().then((function(e){return new Promise((t,n)=>{e.ptype=`subscriber`,t(e)})}));Promise.all([r,i]).then((function(t){for(var n in t){var r=t[n];r.ptype===`publisher`?(mt[0].sdpInfo=Lt(r.sdp),ft.sdp=r.sdp,ft.setLocalDescription(r)):r.ptype===`subscriber`&&(mt[1].sdpInfo=Lt(r.sdp),r.sdp=Bt(mt[1].sdpInfo,mt[1].sdpInfo.streams),pt.sdp=r.sdp,pt.setLocalDescription(r))}e(t)})),pt=n}).then((function(e){Ut()}));s&&(e=`brtc.plugin.videoroom`),Ut()}else Ce(`No WebRTC support... `)},this.BRTC_Stop=function(){nn({roomEvent:{userName:A+`(`+O+`)`,eventDescription:`LEAVE_ROOM`}}),Ce=function(){},Je=[],vt(),l!=null&&(l.destroy({cleanupHandles:!0}
76),l=null),nt!=null&&window.clearInterval(nt),y.forEach(e=>{e&&typeof e==`object`&&$(`#videoremote`+e.rfindex).remove()}),u=null,y=[],d=null,f=null,ht=!1,S={},x=[],w=[],qe=[],C=[],m=!1,je=function(){},$(`#videoremote1`).remove(),$(`#videolocal`).remove(),$(`#videoremote2`).remove(),$(`#videoremote3`).remove(),$(`#videoremote4`).remove(),$(`#videoremote5`).remove()},this.BRTC_SendData=function(e,t){if(i){var n=`BRTC_CLIENT_UNRELIABLE_MESSAGE`;Xt(JSON.stringify({type:n,from:parseInt(O,10),to:0,data:e}),n)}else Xt(e,t)},this.BRTC_StopVideo=function(){vt()};let yt={};function bt(e){let t={update:!0,replaceVideo:e.getVideoTracks()&&e.getVideoTracks().length,replaceAudio:e.getAudioTracks()&&e.getAudioTracks().length,audioRecv:!1,videoRecv:!1,audioSend:!0,videoSend:!0};u.createOffer({media:t,stream:e,success(e){}})}function xt(e){console.log(`navigator.MediaDevices.getUserMedia error: `,e.message,e.name)}function St(){_&&_.getAudioTracks().forEach((function(e){e.stop()}))}function Ct(e,t,n,r){if(f!==null){var i=[];if(n===void 0)e===`video`?i=[`1`,`3`,`5`,`7`,`9`]:e===`audio`&&(i=[`0`,`2`,`4`,`6`,`8`]);else{if(!b[n])return;b[n].streams.forEach(t=>{t.type===e&&typeof t.pullmid==`number`&&i.push(t.pullmid.toString())})}i.length>0&&function(e,t,n){var r=`BRTC_CLIENT_SIGNAL`,i=[];n.forEach(n=>{i.push({mid:n,type:e,receive:!t})});var o={type:r,data:{request:`configure`,transaction:a.randomString(12),handleId:f.getId(),session_id:l.getSessionId(),streams:i}};Zt(JSON.stringify(o),r)}(e,t,i)}}function wt(e,t){var n;if(n=Pt(e?lt:ct),e){if(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)return navigator.mediaDevices.getDisplayMedia({video:n,audio:t})}else if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia)return navigator.mediaDevices.getUserMedia({video:n,audio:t});return new Promise((e,t)=>{t(`No webrtc getUser/DiplayMedia API`)})}function Tt(e){if(F)return Qe=function(){setTimeout((function(){F=!F,Wt(!0)}),500)},Ze=!0,void Kt();var t=Pt(lt);navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia&&navigator.mediaDevices.getDisplayMedia({video:t}).then((function(t){e&&e.success&&e.success(`BRTC_SwitchScreen success.`),Qe=function(){setTimeout((function(){F=!F;var e=L;L=!0,Wt(!0,!1,t),L=e}),500)},Ze=!0,Kt()}),(function(t){e&&e.error&&e.error(`BRTC_SwitchScreen error: `+t)}))}function Et(e){var t=!1;qe.some((n,r)=>!(!n||typeof n!=`object`||n.id!=e.id)&&(qe.splice(r,1),qe.push(e),t=!0,!0)),!1===t&&qe.push(e)}function Dt(e){qe.some((t,n)=>!(!t||typeof t!=`object`||t.id!=e)&&(qe.splice(n,1),!0))}function Ot(e,t){qe.some((n,r)=>!(!n||typeof n!=`object`||n.id!==e)&&(n.isleaving=t,!0))}function kt(e){var t=!1;return qe.some((n,r)=>!(!n||typeof n!=`object`||n.id!==e)&&(t=typeof n.isleaving==`boolean`&&n.isleaving,!0)),t}function At(e){var t=!1;return qe.some((n,r)=>!(!n||typeof n!=`object`||n.id!==e)&&(t=!0,!0)),t}function jt(e){Je.some((t,n)=>!(!t||typeof t!=`object`||t.id!=e)&&(Je.splice(n,1),!0))}function Mt(e){qe.some((t,n)=>!(!t||typeof t!=`object`||t.id!=e.id)&&(qe[n].attribute=e.attribute,!0))}function Nt(e){if(e.videoprofile!==null&&e.videoprofile!==void 0&&(ct=e.videoprofile),e.screensharevideoprofile!==null&&e.screensharevideoprofile!==void 0&&(lt=e.screensharevideoprofile),e.aspublisher!==null&&e.aspublisher!==void 0&&(P=e.aspublisher),e.aslistener!==null&&e.aslistener!==void 0&&e.aslistener,e.usingdatachannel!==null&&e.usingdatachannel!==void 0&&(I=e.usingdatachannel),e.usingvideo!==null&&e.usingvideo!==void 0&&(L=e.usingvideo),e.usingaudio!==null&&e.usingaudio!==void 0&&(R=e.usingaudio),e.receivingvideo!==null&&e.receivingvideo!==void 0&&(ee=e.receivingvideo),e.receivingaudio!==null&&e.receivingaudio!==void 0&&(z=e.receivingaudio),e.bitrate!==null&&e.bitrate!==void 0&&(B=e.bitrate),e.audiobitrate!==null&&e.audiobitrate!==void 0&&(V=e.audiobitrate),e.audiostereo!==null&&e.audiostereo!==void 0&&(ne=e.audiostereo),e.screenbitrate!==null&&e.screenbitrate!==void 0&&(te=e.screenbitrate),e.showvideobps!==null&&e.showvideobps!==void 0&&(H=e.showvideobps),e.shownovideo!==null&&e.shownovideo!==void 0&&(ve=e.shownovideo),e.sharescreen!==null&&e.sharescreen!==void 0&&(F=e.sharescreen),e.showspinner!==null&&e.showspinner!==void 0&&(W=e.showspinner),e.autoplaymuted!==null&&e.autoplaymuted!==void 0&&(re=e.autoplaymuted),e.autosubscribe!==null&&e.autosubscribe!==void 0&&(U=e.autosubscribe),e.autopublish!==null&&e.autopublish!==void 0&&(ie=e.autopublish),e.autoresubscribing!==null&&e.autoresubscribing!==void 0&&e.autoresubscribing,e.v4autostreaming!==null&&e.v4autostreaming!==void 0&&(ae=e.v4autostreaming),e.rtmpserver!==null&&e.rtmpserver!==void 0&&(K=e.rtmpserver),e.rtmpmix!==null&&e.rtmpmix!==void 0&&(q=e.rtmpmix),e.rtmpmixtemplate!==null&&e.rtmpmixtemplate!==void 0&&(oe=e.rtmpmixtemplate),e.rtmpmixlayoutindex!==null&&e.rtmpmixlayoutindex!==void 0&&(J=e.rtmpmixlayoutindex),e.recording!==null&&e.recording!==void 0&&(se=e.recording),K.includes(`rtmp`)&&((ce={}).url=K,ce.mix=q,typeof oe==`string`&&oe!==``&&(ce.mixTemplate=oe),typeof oe==`object`&&oe&&(ce.mixTranscodingCfg=oe,delete ce.mix)),e.waitpermissiontimeoutms!==null&&e.waitpermissiontimeoutms!==void 0&&(Y=e.waitpermissiontimeoutms),e.candidateip!==null&&e.candidateip!==void 0&&(X=e.candidateip),e.candidateport!==null&&e.candidateport!==void 0&&(Z=e.candidateport),e.mediaserverip!==null&&e.mediaserverip!==void 0&&(le=e.mediaserverip),e.clientip!==null&&e.clientip!==void 0&&(ue=e.clientip),e.clientudpip!==null&&e.clientudpip!==void 0&&(de=e.clientudpip),e.videodeviceid!==null&&e.videodeviceid!==void 0&&(ye=e.videodeviceid),e.audiodeviceid!==null&&e.audiodeviceid!==void 0&&(be=e.audiodeviceid),e.audiooutputdeviceid!==null&&e.audiooutputdeviceid!==void 0&&(xe=e.audiooutputdeviceid),e.mirrorlocalvideo!==null&&e.mirrorlocalvideo!==void 0&&(st=e.mirrorlocalvideo),e.reportmonitordata!==null&&e.reportmonitordata!==void 0&&(et=e.reportmonitordata),e.reportenv!==null&&e.reportenv!==void 0&&(tt=e.reportenv),e.debuglevel!==null&&e.debuglevel!==void 0&&(_e=e.debuglevel),e.stream!==null&&e.stream!==void 0&&(fe=e.stream),e.ongetsharescreenstream!==null&&e.ongetsharescreenstream!==void 0&&(pe=e.ongetsharescreenstream),e.remotevideoviewid!=`videoremote1`&&typeof e.remotevideoviewid==`string`&&($(`#videoremote1`+n).remove(),$(`#`+e.remotevideoviewid).append(`<div style="width: 100%;height: 100%;" id="videoremote1`+n+`"></div>`)),e.localvideoviewid!=`videolocal`&&typeof e.localvideoviewid==`string`&&($(`#videolocal`+n).remove(),$(`#`+e.localvideoviewid).append(`<div style="width: 100%;height: 100%;" id="videolocal`+n+`"></div>`)),e.remotevideoviewid2!=`videoremote2`&&typeof e.remotevideoviewid2==`string`&&($(`#videoremote2`+n).remove(),$(`#`+e.remotevideoviewid2).append(`<div style="width: 100%;height: 100%;" id="videoremote2`+n+`"></div>`)),e.remotevideoviewid3!=`videoremote3`&&typeof e.remotevideoviewid3==`string`&&($(`#videoremote3`+n).remove(),$(`#`+e.remotevideoviewid3).append(`<div style="width: 100%;height: 100%;" id="videoremote3`+n+`"></div>`)),e.remotevideoviewid4!=`videoremote4`&&typeof e.remotevideoviewid4==`string`&&($(`#videoremote4`+n).remove(),$(`#`+e.remotevideoviewid4).append(`<div style="width: 100%;height: 100%;" id="videoremote4`+n+`"></div>`)),e.remotevideoviewid5!=`videoremote5`&&typeof e.remotevideoviewid5==`string`&&($(`#videoremote5`+n).remove(),$(`#`+e.remotevideoviewid5).append(`<div style="width: 100%;height: 100%;" id="videoremote5`+n+`"></div>`)),i&&!U){if(!document.getElementById(`v4videos`+n)){var t=document.createElement(`div`);t.style=`width: 240; height: 240px; display: none;`,t.id=`v4videos`+n,document.body.appendChild(t)}document.getElementById(`videoremote1`+n)||$(`#v4videos`).append(`<div style="width: 100%;height: 100%;" id="videoremote1`+n+`"></div>`),document.getElementById(`videoremote2`+n)||$(`#v4videos`).append(`<div style="width: 100%;height: 100%;" id="videoremote2`+n+`"></div>`),document.getElementById(`videoremote3`+n)||$(`#v4videos`).append(`<div style="width: 100%;height: 100%;" id="videoremote3`+n+`"></div>`),document.getElementById(`videoremote4`+n)||$(`#v4videos`).append(`<div style="width: 100%;height: 100%;" id="videoremote4`+n+`"></div>`),document.getElementById(`videoremote5`+n)||$(`#v4videos`).append(`<div style="width: 100%;height: 100%;" id="videoremote5`+n+`"></div>`)}}function Pt(e){var t=!0,n=e;if(n===`raw`)t=!0;else if(typeof n==`object`)t=n;else{var r=0,i=0;if(n===`lowres`?(i=240,r=320):n===`lowres-16:9`?(i=180,r=320):n===`hires`||n===`hires-16:9`||n===`hdres`?(i=720,r=1280):n===`fhdres`?(i=1080,r=1920):n===`4kres`?(i=2160,r=3840):n===`stdres`?(i=480,r=640):n===`stdres-16:9`?(i=360,r=640):(i=480,r=640),t={height:{ideal:i},width:{ideal:r}},n.includes(`x`)){var a=n.split(`x`),o=a[0],s=a[1].split(`@`),c=s[0],l=15;s.length>1&&(l=s[1]),t={height:{ideal:c},width:{ideal:o}},s.length>1&&(t.frameRate={},t.frameRate.ideal=l)}}return t}function Ft(e,t,n){if((n||={}).success=typeof n.success==`function`?n.success:function(){},n.error=typeof n.error==`function`?n.error:function(){},!e&&!t)return It(),Q.using_video=e,void(Q.using_audio=t);var r=e;if(e&&(r=Pt(Q.videoprofile),Q.videoDeviceId!==null&&Q.videoDeviceId!==void 0&&Q.videoDeviceId!==`default`)){let e={exact:Q.videoDeviceId};r.deviceId=e}var i=t;if(Q.audioDeviceId!==null&&Q.audioDeviceId!==void 0&&Q.audioDeviceId!==`default`){i={};let e={exact:Q.audioDeviceId};i.deviceId=e}navigator.mediaDevices.getUserMedia({video:!!e&&r,audio:!!t&&i}).then((function(r){Q.using_video=e,Q.using_audio=t,function(e,t){if(e!=null)try{e.srcObject=t}catch{e.src=URL.createObjectURL(t)}}
76($(`#dt_myvideo`).get(0),r),It(),Q.myStream=r,n.success(),Q.onlocalstream(r,`camera`)})).catch((function(e){n.error(e)}))}function It(){Q.myStream&&=(Q.myStream.getAudioTracks().forEach((function(e){e.stop()})),Q.myStream.getVideoTracks().forEach((function(e){e.stop()})),null)}function Lt(e){var t=e.split(`\r
77`),n={},r=``,i={},a=0,o=0;n.audioLevelExtId=1,n.transportWideCcExtId=3,n.midExtId=4,n.streams=[];for(var s=0;s<t.length;s++){var c=t[s].match(/m=(\w+) */);if(c&&(r=c[1],i.type&&(o&&(i.ssrc=o),n.streams.push(Object.assign({},i))),r===`application`&&(r=`data`),(i={}).type=r,i.mindex=a++,o=0,r===`video`?(i.codec=`h264`,i.ssrc=Math.floor(4294967295*Math.random())):r===`audio`&&(i.codec=typeof N==`string`&&N?N:`opus`,i.ssrc=Math.floor(4294967295*Math.random()))),t[s].match(/a=mid:*/))i.mid=t[s].match(/a=mid:(.+)/)[1];else if(t[s].match(/a=ssrc:(\d+) */))i.ssrc=parseInt(t[s].match(/a=ssrc:(\d+) */)[1],10);else if(t[s].match(/a=ice-ufrag*/))n.clientIceUfrag=t[s].match(/a=ice-ufrag:(.+)/)[1];else if(t[s].match(/a=ice-pwd*/))n.clientIcePwd=t[s].match(/a=ice-pwd:(.+)/)[1];else if(t[s].match(/a=fingerprint*/)){var l=t[s].match(/a=fingerprint:(.+) (.+)/);n.clientDtlsHashing=l[1],n.clientDtlsFingerprint=l[2]}else t[s].match(/a=setup:*/)?n.clientDtlsRole=t[s].match(/a=setup:(.+)/)[1]:t[s].match(/a=ssrc-group:FID*/)?o=parseInt(t[s].match(/a=ssrc-group:FID (\d+) */)[1],10):i.pt||(!t[s].match(/a=rtpmap:(\d+) opus\/48000\/2/)||N&&N!==`opus`?t[s].match(/a=rtpmap:(\d+) PCMU\/8000/)&&N===`pcmu`?i.pt=parseInt(t[s].match(/a=rtpmap:(\d+) PCMU\/8000/)[1],10):t[s].match(/a=rtpmap:(\d+) H264\/90000/)&&(i.pt=parseInt(t[s].match(/a=rtpmap:(\d+) H264\/90000/)[1],10)):i.pt=parseInt(t[s].match(/a=rtpmap:(\d+) opus\/48000\/2/)[1],10))}return i.type&&(o&&(i.ssrc=o),n.streams.push(Object.assign({},i))),n}function Rt(e,t,n,r){var i=`v=0\r
78o=- 847999349747732714 2 IN IP4 `+n+`\r
79s=VideoRoom 1393329176\r
80t=0 0`;return i+=`\r
81a=group:BUNDLE`,t.forEach(e=>{i+=` `+e.mid}),i+=`\r
82a=msid-semantic: WMS brtc`,t.forEach(t=>{t.type===`data`?i+=`\r
83m=application 9 UDP/DTLS/SCTP webrtc-datachannel\r
84c=IN IP4 `+n+`\r
85a=setup:passive\r
86a=mid:`+t.mid+`\r
87a=sendrecv\r
88a=ice-ufrag:`+e.serverIceUfrag+`\r
89a=ice-pwd:`+e.serverIcePwd+`\r
90a=ice-options:trickle\r
91a=fingerprint:`+e.serverDtlsHashing+` `+e.serverDtlsFingerprint+`\r
92a=sctp-port:5000\r
93a=sctmap:5000 webrtc-datachannel 16\r
94a=candidate:1 1 udp 2013266431 `+n+` `+r+` typ host`:t.codec===`opus`?i+=`\r
95m=audio 9 UDP/TLS/RTP/SAVPF `+t.pt+`\r
96c=IN IP4 `+n+`\r
97a=setup:passive\r
98a=mid:`+t.mid+`\r
99a=sendrecv\r
100a=rtcp-mux\r
101a=ice-ufrag:`+e.serverIceUfrag+`\r
102a=ice-pwd:`+e.serverIcePwd+`\r
103a=ice-options:trickle\r
104a=fingerprint:`+e.serverDtlsHashing+` `+e.serverDtlsFingerprint+`\r
105a=rtpmap:`+t.pt+` opus/48000/2\r
106a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r
107a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r
108a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r
109a=rtcp-fb:`+t.pt+` transport-cc\r
110a=fmtp:`+t.pt+` minptime=10;useinbandfec=1\r
111a=rtcp-fb:`+t.pt+` nack\r
112a=rtcp-xr\r
113a=ssrc:`+t.ssrc+` cname:brtc-audio\r
114a=candidate:1 1 udp 2013266431 `+n+` `+r+` typ host`:t.codec===`pcmu`?i+=`\r
115m=audio 9 UDP/TLS/RTP/SAVPF `+t.pt+`\r
116c=IN IP4 `+n+`\r
117a=setup:passive\r
118a=mid:`+t.mid+`\r
119a=sendrecv\r
120a=rtcp-mux\r
121a=ice-ufrag:`+e.serverIceUfrag+`\r
122a=ice-pwd:`+e.serverIcePwd+`\r
123a=ice-options:trickle\r
124a=fingerprint:`+e.serverDtlsHashing+` `+e.serverDtlsFingerprint+`\r
125a=rtpmap:`+t.pt+` PCMU/8000\r
126a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r
127a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r
128a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r
129a=rtcp-fb:`+t.pt+` transport-cc\r
130a=rtcp-fb:`+t.pt+` nack\r
131a=rtcp-xr\r
132a=ssrc:`+t.ssrc+` cname:brtc-audio\r
133a=candidate:1 1 udp 2013266431 `+n+` `+r+` typ host`:t.codec===`h264`&&(i+=`\r
134m=video 9 UDP/TLS/RTP/SAVPF `+t.pt+`\r
135c=IN IP4 `+n+`\r
136a=setup:passive\r
137a=mid:`+t.mid+`\r
138a=sendrecv\r
139a=rtcp-mux\r
140a=ice-ufrag:`+e.serverIceUfrag+`\r
141a=ice-pwd:`+e.serverIcePwd+`\r
142a=ice-options:trickle\r
143a=fingerprint:`+e.serverDtlsHashing+` `+e.serverDtlsFingerprint+`\r
144a=rtpmap:`+t.pt+` H264/90000\r
145a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r
146a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r
147a=rtcp-fb:`+t.pt+` transport-cc\r
148a=rtcp-fb:`+t.pt+` ccm fir\r
149a=rtcp-fb:`+t.pt+` nack\r
150a=rtcp-fb:`+t.pt+` nack pli\r
151a=fmtp:`+t.pt+` profile-level-id=42e01f;packetization-mode=1\r
152a=rtcp-xr\r
153a=ssrc:`+t.ssrc+` cname:brtc-video\r
154a=candidate:1 1 udp 2013266431 `+n+` `+r+` typ host`)}),i+=`\r
155`}function zt(e,t,n,r){var i=`v=0\r
156o=- 847999349747732714 2 IN IP4 `+n+`\r
157s=VideoRoom 1393329176\r
158t=0 0`;return i+=`\r
159a=group:BUNDLE`,t.forEach(e=>{i+=` `+e.mid}),i+=`\r
160a=msid-semantic: WMS brtc`,t.forEach(t=>{t.type===`data`?i+=`\r
161m=application 9 UDP/DTLS/SCTP webrtc-datachannel\r
162c=IN IP4 `+n+`\r
163a=setup:passive\r
164a=mid:`+t.mid+`\r
165a=sendrecv\r
166a=ice-ufrag:`+e.serverIceUfrag+`\r
167a=ice-pwd:`+e.serverIcePwd+`\r
168a=ice-options:trickle\r
169a=fingerprint:`+e.serverDtlsHashing+` `+e.serverDtlsFingerprint+`\r
170a=sctp-port:5000\r
171a=sctmap:5000 webrtc-datachannel 16\r
172a=candidate:1 1 udp 2013266431 `+n+` `+r+` typ host`:t.codec===`opus`?i+=`\r
173m=audio 9 UDP/TLS/RTP/SAVPF `+t.pt+`\r
174c=IN IP4 `+n+`\r
175a=setup:passive\r
176a=mid:`+t.mid+`\r
177a=sendrecv\r
178a=rtcp-mux\r
179a=ice-ufrag:`+e.serverIceUfrag+`\r
180a=ice-pwd:`+e.serverIcePwd+`\r
181a=ice-options:trickle\r
182a=fingerprint:`+e.serverDtlsHashing+` `+e.serverDtlsFingerprint+`\r
183a=rtpmap:`+t.pt+` opus/48000/2\r
184a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r
185a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r
186a=rtcp-fb:`+t.pt+` transport-cc\r
187a=fmtp:`+t.pt+` minptime=10;useinbandfec=1\r
188a=rtcp-fb:`+t.pt+` nack\r
189a=rtcp-xr\r
190a=ssrc:`+t.ssrc+` cname:brtc-audio\r
191a=candidate:1 1 udp 2013266431 `+n+` `+r+` typ host`:t.codec===`pcmu`?i+=`\r
192m=audio 9 UDP/TLS/RTP/SAVPF `+t.pt+`\r
193c=IN IP4 `+n+`\r
194a=setup:passive\r
195a=mid:`+t.mid+`\r
196a=sendrecv\r
197a=rtcp-mux\r
198a=ice-ufrag:`+e.serverIceUfrag+`\r
199a=ice-pwd:`+e.serverIcePwd+`\r
200a=ice-options:trickle\r
201a=fingerprint:`+e.serverDtlsHashing+` `+e.serverDtlsFingerprint+`\r
202a=rtpmap:`+t.pt+` PCMU/8000\r
203a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r
204a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r
205a=rtcp-fb:`+t.pt+` transport-cc\r
206a=rtcp-fb:`+t.pt+` nack\r
207a=rtcp-xr\r
208a=ssrc:`+t.ssrc+` cname:brtc-audio\r
209a=candidate:1 1 udp 2013266431 `+n+` `+r+` typ host`:t.codec===`h264`&&(i+=`\r
210m=video 9 UDP/TLS/RTP/SAVPF `+t.pt+`\r
211c=IN IP4 `+n+`\r
212a=setup:passive\r
213a=mid:`+t.mid+`\r
214a=sendrecv\r
215a=rtcp-mux\r
216a=ice-ufrag:`+e.serverIceUfrag+`\r
217a=ice-pwd:`+e.serverIcePwd+`\r
218a=ice-options:trickle\r
219a=fingerprint:`+e.serverDtlsHashing+` `+e.serverDtlsFingerprint+`\r
220a=rtpmap:`+t.pt+` H264/90000\r
221a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r
222a=rtcp-fb:`+t.pt+` transport-cc\r
223a=rtcp-fb:`+t.pt+` ccm fir\r
224a=rtcp-fb:`+t.pt+` nack\r
225a=rtcp-fb:`+t.pt+` nack pli\r
226a=fmtp:`+t.pt+` profile-level-id=42e01f;packetization-mode=1\r
227a=rtcp-xr\r
228a=ssrc:`+t.ssrc+` cname:brtc-video\r
229a=candidate:1 1 udp 2013266431 `+n+` `+r+` typ host`)}),i+=`\r
230`}function Bt(e,t){var n=`v=0\r
231o=- 847999349747732714 2 IN IP4 127.0.0.1\r
232s=VideoRoom 1393329176\r
233t=0 0`;return n+=`\r
234a=group:BUNDLE`,t.forEach(e=>{n+=` `+e.mid}),n+=`\r
235a=msid-semantic: WMS brtc`,t.forEach(t=>{t.type===`data`?n+=`\r
236m=application 9 UDP/DTLS/SCTP webrtc-datachannel\r
237c=IN IP4 0.0.0.0\r
238a=setup:actpass\r
239a=mid:`+t.mid+`\r
240a=recvonly\r
241a=ice-ufrag:`+e.clientIceUfrag+`\r
242a=ice-pwd:`+e.clientIcePwd+`\r
243a=ice-options:trickle\r
244a=fingerprint:`+e.clientDtlsHashing+` `+e.clientDtlsFingerprint+`\r
245a=sctp-port:5000\r
246a=sctmap:5000 webrtc-datachannel 16`:t.codec===`opus`?n+=`\r
247m=audio 9 UDP/TLS/RTP/SAVPF `+t.pt+`\r
248c=IN IP4 0.0.0.0\r
249a=setup:actpass\r
250a=mid:`+t.mid+`\r
251a=recvonly\r
252a=rtcp-mux\r
253a=ice-ufrag:`+e.clientIceUfrag+`\r
254a=ice-pwd:`+e.clientIcePwd+`\r
255a=ice-options:trickle\r
256a=fingerprint:`+e.clientDtlsHashing+` `+e.clientDtlsFingerprint+`\r
257a=rtpmap:`+t.pt+` opus/48000/2\r
258a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r
259a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r
260a=rtcp-fb:`+t.pt+` transport-cc\r
261a=fmtp:`+t.pt+` minptime=10;useinbandfec=1\r
262a=rtcp-fb:`+t.pt+` nack\r
263a=rtcp-xr\r
264a=ssrc:`+t.ssrc+` cname:brtc-audio`:t.codec===`pcmu`?n+=`\r
265m=audio 9 UDP/TLS/RTP/SAVPF `+t.pt+`\r
266c=IN IP4 0.0.0.0\r
267a=setup:actpass\r
268a=mid:`+t.mid+`\r
269a=recvonly\r
270a=rtcp-mux\r
271a=ice-ufrag:`+e.clientIceUfrag+`\r
272a=ice-pwd:`+e.clientIcePwd+`\r
273a=ice-options:trickle\r
274a=fingerprint:`+e.clientDtlsHashing+` `+e.clientDtlsFingerprint+`\r
275a=rtpmap:`+t.pt+` PCMU/8000\r
276a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r
277a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r
278a=rtcp-fb:`+t.pt+` transport-cc\r
279a=rtcp-fb:`+t.pt+` nack\r
280a=rtcp-xr\r
281a=ssrc:`+t.ssrc+` cname:brtc-audio`:t.codec===`h264`&&(n+=`\r
282m=video 9 UDP/TLS/RTP/SAVPF `+t.pt+`\r
283c=IN IP4 0.0.0.0\r
284a=setup:actpass\r
285a=mid:`+t.mid+`\r
286a=recvonly\r
287a=rtcp-mux\r
288a=ice-ufrag:`+e.clientIceUfrag+`\r
289a=ice-pwd:`+e.clientIcePwd+`\r
290a=ice-options:trickle\r
291a=fingerprint:`+e.clientDtlsHashing+` `+e.clientDtlsFingerprint+`\r
292a=rtpmap:`+t.pt+` H264/90000\r
293a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r
294a=rtcp-fb:`+t.pt+` transport-cc\r
295a=rtcp-fb:`+t.pt+` ccm fir\r
296a=rtcp-fb:`+t.pt+` nack\r
297a=rtcp-fb:`+t.pt+` nack pli\r
298a=fmtp:`+t.pt+` profile-level-id=42e01f;packetization-mode=1\r
299a=rtcp-xr\r
300a=ssrc:`+t.ssrc+` cname:brtc-video`)}),n+=`\r
301`}function Vt(e,t,n){var r=!1,i=!1;for(var a in n){var o=n[a];o.id=e,o.display=t,o.type===`audio`?r=!0:o.type===`video`&&(i=!0)}
301b[e]={id:e,display:t,streams:n,audio:r,video:i}}function Ht(e,t,r){console.log(`The DataChannel on data!`+t+e);var i=JSON.parse(e);if(i.compressed){var o=Uint8Array.from(atob(i.data).substring(2),e=>e.charCodeAt(0)),s=brtc_inflate(o);i.data=JSON.parse(String.fromCharCode.apply(null,s))}if(i.type===`BRTC_SERVER_P2P_EVENT`){if(i.data.event!==`brtcup`&&i.data.event!==`feedInfo`)if(i.data.event===`media`){var c=!1;if(typeof i.data.receiving!=`boolean`)return;c=i.data.receiving;var l=i.data.type;if(a.log(`BRTC `+(c?`started`:`stopped`)+` receiving our `+l),F&&l===`video`&&!c)return;clearInterval(dt),ut=c,c?at(l,c):dt=setTimeout((function(){dt=null,!1===ut&&at(l,!1)}),5e3)}else i.data.event===`slowlink`&&gt(i.data.uplink,i.data.nacks)}else if(i.type===`BRTC_SERVER_BROADCAST_EVENT`)if(i.data.event===`publishers`){var u=i.data.publishers;for(var d in u){var f=u[d].userId,p=u[d].display,m=u[d].attribute;a.debug(` >> [`+f+`] `+p+` attr: `+m),p!==void 0&&p.includes(`web_listener`)||(Vt(f,p,u[d].streams),U&&en(f,p),b[f]&&(u[d].streams&&u[d].streams.forEach((e,t)=>{e.type===`video`&&e.connected?b[f].videocoming=!0:e.type===`audio`&&e.connected&&(b[f].audiocoming=!0)}),(b[f].videocoming||b[f].audiocoming)&&(b[f].coming=!0,Ie(f,p,m))))}}else if(i.data.event===`joined`)f=i.data.publisher,p=i.data.display,Et({id:f,display:p,attribute:``}),Vt(f,p,i.data.streams),U&&en(f,p),Ve(f,p,``);else if(i.data.event===`leaved`)f=i.data.publisher,b[f]&&b[f].coming&&(Le(f),b[f].coming=!1),He(f,``),Dt(f),x.forEach((e,t)=>{e&&e.feed_id===f&&(x[t]=null)}),y.some(e=>!(!e||typeof e!=`object`||e.rfid!==f&&e.rfindex!==f)&&(y[e.rfindex]=null,!1===U&&document.getElementById(`v4videos`+n)&&$(`#videoremote`+e.rfindex)[0]&&(document.getElementById(`v4videos`+n).appendChild($(`#videoremote`+e.rfindex)[0].firstChild),$(`#videoremote`+e.rfindex).remove()),!0)),function(e){b[e]=null}(f);else if(i.data.event===`published`){f=i.data.publisher,p=i.data.display;var h=i.data.type;b[f]&&(h===`video`?b[f].videocoming=!0:h===`audio`&&(b[f].audiocoming=!0),b[f].coming||p&&p.includes(`web_listener`)||(b[f].coming=!0,Ie(f,p,``)))}else i.data.event===`unpublished`?(f=i.data.publisher,h=i.data.type,p===void 0||p.includes(`web_listener`),b[f]&&(h===`video`?b[f].videocoming=!1:h===`audio`&&(b[f].audiocoming=!1),!b[f].coming||p&&p.includes(`web_listener`)||b[f].videocoming||b[f].audiocoming||(b[f].coming=!1,Le(f)))):i.data.event;else if(i.type!==`BRTC_CLIENT_P2P_EVENT`&&i.type!==`BRTC_CLIENT_BROADCAST_EVENT`&&i.type!==`BRTC_CLIENT_SIGNAL`&&i.type!==`BRTC_SERVER_SIGNAL`)if(i.type===`BRTC_CLIENT_MESSAGE`||i.type===`BRTC_CLIENT_P2P_MESSAGE`){var g={id:i.from,data:i.data};Ye(g)}else i.type===`BRTC_CLIENT_UNRELIABLE_MESSAGE`&&Be(i.data,i.type)}function Ut(){a.init({debug:_e,callback:function(){var t=l=new a({server:c,userid:O,mediaserverip:le,clientip:ue,clientudpip:de,userevent:me,sessionevent:he,rigidpull:ge,sdktag:window.BRTC_Version(),roomname:E,appid:T,displayname:A,brtc_v2:r,brtc_v4:i,brtc_render:s,rtmp:ce,role:`publisher`,videocodec:M,audiocodec:N,v4_participants:mt,v4_submode:typeof ae==`string`?ae:ae?`auto`:`manual`,onv4joined:function(r){if(l===null)return t.destroy({cleanupHandles:!0}),void console.log(`already stop by BRTC_Stop`);j=r.data.roomId,Se(),function(e){var t=e.data.mediaserver.ip,n=e.data.mediaserver.port;for(var r in e.data.participants){var i=e.data.participants[r];if(i.ptype===`publisher`){ft.handleId=i.handleId,ft.SsdpInfo=i.sdpInfo;var a=Rt(i.sdpInfo,mt[0].sdpInfo.streams,t,n);X!==null&&(a=rn(a,X,Z));var o=F?te:B;typeof o==`number`&&(a=(a=a.replace(/(m=video.*\r\n)/g,`$1b=AS:${o}\r\nb=TIAS:${1e3*o}\r\n`)).replace(/(profile-level-id=42e01f;packetization-mode=1)/g,`$1;x-google-start-bitrate=${o};x-google-max-bitrate=${o}`)),ft.Ssdp=a}else i.ptype===`subscriber`&&(pt.handleId=i.handleId,pt.SsdpInfo=i.sdpInfo,a=zt(i.sdpInfo,mt[1].sdpInfo.streams,t,n),X!==null&&(a=rn(a,X,Z)),pt.Ssdp=a)}}(r),l!==null&&l.attachv4({plugin:e,opaqueId:p,success:function(e){u=e,a.log(`Plugin attached! (`+u.getPlugin()+`, id=`+u.getId()+`)`),a.log(`  -- This is a publisher/manager`),ie&&Wt(!0)},error:function(e){a.error(`  -- Error attaching plugin...`,e),Ce(`Error attaching plugin... `+e)},consentDialog:function(e){a.debug(`Consent dialog should be `+(e?`on`:`off`)+` now`)},slowLink:function(e,t){gt(e,t)},mediaState:function(e,t){a.log(`Janus `+(t?`started`:`stopped`)+` receiving our `+e)},webrtcState:function(e){a.log(`Janus says our WebRTC PeerConnection is `+(e?`up`:`down`)+` now`),e&&ke()},iceState:function(e){a.log(`iceConnectionState: `+e),e===`disconnected`?(setTimeout((function(){Oe(!1)}),0),l?.sendlog({log:{event:`publisher on iceState: disconnected`,code:4,id:parseInt(O,10),ts:new Date().toLocaleStr
301ing()}})):e===`connected`&&Oe(!0)},ondata:function(e,t){Ht(e,t)},onmessage:function(e,t){a.debug(` ::: Got a message (publisher) :::`),a.debug(JSON.stringify(e))},onlocalstream:function(e,t){if(e.getVideoTracks().length>0&&(e.getVideoTracks()[0].onended=function(e){Ee(F?`screen`:`camera`)}),Te(e,F?`screen`:`camera`),a.debug(` ::: Got a local stream :::`),P){_=e,a.debug(JSON.stringify(e)),t&&($(`#videolocal`).empty(),$(`#myvideo`).length===0&&(st?$(`#videolocal`).append(`<video style="display: block; margin: auto; -webkit-transform: scaleX(-1); transform: scaleX(-1);" id="myvideo`+n+`" width="100%" height="100%" playsinline autoplay muted="muted"/>`):$(`#videolocal`).append(`<video style="display: block; margin: auto;" id="myvideo`+n+`" width="100%" height="100%" playsinline autoplay muted="muted"/>`)),F&&$(`#myvideo`).get(0)&&$(`#myvideo`).get(0).style&&($(`#myvideo`).get(0).style.transform=`scaleX(1)`),a.attachMediaStream($(`#myvideo`).get(0),e),$(`#myvideo`).get(0)&&($(`#myvideo`).get(0).muted=`muted`),De());var r=e.getVideoTracks();r!=null&&r.length!==0||($(`#myvideo`).hide(),L&&$(`#videolocal`).append(`<div style="position: relative;"><i style="height: 240px; text-align: center;font-size: 12em !important; height: 100%;"></i><span style="text-align: center; position: absolute; bottom: 0px;right: 0px; left: 0px;font-size: 16px;">No webcam available</span></div>`))}},onremotestream:function(e){},oncleanup:function(){a.log(` ::: Got a cleanup notification: we are unpublished now :::`),_=null}},null,ft,ft.handleId),function(){l!==null&&f===null&&l.attachv4({plugin:e,opaqueId:p,success:function(e){f=e,a.log(`Plugin attached! (`+f.getPlugin()+`, id=`+f.getId()+`)`),a.log(`  -- This is a V4 subscriber`),f.createOffer({media:{audioSend:!1,videoSend:!1,data:!0},success:function(e){pt.setRemoteDescription(new RTCSessionDescription({type:`answer`,sdp:pt.Ssdp}))},error:function(e){a.error(`WebRTC error:`,e),Ce(`WebRTC error... `+JSON.stringify(e))}})},onmessage:function(e,t){a.debug(` ::: Got a message (listener) :::`)},error:function(e){a.error(`  -- Error attaching plugin...`,e)},webrtcState:function(e){a.log(`BRTC says this WebRTC PeerConnection ) is `+(e?`up`:`down`)+` now`)},iceState:function(e){a.log(`iceConnectionState: `+e),e===`disconnected`?setTimeout((function(){Re(0,!1),Fe(0)}),0):e===`connected`&&Re(0,!0)},onlocalstream:function(e){},slowLink:function(e,t){gt(e,t)},onremotestream:function(e,t,r,i){var o={};o.feed_id=100+r;var s=null;if(S[o.feed_id])S[o.feed_id].addTrack(t.clone()),s=S[o.feed_id];else{var c=new MediaStream;c.addTrack(t.clone()),S[o.feed_id]=c,s=c}var l={};if(l.rfindex=1+Math.floor(r/2),a.debug(`Remote feed #`+l.rfindex),$(`#remotevideo`+l.rfindex).length===0){var u=``;re&&(u=`muted`),W&&$(`#videoremote`+l.rfindex).append(`<video style="border-radius: 5px; display: block; margin: auto;" id="waitingvideo`+l.rfindex+n+`" width=320 height=240 />`),adapter.browserDetails.browser===`safari`&&(P||re||(u+=` controls`)),$(`#videoremote`+l.rfindex).append(`<video `+u+` id="remotevideo`+l.rfindex+n+`" width="100%" height="100%" playsinline autoplay/>`),$(`#videoremote`+l.rfindex).append(`<audio `+u+` id="remoteaudio`+l.rfindex+n+`" playsinline autoplay/>`)}H&&$(`#curres`+l.rfindex).length===0&&$(`#videoremote`+l.rfindex).append(`<span id="curres`+l.rfindex+n+`" style="display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em; background-color: #2fa4e7;position: absolute; bottom: 0px; left: 0px; margin: 2px;"></span><span id="curbitrate`+l.rfindex+n+`" style="display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;background-color: #033c73;position: absolute; bottom: 0px; right: 0px;margin: 2px;"></span>`);var d=s.getVideoTracks(),p=$(`#remote`+t.kind+l.rfindex).get(0);p===null?a.log(`no video label for Remote feed #`+l.rfindex):(a.attachMediaStream(p,s),d==null||d.length===0?($(`#remoteaudio`+l.rfindex).hide(),$(`#remoteaudio`+l.rfindex).bind(`playing`,(function(){if(l!==null){var e=$
301(`#remoteaudio`+l.rfindex).get(0);e!=null&&e.setSinkId!==void 0&&xe!=null&&xe!==`default`&&e.setSinkId(xe),Ne(U?l.rfindex:l.rfid,`audio`),W&&(l.spinner!==void 0&&l.spinner!==null&&(l.spinner.stop(),l.spinner=null),$(`#waitingvideo`+l.rfindex).remove())}}))):($(`#remotevideo`+l.rfindex).show(),$(`#remotevideo`+l.rfindex).bind(`playing`,(function(){if(l!==null){$(`#novideo`+l.rfindex).length!==0&&$(`#novideo`+l.rfindex).remove(),l.rfid=x[r]?x[r].feed_id:0,Ne(U?l.rfindex:l.rfid),W&&(l.spinner!==void 0&&l.spinner!==null&&(l.spinner.stop(),l.spinner=null),$(`#waitingvideo`+l.rfindex).remove()),$(`#remotevideo`+l.rfindex).removeClass(`hide`);var e=this.videoWidth,t=this.videoHeight;H&&($(`#curres`+l.rfindex).removeClass(`hide`).text(e+`x`+t).show(),adapter.browserDetails.browser===`firefox`&&setTimeout((function(){if(l!==null){var e=$(`#remotevideo`+l.rfindex).get(0).videoWidth,t=$(`#remotevideo`+l.rfindex).get(0).videoHeight;$(`#curres`+l.rfindex).removeClass(`hide`).text(e+`x`+t).show()}}),2e3))}}))),H&&(adapter.browserDetails.browser!==`chrome`&&adapter.browserDetails.browser!==`firefox`||($(`#curbitrate`+l.rfindex).removeClass(`hide`).show(),C[l.rfindex]=setInterval((function(){if(f!==null){var e=f.getBitrate();$(`#curbitrate`+l.rfindex).text(e)}}),1e3))))},ondataopen:function(e){a.log(`The DataChannel is available!`+e)},ondata:function(e,t){Ht(e,t)},oncleanup:function(){a.log(` ::: Got a cleanup notification (remote feed 0) :::`),y.forEach(e=>{if(e&&typeof e==`object`){var t=e;if(Fe===null)return;var n=U?t.rfindex:t.rfid;setTimeout((function(){Pe(n)}),0),!1===U&&$(`#videoremote`+t.rfindex).remove(),W&&(t.spinner!==void 0&&t.spinner!==null&&(t.spinner.stop(),t.spinner=null),$(`#waitingvideo`+t.rfindex).remove()),H&&($(`#curbitrate`+t.rfindex).remove(),$(`#curres`+t.rfindex).remove(),C[t.rfindex]!==void 0&&C[t.rfindex]!==null&&(clearInterval(C[t.rfindex]),C[t.rfindex]=null)),t=null}})}},null,pt,pt.handleId)}()},onsetup:function(r){if(l===null)return t.destroy({cleanupHandles:!0}),void console.log(`already stop by BRTC_Stop`);j=r.data.room,Qt(0,`startup`),l.attach({plugin:e,opaqueId:p,success:function(e){if(u=e,a.log(`Plugin attached! (`+u.getPlugin()+`, id=`+u.getId()+`)`),a.log(`  -- This is a publisher/manager`),Se(),ie&&Wt(!0),r.data.publishers){var t=r.data.publishers;for(var n in a.debug(`Got a list of available publishers/feeds:`),a.debug(t),t){var i=t[n].id,o=t[n].display,s=t[n].streams,c=t[n].attribute;for(var l in s){var d=s[l];d.id=i,d.display=o}b[i]={id:i,display:o,streams:s},o!==void 0&&o.includes(`web_listener`)||(U&&setTimeout((function(){Qt(i,o)}),300),setTimeout((function(){Ie(i,o,c)}),300))}}},error:function(e){a.error(`  -- Error attaching plugin...`,e),Ce(`Error attaching plugin... `+e)},consentDialog:function(e){a.debug(`Consent dialog should be `+(e?`on`:`off`)+` now`)},slowLink:function(e,t){gt(e,t)},mediaState:function(e,t){a.log(`Janus `+(t?`started`:`stopped`)+` receiving our `+e),F&&e===`video`&&!t||(clearInterval(dt),ut=t,t?at(e,t):dt=setTimeout((function(){dt=null,!1===ut&&at(e,!1)}),5e3))},webrtcState:function(e){a.log(`Janus says our WebRTC PeerConnection is `+(e?`up`:`down`)+` now`),e&&ke()},iceState:function(e){a.log(`iceConnectionState: `+e),e===`disconnected`&&l!=null&&l.sendlog({log:{event:`publisher on iceState: disconnected`,code:4,id:parseInt(O,10),ts:new Date().toLocaleString()}})},onmessage:function(e,t){a.debug(` ::: Got a message (publisher) :::`),a.debug(JSON.stringify(e));var n=e.videoroom;if(a.debug(`Event: `+n),n!=null){if(n===`destroyed`)a.warn(`The room has been destroyed!`),Ce(`The room has been destroyed`);else if(n===`event`){if(e.publishers!==void 0&&e.publishers!==null){var r=e.publishers;a.debug(`Got a list of available publishers/feeds:`),a.debug(r)}else if(e.leaving!==void 0&&e.leaving!==null){var i=e.leaving;a.log(`Publisher left: `+i);var o=null;y.some(e=>!(!e||typeof e!=`object`||e.rfid!==i)&&(o=e,!0)),o!=null&&(a.debug(`Feed `+o.rfid+` (`+o.rfdisplay+`) has left the room, detaching`),$(`#videoremote`+o.rfindex).empty(),y[o.rfindex]=null,o.detach(),Le(o.rfid))}else if(e.unpublished!==void 0&&e.unpublished!==null){var s=e.unpublished;if(a.log(`Publisher left: `+s),s===`ok`)return u.hangup(),void(Ze&&Gt());if(s===`self`)return clearInterval(dt),u.hangup(),void setTimeout((function(){Ae()}),500);o=null,y.some(e=>!(!e||typeof e!=`object`||e.rfid!==s)&&(o=e,!0)),o!=null&&(a.debug(`Feed `+o.rfid+` (`+o.rfdisplay+`) has left the room, detaching`),$(`#videoremote`+o.rfindex).empty(),y[o.rfindex]=null,o.detach(),ze(o.rfid))}else if(e.error!==void 0&&e.error!==null){if(e.error_code===435)return;Ce(e.error)}}}if(t!=null){a.debug(`Handling SDP as well...`),a.debug(t),X!==null&&(t.sdp=rn(t.sdp,X,Z));var c=F?te:B;
301typeof c==`number`&&(t.sdp=t.sdp.replace(/(m=video.*\r\n)/g,`$1b=AS:${c}\r\nb=TIAS:${1e3*c}\r\n`),t.sdp=t.sdp.replace(/(profile-level-id=42e01f;packetization-mode=1)/g,`$1;x-google-start-bitrate=${c};x-google-max-bitrate=${c}`)),u.handleRemoteJsep({jsep:t})}},onlocalstream:function(e,t){if(e.getVideoTracks().length>0&&(e.getVideoTracks()[0].onended=function(e){Ee(F?`screen`:`camera`),F&&Tt()}),Te(e,F?`screen`:`camera`),a.debug(` ::: Got a local stream :::`),P){_=e,a.debug(JSON.stringify(e)),t&&($(`#videolocal`).empty(),$(`#myvideo`).length===0&&(st?$(`#videolocal`).append(`<video style="display: block; margin: auto; -webkit-transform: scaleX(-1); transform: scaleX(-1);" id="myvideo`+n+`" width="100%" height="100%" playsinline autoplay muted="muted"/>`):$(`#videolocal`).append(`<video style="display: block; margin: auto;" id="myvideo`+n+`" width="100%" height="100%" playsinline autoplay muted="muted"/>`)),F&&$(`#myvideo`).get(0)&&$(`#myvideo`).get(0).style&&($(`#myvideo`).get(0).style.transform=`scaleX(1)`),a.attachMediaStream($(`#myvideo`).get(0),e),$(`#myvideo`).get(0)&&($(`#myvideo`).get(0).muted=`muted`),De());var r=e.getVideoTracks();r!=null&&r.length!==0||($(`#myvideo`).hide(),L&&$(`#videolocal`).append(`<div style="position: relative;"><i style="height: 240px; text-align: center;font-size: 12em !important; height: 100%;"></i><span style="text-align: center; position: absolute; bottom: 0px;right: 0px; left: 0px;font-size: 16px;">No webcam available</span></div>`))}},onremotestream:function(e){},oncleanup:function(){a.log(` ::: Got a cleanup notification: we are unpublished now :::`),_=null}},r)},success:function(r){if(l===null)return t.destroy({cleanupHandles:!0}),void console.log(`already stop by BRTC_Stop`);r&&Array.isArray(r.remoteUids)&&r.remoteUids.forEach(e=>{Et({id:e,display:``,attribute:``})}),l.attach({plugin:e,opaqueId:p,success:function(e){u=e,a.log(`Plugin attached! (`+u.getPlugin()+`, id=`+u.getId()+`)`),a.log(`  -- This is a publisher/manager`),function(){var e=A;s&&(E=l.getRoomName(),O=l.getUserID().toString());var t={request:`create`,id:parseInt(O),room_name:E,publishers:500,videocodec:M,app_id:T};s&&(t.bdcruserid=k),typeof N==`string`&&N!==``&&(t.audiocodec=N),u.send({message:t,success:function(t){a.log(`create resp data:`+t),j=t.room,a.log(`create roomid:`+j);var n={request:`join`,room:parseInt(j),room_name:E,ptype:`publisher`,id:parseInt(O),app_id:T,role:D,token:`no_token`,display:e};h=e,K.includes(`rtmp`)&&(n.rtmp={},n.rtmp.url={},n.rtmp.url=K,n.rtmp.mix=q,typeof oe==`string`&&oe!==``&&(n.rtmp.mixTemplate=oe),typeof oe==`object`&&oe&&(n.rtmp.mixTranscodingCfg=oe,delete n.rtmp.mix)),se&&(n.recording={},n.recording.rec=se),J!==``&&(n.window_id_in_bypass=J),a.log(`userid:`+O+`,appid:`+T),u.send({message:n}),setTimeout((function(){nn({roomEvent:{userName:A+`(`+O+`)`,eventDescription:`ENTER_ROOM`}}),nn({deviceInfo:{sdkVersion:window.BRTC_Version(),networkType:`unknown`,device:navigator.userAgent}})}),500)}})}()},error:function(e){a.error(`  -- Error attaching plugin...`,e),Ce(`Error attaching plugin... `+e)},consentDialog:function(e){a.debug(`Consent dialog should be `+(e?`on`:`off`)+` now`)},slowLink:function(e,t){gt(e,t)},mediaState:function(e,t){a.log(`Janus `+(t?`started`:`stopped`)+` receiving our `+e),F&&e===`video`&&!t||(clearInterval(dt),ut=t,t?at(e,t):dt=setTimeout((function(){dt=null,!1===ut&&at(e,!1)}),5e3))},webrtcState:function(e){a.log(`Janus says our WebRTC PeerConnection is `+(e?`up`:`down`)+` now`),e&&ke()},iceState:function(e){a.log(`iceConnectionState: `+e),e===`disconnected`?(setTimeout((function(){Oe(!1)}),0),l?.sendlog({log:{event:`publisher on iceState: disconnected`,code:4,id:parseInt(O),ts:new Date().toLocaleString()}})):e===`connected`&&Oe(!0)},onmessage:function(e,t){a.debug(` ::: Got a message (publisher) :::`),a.debug(JSON.stringify(e));var n=e.videoroom;if(a.debug(`Event: `+n),n!=null&&n!=null){if(n===`joined`){if(g=e.id,v=e.private_id,a.log(`Successfully joined room `+e.room+` with ID `+g),Se(),ie&&Wt(!0),function(e){if(!et)return;let t=e.defaultOpen,n=e.serverUrl,r=e.gatherInterval;e.uploadInterval,!0===t&&n===null&&(n=`/rtc-quality-stats-noAuth`);let i=0;nt=window.setInterval((async function(){let e={duration:10,resourceUsageInfo:{sysCpuUsage:20,appC
301puUsage:10},senderQualityInfo:{bitrate:0,packetloss:10,fps:0,resolution:`0*0`},receiverQualityInfoList:[]},t=[];if(u!==null||y.length!=0){if(u&&u.webrtcStuff&&u.webrtcStuff.pc){let n=new Promise((function(t,n){u.getLocalStats(r,i,{success(n){n.packetsLost=(n.audioPacketsLost?n.audioPacketsLost:0)+(n.videoPacketsLost?n.videoPacketsLost:0),n.packetsSent=(n.audioPacketsSent?n.audioPacketsSent:0)+(n.videoPacketsSent?n.videoPacketsSent:0),e.senderQualityInfo={bitrate:(n.audioBitrate?n.audioBitrate:0)+(n.videoBitrate?n.videoBitrate:0),packetloss:Math.round(1e3*n.packetsLost/(n.packetsLost+n.packetsSent+1)),fps:n.fps?n.fps:0,resolution:(n.frameWidth?n.frameWidth:`0`)+`*`+(n.frameHeight?n.frameHeight:`0`)},t()},error(){t()}})}));t.push(n)}y.forEach(n=>{let a=n;if(a&&typeof a==`object`){let n=new Promise((function(t,n){a.rfid,a.getRemoteStats(r,i,{success(n){n.packetsLost=(n.audioPacketsLost?n.audioPacketsLost:0)+(n.videoPacketsLost?n.videoPacketsLost:0),n.packetsReceived=(n.audioPacketsReceived?n.audioPacketsReceived:0)+(n.videoPacketsReceived?n.videoPacketsReceived:0),e.receiverQualityInfoList.push({feedId:a.rfid,bitrate:(n.audioBitrate?n.audioBitrate:0)+(n.videoBitrate?n.videoBitrate:0),packetloss:Math.round(1e3*n.packetsLost/(n.packetsLost+n.packetsReceived+1)),fps:n.fps?n.fps:0,resolution:(n.frameWidth?n.frameWidth:`0`)+`*`+(n.frameHeight?n.frameHeight:`0`)}),t()},error(){t()}})}));t.push(n)}}),await Promise.all(t).then((function(n){i>=r&&i%r==0&&nn({communicationQualityInfo:e}),t=[],i++}))}}),2e3)}($e),e.publishers!==void 0&&e.publishers!==null){var r=e.publishers;for(var i in a.debug(`Got a list of available publishers/feeds:`),a.debug(r),r){var o=r[i].id,s=r[i].display;(c=r[i].attribute)===void 0&&(c=``),c!==``&&Mt({id:o,attribute:c}),a.debug(`  >> [`+o+`] `+s+` attr: `+c),s!==void 0&&s.includes(`web_listener`)||(U&&tn(o,A),Ot(o,!1),Ie(o,s,c))}}}else if(n===`destroyed`)a.warn(`The room has been destroyed!`),Ce(`The room has been destroyed`);else if(n===`event`){if(e.publishers!==void 0&&e.publishers!==null)for(var i in r=e.publishers,a.debug(`Got a list of available publishers/feeds:`),a.debug(r),r){var c;o=r[i].id,s=r[i].display,(c=r[i].attribute)===void 0&&(c=``),c!==``&&Mt({id:o,attribute:c}),a.debug(`  >> [`+o+`] `+s+` attr: `+c),s!==void 0&&s.includes(`web_listener`)||(U&&tn(o,A),Ot(o,!1),Ie(o,s,c))}else if(e.leaving!==void 0&&e.leaving!==null){var l=e.leaving;a.log(`Publisher left: `+l);var d=null;y.some(e=>!(!e||typeof e!=`object`||e.rfid!=l)&&(d=e,!0)),d!=null&&(a.debug(`Feed `+d.rfid+` (`+d.rfdisplay+`) has left the room, detaching`),$(`#videoremote`+d.rfindex).empty(),y[d.rfindex]=null,d.detach()),kt(l)||(Le(l),Ot(l,!0))}else if(e.unpublished!==void 0&&e.unpublished!==null){var f=e.unpublished;if(a.log(`Publisher left: `+f),f===`ok`)return u.hangup(),void(Ze&&Gt());if(f===`self`)return clearInterval(dt),u.hangup(),void setTimeout((function(){Ae()}),500);kt(f)||(Le(f),Ot(f,!0)),d=null,y.some(e=>!(!e||typeof e!=`object`||e.rfid!=f)&&(d=e,!0)),d!=null&&(a.debug(`Feed `+d.rfid+` (`+d.rfdisplay+`) has left the room, detaching`),$(`#videoremote`+d.rfindex).empty(),y[d.rfindex]=null,d.detach(),ze(d.rfid))}else if(e.error!==void 0&&e.error!==null){if(e.error_code==435)return;Ce(e.error)}}}if(t!=null){a.debug(`Handling SDP as well...`),a.debug(t),X!==null&&(t.sdp=rn(t.sdp,X,Z)),(V||ne)&&(t.sdp=function(e,t,n){for(var r=e.split(`\r
302`),i=null,a=0;a<r.length;a++){var o=r[a].match(/a=rtpmap.*opus.*/);if(o)i=o;else if(i){var s=r[a].match(/a=fmtp.*/);if(s){r[a]=s,n&&(r[a]+=`;stereo=1`),t&&(r[a]+=`;maxaveragebitrate=`+1e3*t);break}}}return(e=r.join(`\r
303`)).endsWith(`\r
304`)||(e+=`\r
305`),e}(t.sdp,V,ne));var p=F?te:B;typeof p==`number`&&(t.sdp=t.sdp.replace(/(m=video.*\r\n)/g,`$1b=AS:${p}\r\nb=TIAS:${1e3*p}\r\n`),t.sdp=t.sdp.replace(/(profile-level-id=42e01f;packetization-mode=1)/g,`$1;x-google-start-bitrate=${p};x-google-max-bitrate=${p}`)),u.handleRemoteJsep({jsep:t})}},onlocalstream:function(e,t){if(e.getVideoTracks().length>0&&(e.getVideoTracks()[0].onended=function(e){Ee(F?`screen`:`camera`),F&&Tt()}),Te(e,F?`screen`:`camera`),a.debug(` ::: Got a local stream :::`),P){_=e,a.debug(JSON.stringify(e)),t&&($(`#videolocal`).empty(),$(`#myvideo`).length===0&&(st?$(`#videolocal`).append(`<video style="display: block; margin: auto; -webkit-transform: scaleX(-1); transform: scaleX(-1);" id="myvideo`+n+`" width="100%" height="100%" playsinline autoplay muted="muted"/>`):$(`#videolocal`).append(`<video style="display: block; margin: auto;" id="myvideo`+n+`" width="100%" height="100%" playsinline autoplay muted="muted"/>`)),F&&$(`#myvideo`).get(0)&&$(`#myvideo`).get(0).style&&($(`#myvideo`).get(0).style.transform=`scaleX(1)`),a.attachMediaStream($(`#myvideo`).get(0),e),$(`#myvideo`).get(0)&&($(`#myvideo`).get(0).muted=`muted`),De());var r=e.getVideoTracks();r!=null&&r.length!==0||($(`#myvideo`).hide(),L&&$(`#videolocal`).append(`<div style="position: relative;"><i style="height: 240px; text-align: center; font-size: 12em !important; height: 100%;"></i><span style="text-align: center; position: absolute; bottom: 0px;right: 0px;left: 0px;font-size: 16px;">No webcam available</span></div>`))}},onremotestream:function(e){},oncleanup:function(){a.log(` ::: Got a cleanup notification: we are unpublished now :::`),_=null}})},error:function(e){a.error(e),typeof e==`string`&&e.includes(`Error c
305onnecting to the Janus WebSockets`)&&(m=!1),Ce(e)},destroyed:function(){we(`destroyed`)},onuserevent:function(e,t){if(t||!he){if(e.users){var n=e.users;for(var r in a.debug(`Got a list of available users:`),a.debug(n),n){var i=n[r].id,o=n[r].display,s=n[r].attribute;s===void 0&&(s=``),a.debug(`  >> [`+i+`] `+o+` attr: `+s),At(i)||Ve(i,o,s),Et({id:i,display:o,attribute:s})}}else if(e.leaving)He(e.leaving,e.display),Dt(e.leaving);else if(e.joined)At(e.joined)||Ve(e.joined,e.display,``),Et({id:e.joined,display:e.display,attribute:``});else if(e.detached){var c=e.detached;if(c.servertrigger){var u=!0;y.some((e,t)=>!(!e||typeof e!=`object`||e.rfindex!=c.feed&&e.rfid!=c.feed)&&(u=!1,!0)),u||setTimeout(()=>{qe.some((e,t)=>!(!e||typeof e!=`object`||e.id!=c.feed)&&(l?.sendlog({log:{event:`on feed detached via servertrigger`,code:5,feedid:c.feed,id:parseInt(O),ts:new Date().toLocaleString()}}),Yt(c.feed),!0))},500)}typeof c.feed==`number`&&w.some((e,t)=>!(!e||typeof e!=`object`||e.feedid!==c.feed)&&(e.resolve(`success: feedid: `+c.feed),w.splice(t,1),!0))}}},onmessage:function(e,t){if((t||!he)&&e)if(!0===e.internal){var n={id:e.from,attribute:e.data};Xe(n),Mt(n)}else{var r={id:e.from,data:e.data};Ye(r)}},onbdcrevent:function(e){e&&e.eventType===`lockDeviceEvent`&&Ke(e)},onsessionevent:function(e){if(e&&he){if(e.recvdata)this.onmessage(e.recvdata,!0);else if(e.userevent)this.onuserevent(e.userevent,!0);else if(e.detached)this.onuserevent(e,!0);else if(e.bypass_event){var t=e.bypass_event;Ue(t.level,t.rtmp.url,t.bypassStatus)}else if(e.recording_event){var n=e.recording_event;We(n)}else if(e.recv_echoreq){n=e.recv_echoreq;var r={request:`send_echores`,room:j,id:parseInt(O,10),to:n.from,data:n.data,reqSendTs:n.reqSendTs,reqRecvTs:Date.now(),resSendTs:Date.now()};l.send({message:r,success:function(e){}})}else if(e.recv_echores){n=e.recv_echores;var i={};i.id=n.from,i.data=n.data,i.delayms=(Date.now()-n.reqSendTs)/2,Ge(i)}else if(e.data){var o=e.data.videoroom;if(a.debug(`Event: `+o),o!=null){if(o===`publisherevent`){if(e.data.publishers!==void 0&&e.data.publishers!==null){var s=e.data.publishers;for(var c in a.debug(`Got a list of available publishers/feeds:`),a.debug(s),s){var u=s[c].id,d=s[c].display,f=s[c].streams,p=s[c].attribute;for(var m in f){var h=f[m];h.id=u,h.display=d}b[u]={id:u,display:d,streams:f},d!==void 0&&d.includes(`web_listener`)||(U&&setTimeout((function(){Qt(u,d)}),200),setTimeout((function(){Ie(u,d,p)}),100))}}else if(e.data.leaving!==void 0&&e.data.leaving!==null){var g=e.data.leaving.id;a.log(`Publisher left: `+g);var _=null;if(y.some(e=>!(!e||typeof e!=`object`||e.rfid!==g)&&(_=e,!0)),x.forEach((e,t)=>{e.feed_id===g&&x.splice(t,1)}),x.forEach((e,t)=>{e.feed_id===g&&x.splice(t,1)}),_!=null){var v=_.rfid;a.debug(`Feed `+_.rfid+` (`+_.rfdisplay+`) has left the room, detaching`),$(`#videoremote`+_.rfindex).empty(),!1===U&&$(`#videoremote`+_.rfindex).remove(),y[_.rfindex]=null;var S=U?_.rfindex:_.rfid;Pe(S),W&&(_.spinner!==void 0&&_.spinner!==null&&(_.spinner.stop(),_.spinner=null),$(`#waitingvideo`+_.rfindex).remove()),H&&($(`#curbitrate`+_.rfindex).remove(),$(`#curres`+_.rfindex).remove(),C[_.rfindex]!==void 0&&C[_.rfindex]!==null&&(clearInterval(C[_.rfindex]),C[_.rfindex]=null)),Le(v),$t(v)}}else if(e.data.unpublished!==void 0&&e.data.unpublished!==null){var w=e.data.unpublished.id;a.log(`Publisher unpublished: `+w),_=null,y.some(e=>!(!e||typeof e!=`object`||e.rfid!==w)&&(_=e,!0)),_!=null&&(a.debug(`Feed `+_.rfid+` (`+_.rfdisplay+`) has unpublished, detaching`),$(`#videoremote`+_.rfindex).empty(),y[_.rfindex]=null,ze(_.rfid),$t(_.rfid))}}else if(o===`streamevent`){if(e.data.removed){let t=[];for(let n of e.data.removed)t.push(n.mid)}if(e.data.added){let t=[];for(let n of e.data.added)t.push(n.mid)}}}}}}})}})}function Wt(e,t,n){var o=L,s=!1;e=R,P||(o=!1,e=!1,s=!0),I&&(s=!0);let c={audioRecv:!1,videoRecv:!1,audioSend:e,videoSend:o,data:s,video:F?`screen`:ct,screenstream:n,screenconfig:Pt(lt)};if(ye!==null&&(c.videoDeviceId=ye),c.audio={},c.audio.optional=[{sourceId:be||`default`}],c.waitPermissionTimeout=Y,u!==null){if(i){if(ht)return void wt(F,!0).then((function(e){bt(e);var t=[];
305[`0`,`1`].forEach(e=>{t.push({mid:e,method:`client`,pause:!1})});var n=`BRTC_CLIENT_SIGNAL`,r={type:n,data:{request:`pause_resume`,transaction:a.randomString(12),handleId:u.getId(),session_id:l.getSessionId(),streams:t}};console.log(`Send DataChannel msg:`+JSON.stringify(r)),Xt(JSON.stringify(r),n)}),(function(e){}));ht=!0}l?.sendlog({log:{event:`calling publishOwnFeed`,code:1,id:parseInt(O),media:c,ts:new Date().toLocaleString()}});var d=!0;setTimeout(()=>{l!=null&&d&&l.sendlog({log:{event:`calling createOffer on timeout 5s`,code:1,id:parseInt(O),ts:new Date().toLocaleString()}})},5e3);var f=Date.now();u.createOffer({media:c,stream:fe,ongetsharescreenstream:pe,success:function(t){fe=null,d=!1;var n=Date.now()-f;u.session.sendlog({log:{event:`calling createOffer on success:`,code:0,id:parseInt(O),deltatime:n,is_normal:n<2e3?`ok`:`a little long`,ts:new Date().toLocaleString()}}),a.debug(`Got publisher SDP!`),a.debug(t);let c=h;F&&(c+=`_screen`);let l={};if(l=F?{request:`configure`,audio:e,video:!0,data:s,display:c}:{request:`configure`,audio:e,video:o,data:s},r)l={request:`configure`,streams:[{mid:`0`,description:`audio`},{mid:`1`,description:`camera`}]};else if(i)return void ft.setRemoteDescription(new RTCSessionDescription({type:`answer`,sdp:ft.Ssdp}));u?.send({message:l,jsep:t})},error(e){d=!1,l?.sendlog({log:{event:`createOffer on error: `+JSON.stringify(e),code:2,id:parseInt(O),ts:new Date().toLocaleString()}}),navigator.mediaDevices.enumerateDevices().then((function(e){l?.sendlog({log:{event:`createOffer on error .enumerateDevices list: `,code:2,id:parseInt(O),devices:e,ts:new Date().toLocaleString()}})})).catch((function(e){l?.sendlog({log:{event:`createOffer on error .enumerateDevices catch: `,code:2,id:parseInt(O),error:e,ts:new Date().toLocaleString()}})})),a.log(`WebRTC error:`,e),setTimeout(()=>{Ce(`WebRTC error... `+JSON.stringify(e))},0)}})}}function Gt(){Ze&&(Ze=!1,Qe())}function Kt(){u!==null&&u.send({message:{request:`unpublish`}})}function qt(e,t){var a=666,o=null;if(y.forEach(e=>{e&&typeof e==`object`&&e.rfid==t&&(o=e)}),!o&&(!r&&!i||b[t]!==void 0&&b[t]!==null)){var s={id:t,videoview:e,ts:Date.now()};Je.some((e,t)=>!(!e||typeof e!=`object`||e.id!=s.id||(Je.splice(t,1),0))),Je.push(s);for(var c=500;c<1e3;c++)if(y[c]===void 0||y[c]===null){a=c,y[c]=8888;break}document.getElementById(`videoremote`+a+n)||(i||$(`#`+e).empty(),$(`#`+e).append(`<div style="width: 100%;height: 100%;" id="videoremote`+a+n+`"></div>`)),r?Qt(t,A,a):i?en(t,A,a):tn(t,A,a)}}function Jt(e){return new Promise((t,a)=>{jt(e),x.forEach((t,n)=>{t&&t.feed_id===e&&(x[n]=null)});var o=!1;if(y.some((t,a)=>!(!t||typeof t!=`object`||t.rfindex!==e&&t.rfid!==e)&&(y[a]=null,r?$t(e):i||t.detach(),!1===U?i?i&&document.getElementById(`v4videos`+n)&&$(`#videoremote`+t.rfindex)[0]&&(document.getElementById(`v4videos`+n).appendChild($(`#videoremote`+t.rfindex)[0].firstChild),$(`#videoremote`+t.rfindex).remove()):$(`#videoremote`+t.rfindex).remove():$(`#videoremote`+t.rfindex).empty(),o=!0,!0)),o){if(!i){var s={};s.resolve=t,s.feedid=e,w.push(s)}}else t(`waring: not subscribed feedid: `+e)})}function Yt(e){var t=null;Je.some((n,r)=>!(!n||typeof n!=`object`||n.id!=e)&&!(n.ts+1e4>Date.now())&&(t=n.videoview,!0)),U&&y.some((r,i)=>{if(r&&typeof r==`object`&&(r.rfindex==e||r.rfid==e)){var a=document.getElementById(`videoremote`+r.rfindex+n);return a&&(t=a.id),!0}return!1}),l?.sendlog({log:{event:`calling resubscribeStreaming`,code:4,feedid:e,videoview:t,id:parseInt(O),ts:new Date().toLocaleString()}}),t!==null&&(Jt(e),setTimeout(()=>{U?tn(e,A):qt(t,e)},500))}function Xt(e,t){u.data({label:t,text:e,error:function(e){Ce(e)}})}function Zt(e,t){console.log(`Send DataChannel via v4 listener msg:`+e),f.data({label:t,text:e,error:function(e){Ce(e)}})}function Qt(t,r,i){var o=!1;if(i!==void 0&&(o=!0),d!==null){var s=b[t].streams,c=[];s.forEach(e=>{c.push(e.mid)});let e={request:`subscribe`,feeds:[{id:t,mids:c}]};if(d.send({message:e}),(m={}).rfid=t,o)y[i]=m,m.rfindex=i;else for(var u=1;u<500;u++)if(y[u]===void 0||y[u]===null){y[u]=m,m.rfindex=u;break}b[t].rfindex=m.rfindex;return}let f={janus:`setup`,enable_multistream:!0,version:`brtc_v2`,body:{plugin:e,session_config:{userevent:!0,sessionevent:!0},app_id:T,room_name:E,id:O,display:A,token:``,ptype:`subscriber`}};var m={rfindex:1};l.V2setup({request:f,onsetup:function(r){l!==null&&l.attach({plugin:e,opaqueId:p,success:function(e){d=e,a.log(`Plugin attached! (`+d.getPlugin()+`, id=`+d.getId()+`)`),a.log(`  -- This is a V2 subscriber`);var t=r.jsep;if(r.data.streams!==void 0&&r.data.streams.length>0){var i=r.data.streams[0].feed_id,o=y[b[i].rfindex];if(o.rfid=r.data.streams[0].feed_id,o.rfdisplay=r.data.streams[0].feed_display,W)if(
305o.spinner===void 0||o.spinner===null){var s=document.getElementById(`videoremote`+o.rfindex+n);o.spinner=new Spinner({top:100}).spin(s)}else o.spinner.spin();Me(U?o.rfindex:o.rfid),a.log(`Successfully attached to feed `+o.rfid+` (`+o.rfdisplay+`) in room `)}t!=null&&(a.debug(`Handling SDP as well...`),a.debug(t),X!==null&&(t.sdp=rn(t.sdp,X,Z)),d.createAnswer({jsep:t,media:{audioSend:!1,videoSend:!1,data:!0},success:function(e){a.debug(`Got SDP!`),a.debug(e);var t={request:`start`,room:j};d.send({message:t,jsep:e})},error:function(e){a.error(`WebRTC error:`,e),Ce(`WebRTC error... `+JSON.stringify(e))}}))},onmessage:function(e,t){if(a.debug(` ::: Got a message (listener) :::`),a.debug(JSON.stringify(e)),e.unsubscribed&&e.unsubscribed===`ok`&&e.streams!==void 0&&e.streams.length>0){var r=e.streams[0].feed_id;typeof r==`number`&&w.some((e,t)=>!(!e||typeof e!=`object`||e.feedid!==r)&&(e.resolve(`success: feedid: `+r),w.splice(t,1),!0))}else{if(e.streams!==void 0&&e.streams.length>0){for(var i in e.streams){var o=e.streams[i].mid;x[o]||(x[o]=e.streams[i])}var s=e.streams[e.streams.length-1].feed_id,c=y[b[s].rfindex];if(c.rfid=s,c.rfdisplay=e.streams[e.streams.length-1].feed_display,W)if(c.spinner===void 0||c.spinner===null){var l=document.getElementById(`videoremote`+c.rfindex+n);c.spinner=new Spinner({top:100}).spin(l)}else c.spinner.spin();Me(U?c.rfindex:c.rfid),a.log(`Successfully attached to feed `+c.rfid+` (`+c.rfdisplay+`) in room `)}t!=null&&(a.debug(`Handling SDP as well...`),a.debug(t),X!==null&&(t.sdp=rn(t.sdp,X,Z)),d.createAnswer({jsep:t,media:{audioSend:!1,videoSend:!1,data:!0},success:function(e){a.debug(`Got SDP!`),a.debug(e);var t={request:`start`,room:j};d.send({message:t,jsep:e})},error:function(e){a.error(`WebRTC error:`,e),Ce(`WebRTC error... `+JSON.stringify(e))}}))}},error:function(e){a.error(`  -- Error attaching plugin...`,e)},webrtcState:function(e){a.log(`Janus says this WebRTC PeerConnection ) is `+(e?`up`:`down`)+` now`)},iceState:function(e){a.log(`iceConnectionState: `+e),e===`disconnected`&&Fe(0)},onlocalstream:function(e){},slowLink:function(e,t){gt(e,t)},onremotestream:function(e,t,r,i){var o=x[r],s=y[b[o.feed_id].rfindex],c=null;if(S[o.feed_id])S[o.feed_id].addTrack(t.clone()),c=S[o.feed_id];else{var l=new MediaStream;l.addTrack(t.clone()),S[o.feed_id]=l,c=l}if(a.debug(`Remote feed #`+s.rfindex),$(`#remotevideo`+s.rfindex).length===0){var u=``;re&&(u=`muted`),W&&$(`#videoremote`+s.rfindex).append(`<video style="border-radius: 5px; display: block; margin: auto;" id="waitingvideo`+s.rfindex+n+`" width=320 height=240 />`),adapter.browserDetails.browser===`safari`&&(P||re||(u+=` controls`)),document.getElementById(`remotevideo`+s.rfindex+n)||$(`#videoremote`+s.rfindex).append(`<video `+u+` id="remotevideo`+s.rfindex+n+`" width="100%" height="100%" playsinline autoplay/>`)}H&&$(`#curres`+s.rfindex).length===0&&$(`#videoremote`+s.rfindex).append(`<span id="curres`+s.rfindex+n+`" style="display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em; background-color: #2fa4e7;position: absolute; bottom: 0px; left: 0px; margin: 2px;"></span><span id="curbitrate`+s.rfindex+n+`" style="display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;background-color: #033c73;position: absolute; bottom: 0px; right: 0px;margin: 2px;"></span>`);var f=c.getVideoTracks(),p=$(`#remotevideo`+s.rfindex).get(0);p===null?a.log(`no video label for Remote feed #`+s.rfindex):(a.attachMediaStream(p,c),f==null||f.length===0?($(`#remotevideo`+s.rfindex).hide(),$(`#remotevideo`+s.rfindex).bind(`playing`,(function(){if(s!==null){var e=$(`#remotevideo`+s.rfindex).get(0);e!=null&&e.setSinkId!==void 0&&xe!=null&&e.setSinkId(xe),Ne(U?s.rfindex:s.rfid),W&&(s.spinner!==void 0&&s.spinner!==null&&(s.spinner.stop(),s.spinner=null),$(`#waitingvideo`+s.rfindex).remove()),$(`#remotevideo`+s.rfindex).removeClass(`hide`)}})),ve&&$(`#videoremote`+s.rfindex).append(`<div sytle="position: relative;" id="novideo`+s.rfindex+n+`" ><span style="text-align: center; position: absolute;bottom: 0px; right: 0px;left: 0px;font-size: 16px; ">No remote video available</span></div>`)):($(`#remotevideo`+s.rfindex).show(),$(`#remotevideo`+s.rfindex).bind(`playing`,(function(){if(s!==null){$(`#novideo`+s.rfindex).length!==0&&$(`#novideo`+s.rfindex).remove();
305var e=$(`#remotevideo`+s.rfindex).get(0);e!=null&&e.setSinkId!==void 0&&xe!=null&&e.setSinkId(xe),Ne(U?s.rfindex:s.rfid),W&&(s.spinner!==void 0&&s.spinner!==null&&(s.spinner.stop(),s.spinner=null),$(`#waitingvideo`+s.rfindex).remove()),$(`#remotevideo`+s.rfindex).removeClass(`hide`);var t=this.videoWidth,n=this.videoHeight;H&&($(`#curres`+s.rfindex).removeClass(`hide`).text(t+`x`+n).show(),adapter.browserDetails.browser===`firefox`&&setTimeout((function(){if(s!==null){var e=$(`#remotevideo`+s.rfindex).get(0).videoWidth,t=$(`#remotevideo`+s.rfindex).get(0).videoHeight;$(`#curres`+s.rfindex).removeClass(`hide`).text(e+`x`+t).show()}}),2e3))}}))),H&&(adapter.browserDetails.browser!==`chrome`&&adapter.browserDetails.browser!==`firefox`||($(`#curbitrate`+s.rfindex).removeClass(`hide`).show(),C[s.rfindex]=setInterval((function(){if(d!==null){var e=d.getBitrate();$(`#curbitrate`+s.rfindex).text(e)}}),1e3))))},ondataopen:function(e){a.log(`The DataChannel is available!`+e)},ondata:function(e,t){Be(e,t),a.log(`The DataChannel on data!`+t+e)},oncleanup:function(){a.log(` ::: Got a cleanup notification (remote feed `+t+`) :::`),y.forEach(e=>{if(e&&typeof e==`object`){var t=e;if(Fe===null)return;var n=U?t.rfindex:t.rfid;setTimeout((function(){Pe(n)}),0),!1===U&&$(`#videoremote`+t.rfindex).remove(),W&&(t.spinner!==void 0&&t.spinner!==null&&(t.spinner.stop(),t.spinner=null),$(`#waitingvideo`+t.rfindex).remove()),H&&($(`#curbitrate`+t.rfindex).remove(),$(`#curres`+t.rfindex).remove(),C[t.rfindex]!==void 0&&C[t.rfindex]!==null&&(clearInterval(C[t.rfindex]),C[t.rfindex]=null)),t=null}})}},r)}})}function $t(e){var t={request:`unsubscribe`,feeds:[{id:e}]};if(S[e]){var n=S[e].getTracks();n&&n.forEach(e=>{e.stop()}),S[e]=null}d?.send({message:t})}function en(e,t,n){if(l!==null){var r=!1;if(n!==void 0&&(r=!0),b[e]&&f!==null){var i={};if(i.rfid=e,r){if(y[n]=i,i.rfindex=n,(c=$(`#videoremote`+(i.rfindex-499)).get(0))!==null){var o=$(`#videoremote`+n).get(0);o!==null&&o.append(c)}}else for(var s=1;s<500;s++)if(y[s]===void 0||y[s]===null){y[s]=i,i.rfindex=s;break}var c=b[e].streams,u=[],d=0;if(c.forEach(t=>{if(t.type!==`data`){var n=-1;for(d=-1,t.type===`audio`?n=0:t.type===`video`&&(n=1),s=n;s<10;s+=2)if(!x[s]){x[d=s]=c,c.feed_id=e;break}if(d===-1)return void console.log(`Error! No mid for SubscribeStreaming id:`+e);t.pullmid=d,u.push({mid:d.toString(),action:`switch`,feed_id:e,feed_mid:t.mid})}}),u.length===0)return void console.log(`No Mid for SubscribeStreaming id:`+e);var p=`BRTC_CLIENT_SIGNAL`,m={type:p,data:{transaction:a.randomString(12),handleId:f.getId(),session_id:l.getSessionId(),request:`update_streams`,feeds:[{streams:u,id:e}]}};Zt(JSON.stringify(m),p)}}}function tn(t,r,i){var o=!1;i!==void 0&&(o=!0);var s=null;y.forEach(e=>{e&&typeof e==`object`&&e.rfid==t&&(s=e)}),s||l.attach({plugin:e,opaqueId:p,success:function(e){s=e,a.log(`Plugin attached! (`+s.getPlugin()+`, id=`+s.getId()+`)`),a.log(`  -- This is a subscriber`);var n={request:`join`,room:parseInt(j),room_name:E,ptype:`listener`,id:parseInt(O),app_id:T,role:D,token:``,feed:t,private_id:v,display:r};s.send({message:n})},error:function(e){a.error(`  -- Error attaching plugin...`,e)},onmessage:function(e,t){a.debug(` ::: Got a message (listener) :::`),a.debug(JSON.stringify(e));var r=e.videoroom;if(a.debug(`Event: `+r),r!=null&&r!=null)if(r===`attached`){if(o)y[i]=s,s.rfindex=i;else for(var c=1;c<500;c++)if(y[c]===void 0||y[c]===null){y[c]=s,s.rfindex=c;break}if(s.rfid=e.id,s.rfdisplay=e.display,W)if(s.spinner===void 0||s.spinner===null){var l=document.getElementById(`videoremote`+s.rfindex+n);s.spinner=new Spinner({top:100}).spin(l)}else s.spinner.spin();Me(U?s.rfindex:s.rfid),a.log(`Successfully attached to feed `+s.rfid+` (`+s.rfdisplay+`) in room `+e.room)}else e.error!==void 0&&e.error!==null&&Ce(e.error);if(t!=null){a.debug(`Handling SDP as well...`),a.debug(t),X!==null&&(t.sdp=rn(t.sdp,X,Z));var u={request:`configure`,audio:z,video:ee,data:!0};s.send({message:u}),s.createAnswer({jsep:t,media:{audioSend:!1,videoSend:!1,data:!0},success:function(e){a.debug(`Got SDP!`),a.debug(e),s.send({message:{request:`start`,room:1234},jsep:e})},error:function(e){a.error(`WebRTC error:`,e),Ce(`WebRTC error... `+JSON.stringify(e))}})}},webrtcState:function(e){a.log(`Janus says this WebRTC PeerConnection (feed #`+s.rfindex+`) is `+(e?`up`:`down`)+` now`)},iceState:function(e){a.log(`iceConnectionState: `+e),e===`disconnected`?(setTimeout((function(){Re(t,!1),Fe(t)}),0),setTimeout((function(){Yt(t)}),100)):e===`connected`&&Re(t,!0)},mediaState:function(e,n){ot(t,e,n)},onlocalstream:function(e){},slowLink:function(e,t){gt(e,t)},onremotestream:function(e){if(a.debug(`Remote feed #`+s.rfindex),$(`#remotevideo`+s.rfindex).length===0){var t=``;re&&(t=`muted`),W&&$(`#videoremote`+s.rfindex).append(`<video style="border-radius: 5px; display: block; margin: auto;" id="waitingvideo`+s.rfindex+n+`" width=320 height=240 />`),adapter.browserDetails.browser===`safari`&&(P||re||(t+=` controls`)),document.getElementById(`remotevideo`+s.rfindex+n)||$(`#videoremote`+s.rfindex).append(`<video `+t+` id="remotevideo`+s.rfindex+n+`" width="100%" height="100%" playsinline autoplay/>`)}H&&$(`#curres`+s.rfindex).length===0&&$(`#videoremote`+s.rfindex).append(`<span id="curres`+s.rfindex+n+`" style="display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em; background-color: #2fa4e7; position: absolute; bottom: 0px; left: 0px;margin: 2px;"></span><span id="curbitrate`+s.rfindex+n+`" style="display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;background-color: #033c73; position: absolute; bottom: 0px; right: 0px;margin: 2px;"></span>`);var r=e.getVideoTracks(),i=$(`#remotevideo`+s.rfindex).get(0);i===null?a.log(`no video label for Remote feed #`+s.rfindex):(a.attachMediaStream(i,e),r==null||r.length===0?($(`#remotevideo`+s.rfindex).hide(),$(`#remotevideo`+s.rfindex).bind(`playing`,(function(){if(s!==null){var e=$
305(`#remotevideo`+s.rfindex).get(0);e!=null&&e.setSinkId!==void 0&&xe!=null&&e.setSinkId(xe),Ne(U?s.rfindex:s.rfid),W&&(s.spinner!==void 0&&s.spinner!==null&&s.spinner.stop(),s.spinner=null,$(`#waitingvideo`+s.rfindex).remove()),$(`#remotevideo`+s.rfindex).removeClass(`hide`)}})),ve&&$(`#videoremote`+s.rfindex).append(`<div sytle="position: relative;" id="novideo`+s.rfindex+n+`" ><span style="text-align: center; position: absolute; bottom: 0px; right: 0px;left: 0px;font-size: 16px; ">No remote video available</span></div>`)):($(`#remotevideo`+s.rfindex).show(),s.playing_called=!1,$(`#remotevideo`+s.rfindex).bind(`playing`,(function(){if(s!==null&&!s.playing_called){s.playing_called=!0,$(`#novideo`+s.rfindex).length!==0&&$(`#novideo`+s.rfindex).remove();var e=$(`#remotevideo`+s.rfindex).get(0);e!=null&&e.setSinkId!==void 0&&xe!=null&&e.setSinkId(xe),Ne(U?s.rfindex:s.rfid),W&&(s.spinner!==void 0&&s.spinner!==null&&s.spinner.stop(),s.spinner=null,$(`#waitingvideo`+s.rfindex).remove()),$(`#remotevideo`+s.rfindex).removeClass(`hide`);var t=this.videoWidth,n=this.videoHeight;if(H){var r=$(`#curres`+s.rfindex);r&&(r.removeClass(`hide`),r.text(t+`x`+n),r.show()),adapter.browserDetails.browser===`firefox`&&setTimeout((function(){if(s!==null){var e=$(`#remotevideo`+s.rfindex).get(0).videoWidth,t=$(`#remotevideo`+s.rfindex).get(0).videoHeight,n=$(`#curres`+s.rfindex);n&&(n.removeClass(`hide`),n.text(e+`x`+t),n.show())}}),2e3)}}}))),H&&(adapter.browserDetails.browser!==`chrome`&&adapter.browserDetails.browser!==`firefox`||($(`#curbitrate`+s.rfindex).removeClass(`hide`).show(),C[s.rfindex]=setInterval((function(){if(s!==null){var e=s.getBitrate();$(`#curbitrate`+s.rfindex).text(e)}}),1e3))))},ondataopen:function(e){a.log(`The DataChannel is available!`+e)},ondata:function(e,t){Be(e,t),a.log(`The DataChannel on data!`+t+e)},oncleanup:function(){if(a.log(` ::: Got a cleanup notification (remote feed `+t+`) :::`),s!==null){var e=U?s.rfindex:s.rfid;setTimeout((function(){Pe(e)}),0),!1===U&&$(`#videoremote`+s.rfindex).remove(),W&&(s.spinner!==void 0&&s.spinner!==null&&s.spinner.stop(),s.spinner=null,$(`#waitingvideo`+s.rfindex).remove()),H&&($(`#curbitrate`+s.rfindex).remove(),$(`#curres`+s.rfindex).remove(),C[s.rfindex]!==null&&C[s.rfindex]!==null&&clearInterval(C[s.rfindex]),C[s.rfindex]=null),s=null}}})}function nn(e){if(!et)return;let t={env:tt,timestamp:e.timestamp?e.timestamp:new Date().getTime(),appId:T,roomId:j,userId:O,message:e};o($e.serverUrl,t)}function rn(e,t,n){for(var r=e.split(`\r
306`),i=0;i<r.length;i++)if(r[i].match(/a=candidate*/)){var a=r[i].match(/a=candidate:1 1 udp (.+) (.+) (\d+) typ host/);n&&(a[3]=n),r[i]=`a=candidate:1 1 udp `+a[1]+` `+t+` `+a[3]+` typ host`}return(e=r.join(`\r
307`)).endsWith(`\r
308`)||(e+=`\r
309`),e}function an(e,t){e.success=typeof e.success==`function`?e.success:a.noop,e.error=typeof e.error==`function`?e.error:a.noop;let n=[];navigator.mediaDevices.enumerateDevices().then((function(r){r.forEach((function(e){(e.kind===t||t===`all`)&&n.push(e)})),e.success(n)})).catch((function(t){e.error(t)}))}this.BRTC_GetStatsData=function(){return yt},this.BRTC_ReplaceVideo=function(e){(function(e){if(e!==`default`&&e!==``&&e!==void 0||(e=null),ye===e||(ye=e,console.log(`videoDeviceId: `+ye),u==null)||_===null||!L)return;let t=null,n=Pt(ct);ye!=null&&ye!==`default`&&(n.deviceId={ideal:ye},n.facingMode={});let r={audio:!1,video:n};vt(),navigator.mediaDevices.getUserMedia(r).then((function(e){t=e,bt(t)})).catch(xt)})(e)},this.BRTC_StopAudio=function(){St()},this.BRTC_ReplaceAudio=function(e){if(be===e||be===null&&e===`default`||(be=e,u==null)||_===null)return;var t=navigator.userAgent;if(/Safari/.test(t)&&!/Chrome/.test(t))return Kt(),void setTimeout((function(){Wt(!0)}),300);let n=null,r={audio:!0,video:!1};be!=null&&be!==`default`&&(r={audio:{optional:[{sourceId:be}]},video:!1}),St(),navigator.mediaDevices.getUserMedia(r).then((function(e){n=e,function(e){u.createOffer({media:{update:!0,replaceAudio:!0,audioRecv:!1,videoRecv:!1,audioSend:!0,videoSend:!0},stream:e,success(e){}})}(n)})).catch(xt)},this.BRTC_SetAudioOutputDevice=function(e){xe=e,u!=null&&y.forEac
309h(t=>{if(t&&typeof t==`object`){var n=$(`#remotevideo`+t.rfindex).get(0);n.setSinkId!==void 0&&n!=null&&(console.log(`set Audio output audioDeviceId: `+e),n.setSinkId(e))}})},this.BRTC_ReplaceStream=function(e){console.log(`newStream: `+e),u!=null&&e!=null&&bt(e)},this.BRTC_GetVideoDevices=function(e){an(e,`videoinput`)},this.BRTC_GetAudioInputDevices=function(e){an(e,`audioinput`)},this.BRTC_GetAudioOutputDevices=function(e){an(e,`audiooutput`)},this.BRTC_GetAllDevices=function(e){an(e,`all`)},this.BRTC_SetDevicesChangeListener=function(e){e=typeof e==`function`?e:function(){},navigator.mediaDevices.ondevicechange=function(t){e(t)}},this.BRTC_GetUserList=function(e){(function(e){if(e!=null&&(e.success=typeof e.success==`function`?e.success:a.noop,e.error=typeof e.error==`function`?e.error:a.noop),!i){var t={request:`listparticipants`,room:j};u.send({message:t,success:e==null?a.noop:e.success,error:e==null?a.noop:e.error})}})(e)},this.BRTC_SubscribeStreaming=function(e,t){qt(e,t)},this.BRTC_ResubscribeStreaming=function(e){Yt(e)},this.BRTC_StopSubscribeStreaming=function(e){return Jt(e)},this.v4hook_BRTC_StopSubscribeStreaming=function(e){return new Promise((t,r)=>{jt(e),x.forEach((t,n)=>{t&&t.feed_id===e&&(x[n]=null)});var o=!1;y.some((t,r)=>!(!t||typeof t!=`object`||t.rfindex!==e&&t.rfid!==e)&&(y[r]=null,!1===U?i&&document.getElementById(`v4videos`+n)&&$(`#videoremote`+t.rfindex)[0]&&(document.getElementById(`v4videos`+n).appendChild($(`#videoremote`+t.rfindex)[0].firstChild),$(`#videoremote`+t.rfindex).remove()):$(`#videoremote`+t.rfindex).empty(),function(e){var t=`BRTC_CLIENT_SIGNAL`,n=[];if(b[e]){b[e].streams.forEach(e=>{typeof e.pullmid==`number`&&n.push({mid:e.pullmid.toString(),type:e.type})});var r={type:t,data:{request:`unsubscribe`,transaction:a.randomString(12),handleId:f.getId(),session_id:l.getSessionId(),streams:n}};n.length>0&&Zt(JSON.stringify(r),t)}}(e),o=!0,!0)),t(o?`success: feedid: `+e:`warning: not subscribed feedid: `+e)})},this.BRTC_StartPublish=function(){Wt(!0)},this.BRTC_StopPublish=function(e){return new Promise((e,t)=>{Qe=function(){e()},Ze=!0,Kt()})},this.v4hook_BRTC_StopPublish=function(e){return new Promise((t,n)=>{var r=[],o=[];e?(e.audio&&o.push(`0`),e.video&&o.push(`1`)):o=[`0`,`1`],o.forEach(e=>{r.push({mid:e,method:`client`,pause:!0})});var s=`BRTC_CLIENT_SIGNAL`,c={type:s,data:{request:`pause_resume`,transaction:a.randomString(12),handleId:u.getId(),session_id:l.getSessionId(),streams:r}};console.log(`Send DataChannel msg:`+JSON.stringify(c)),Xt(JSON.stringify(c),s),t(),i&&ht&&(e?(e.audio&&St(),e.video&&vt()):(St(),vt()))})},this.BRTC_MuteMicphone=function(e){u!==null&&(e?u.muteAudio():u.unmuteAudio())},this.v4hook_BRTC_MuteCamera=function(e){if(u&&i){var t=`BRTC_CLIENT_SIGNAL`,n={type:t,data:{request:`pause_resume`,transaction:a.randomString(12),handleId:u.getId(),session_id:l.getSessionId(),streams:[{mid:`1`,method:`client`,pause:e}]}};console.log(`Send DataChannel msg:`+JSON.stringify(n)),Xt(JSON.stringify(n),t);return}},this.BRTC_MuteCamera=function(e){u!==null&&(L=!e,Qe=function(){setTimeout((function(){Wt(!0)}),500)},Ze=!0,Kt())},this.BRTC_MuteCamera_legcy=function(e){u!==null&&(e?u.muteVideo():u.unmuteVideo())},this.BRTC_MuteRemoteVideo=function(e,t,i){if(u!==null&&!r)return typeof i!=`number`||e?void(t===void 0?y.forEach(t=>{if(t&&typeof t==`object`){var n={request:`configure`,audio:z,video:!e,data:!0};t.send({message:n}),e&&(t.lastmutedtime=Date.now())}}):y.some(n=>{if(n&&typeof n==`object`&&(n.rfindex==t||n.rfid==t)){var r={request:`configure`,audio:z,video:!e,data:!0};return n.send({message:r}),e&&(n.lastmutedtime=Date.now()),!0}return!1})):t===void 0?void y.forEach(e=>{if(e&&typeof e==`object`)if(e.lastmutedtime+i<Date.now()){var t=document.getElementById(`videoremote`+remoteFeed.rfindex+n).parentNode.parentNode.id,r=e.rfid;Jt(r),setTimeout((function(){qt(t,r)}),200)}else{var a={request:`configure`,audio:z,video:!0,data:!0};e.send({message:a})}}):void y.some(e=>{if(e&&typeof e==`object`&&(e.rfindex==t||e.rfid==t)){if(e.lastmutedtime+i<Date.now()){var r=document.getElementById(`videoremote`+remoteFeed.rfindex+n).parentNode.parentNode.id,a=e.rfid;Jt(a),setTimeout((function(){qt(r,a)}),200)}else{var o={request:`configure`,audio:z,video:!0,data:!0};e.send({message:o})}return!0}return!1})},this.BRTC_MuteRemoteAudio=function(e,t){u!==null&&(r||(t===void 0?y.forEac
309h(t=>{if(t&&typeof t==`object`){var n={request:`configure`,audio:!e,video:ee,data:!0};t.send({message:n})}}):y.some(n=>{if(n&&typeof n==`object`&&(U?n.rfindex==t:n.rfid==t)){var r={request:`configure`,audio:!e,video:ee,data:!0};return n.send({message:r}),!0}return!1})))},this.v4hook_BRTC_MuteRemoteVideo=function(e,t,n){Ct(`video`,e,t)},this.v4hook_BRTC_MuteRemoteAudio=function(e,t){Ct(`audio`,e,t)},this.v4hook_BRTC_SwitchScreen=function(e){(function(e){wt(!F,!1).then((function(t){F=!F,bt(t),e&&e.success&&e.success(`BRTC_SwitchScreen success.`)}),(function(t){e&&e.error&&e.error(`BRTC_SwitchScreen error: `+t)}))})(e)},this.BRTC_SwitchScreen=function(e){Tt(e)},this.BRTC_GetRemoteAudioLevels=function(){let e=[];return r?(y.forEach(t=>{if(t&&typeof t==`object`){if(d.webrtcStuff&&d.webrtcStuff.pc&&d.webrtcStuff.pc.getStats){t.ssrcs=[];var n=d.webrtcStuff.pc.getTransceivers();if(n&&n.length>0)for(var r in n){var i=n[r],a=x[i.mid];if(a&&t.rfid===a.feed_id){let e=i.receiver;if(e&&e.track&&e.track.kind===`audio`){let n=e.getSynchronizationSources();if(adapter.browserDetails.browser===`safari`)for(let e in n){let t=n[e];t.audioLevel=10**(-1*t.audioLevel/20)}t.ssrcs=n,n.length>0&&(t.ssrc0=n[0].source);break}}}d.webrtcStuff.pc.getStats().then((function(e){e.forEach(e=>!(e.type!==`ssrc`||(t.packetsReceived=parseInt(e.stat(`packetsReceived`),10),t.packetsLost=parseInt(e.stat(`packetsLost`),10),e.stat(`googDecodingCTN`)!==``&&(t.googDecodingCTN=parseInt(e.stat(`googDecodingCTN`),10)),e.stat(`googDecodingNormal`)!==``&&(t.googDecodingNormal=parseInt(e.stat(`googDecodingNormal`),10)),e.stat(`googDecodingMuted`)!==``&&(t.googDecodingMuted=parseInt(e.stat(`googDecodingMuted`),10)),e.stat(`audioOutputLevel`)&&(t.volume=parseInt(e.stat(`audioOutputLevel`),10)),!e.id.includes(t.ssrc0))))}))}let o={feedId:t.rfid,display:t.rfdisplay,ssrcs:t.ssrcs,packetsReceived:t.packetsReceived?t.packetsReceived:0,packetsLost:t.packetsLost?t.packetsLost:0,googDecodingCTN:t.googDecodingCTN?t.googDecodingCTN:0,googDecodingNormal:t.googDecodingNormal?t.googDecodingNormal:0,googDecodingMuted:t.googDecodingMuted?t.googDecodingMuted:0,volume:t.volume?t.volume:2};e.push(o)}}),e):(y.forEach(t=>{if(t&&typeof t==`object`){t.webrtcStuff&&t.webrtcStuff.pc&&t.webrtcStuff.pc.getStats&&t.webrtcStuff.pc.getStats().then((function(e){e.forEach(e=>e.type===`ssrc`&&(t.packetsReceived=parseInt(e.stat(`packetsReceived`)),t.packetsLost=parseInt(e.stat(`packetsLost`)),e.stat(`googDecodingCTN`)!=``&&(t.googDecodingCTN=parseInt(e.stat(`googDecodingCTN`))),e.stat(`googDecodingNormal`)!=``&&(t.googDecodingNormal=parseInt(e.stat(`googDecodingNormal`))),e.stat(`googDecodingMuted`)!=``&&(t.googDecodingMuted=parseInt(e.stat(`googDecodingMuted`))),e.stat(`googDecodingCTN`)!=``))}));let n={feedId:t.rfid,display:t.rfdisplay,ssrcs:t.getSsrcs(),packetsReceived:t.packetsReceived?t.packetsReceived:0,packetsLost:t.packetsLost?t.packetsLost:0,googDecodingCTN:t.googDecodingCTN?t.googDecodingCTN:0,googDecodingNormal:t.googDecodingNormal?t.googDecodingNormal:0,googDecodingMuted:t.googDecodingMuted?t.googDecodingMuted:0,volume:t.getRemoteVolume()};e.push(n)}}),e)},this.BRTC_GetRemoteUsers=function(){return qe},this.BRTC_SendMessageToUser=function(e,t){if(l!==null)if(t===void 0&&(t=0),i){var n=t===0?`BRTC_CLIENT_MESSAGE`:`BRTC_CLIENT_P2P_MESSAGE`,r={type:n,from:parseInt(O,10),to:t,data:e};Xt(JSON.stringify(r),n)}else r={request:`senddata`,room:j,id:parseInt(O,10),to:t,data:e,internal:!1},l.send({message:r,success:function(e){}})},this.BRTC_SetUserAttribute=function(e){if(l!==null&&!i){var t={request:`setuserattribute`,room:j,id:parseInt(O),userattribute:e};l.send({message:t,success:function(t){var n={request:`senddata`,room:j,id:parseInt(O),to:0,data:e,internal:!0};l.send({message:n,success:function(e){}})}})}},this.BRTC_GetUserAttribute=function(e){return new Promise((t,n)=>{if(l!==null)if(i)n();else{(e||={}).onattribute=typeof e.onattribute==`function`?e.onattribute:function(){},e.feedid===void 0&&(e.feedid=parseInt(O));var r={request:`getuserattribute`,room:j,id:e.feedid};l.send({message:r,success:function(n){var r={id:n.id,attribute:n.userattribute};e.onattribute(r),t(r)}})}else n()})},this.BRTC_GetUserIP=function(e){return new Promise((t,n)=>{if(l!==null)if(i)n();else{e===void 0&&(e=parseInt(O,10));var r={request:`getuserip`,room:j,id:e};l.send({message:r,success:function(e){t({id:e.id,ip:e.clientTcpIp,udpip:e.clientUdpIp})}})}else n()})},this.BRTC_GetRemoteVideoInfo=function(e){var t={};return r?(y.some(n=>{if(n&&typeof n==`object`&&(n.rfid===e||n.rfindex===e)){t.id=n.rfid,t.bitrate=d.getBitrate(),t.fps=d.getFps(),t.width=0,t.height=0;var r=$(`#remotevideo`+n.rfindex).get(0);return r!=null&&(t.width=r.videoWidth,t.height=r.videoHeight),!0}return!1}),t):(y.some(n=>{if(n&&typeof n==`object`&&(n.rfid===e||n.rfindex===e)){t.id=n.rfid,t.bitrate=n.getBitrate(),t.fps=n.getFps(),t.width=0,t.height=0;var r=$(`#remotevideo`+n.rfindex).get(0);return r!=null&&(t.width=r.videoWidth,t.height=r.videoHeight),!0}return!1}),t)},this.BRTC_KickoutUser=function(e){if(l!==null&&!i&&e!==void 0){var t={request:`kickoutuser`,room:j,target:e};l.send({message:t,success:function(e){}})}},this.BRTC_DisbandRoom=function(){if(l!==null&&!i){var e={request:`disbandroom`,room:j};l.send({message:e,success:function(e){}})}},this.BRTC_ShutUpUser=function(e,t){if(l!==null&&!i){typeof t!=`boolean`&&(t=!0);var n={request:`forwardconfigure`,room:j,target:e,audio:!t,video:!t,data:!t};l.send({message:n,success:function(e){}})}},this.BRTC_StartLiveServerStreaming=function(e,t,n,r){if(l!==null){var i={request:`startbypass`,level:r,room:j,id:parseInt(O,10),rtmp:{url:e,mix:t,mixTemplate:n}};typeof n==`object`&&(i.rtmp.mixTranscodingCfg=n,delete i.rtmp.mix,delete i.rtmp.mixTemplate),l.send({message:i,success:function(e){}})}},this.BRTC_StartLiveServerStreamingEx=function(e,t,n){return this.BRTC_StartLiveServerStreaming(e,!0,n,t)},this.BRTC_StopLiveServerStreaming=function(e){return new Promise((t,n)=>{if(l!==null){var r={request:`stopbypass`,level:e,room:j,id:parseInt(O,10)};l.send({message:r,success:function(e){t()}})}else t()})},this.BRTC_StartRoomMediaRelay=function(e,t,n){return new Promise((r,a)=>{if(u===null||i)a();else{t===0&&(t=parseInt(O,10));var o={request:`start_media_relay`,dest_room_name:e,dest_id:t,de
309st_token:n};u.send({message:o,success:function(e){r()},error:function(e){a()}})}})},this.BRTC_StopRoomMediaRelay=function(e,t){return new Promise((n,r)=>{if(u===null||i)r();else{t===0&&(t=parseInt(O,10));var a={request:`stop_media_relay`,dest_room_name:e,dest_id:t};u.send({message:a,success:function(e){n()},error:function(e){r()}})}})},this.BRTC_StopRoomMediaRelayAll=function(){return new Promise((e,t)=>{u===null||i?t():u.send({message:{request:`stop_media_relay`,stopall:!0},success:function(t){e()},error:function(e){t()}})})},this.BRTC_StartRecording=function(e,t,n,r){return new Promise((a,o)=>{if(l===null||i)o();else{var s={request:`startrecording`};e&&(e===`anchor`&&(e=`user`),s.level=e),t&&(s.mixTranscodingCfg=t),n&&(s.recordingFileCfg=n),r&&(s.storageCfg=r),l.send({message:s,success:function(e){a()}})}})},this.BRTC_StopRecording=function(e){return new Promise((t,n)=>{if(l===null||i)n();else{var r={request:`stoprecording`};e&&(e===`anchor`&&(e=`user`),r.level=e),l.send({message:r,success:function(e){t()}})}})},this.BRTC_GetMessageDelay=function(e,t){return new Promise((n,r)=>{if(l===null||i)r();else{var a={request:`send_echoreq`,room:j,id:parseInt(O,10),to:e,data:t,reqSendTs:Date.now()};l.send({message:a,success:function(e){n()}})}})},this.BRTC_Render_TryLockDevice=function(){return new Promise((e,t)=>{if(l===null)return void t();l.doaction({action:`tryLockDevice`,appType:`game`,appVersion:`v1`,region:`bj`},{success:function(){e()},error:function(e){t(e)}})})},this.BRTC_Render_UnlockDevice=function(e){return new Promise((e,t)=>{if(l===null)return void t();l.doaction({action:`unlockDevice`,appType:`game`,appVersion:`v1`,region:`bj`},{success:function(){e()}})})},this.BRTC_Render_JoinDeviceQueue=function(e){return new Promise((e,t)=>{if(l===null)return void t();l.doaction({action:`joinDeviceQueue`,appType:`game`,appVersion:`v1`,region:`bj`},{success:function(){e()},error:function(e){t(e)}})})},this.BRTC_Render_LeaveDeviceQueue=function(e){return new Promise((e,t)=>{if(l===null)return void t();l.doaction({action:`leaveDeviceQueue`,appType:`game`,appVersion:`v1`,region:`bj`},{success:function(){e()}})})},this.BRTC_Render_StartApp=function(e){return new Promise((t,n)=>{if(l===null)return void n();let r={action:`startApp`,appType:`game`,appVersion:`v1`,region:`bj`};e&&(r.renderEncodeConfig=Object.assign(e)),l.doaction(r,{success:function(){t()}})})},this.BRTC_Render_StopApp=function(e){return new Promise((e,t)=>{if(l===null)return void t();l.doaction({action:`stopApp`,appType:`game`,appVersion:`v1`,region:`bj`},{success:function(){e()}})})},this.BRTC_SetParamSettings=function(e){Nt(e||={})},this.BRTC_AquireDevicePermission=function(e){e.success=typeof e.success==`function`?e.success:function(){},e.error=typeof e.error==`function`?e.error:function(){},navigator.mediaDevices.getUserMedia({video:!0,audio:!0}).then((function(t){e.success(),t.getAudioTracks().forEach((function(e){e.stop()})),t.getVideoTracks().forEach((function(e){e.stop()}))})).catch((function(t){e.error(t)}))},this.BRTC_DeviceTest_Start=function(e){e.success=typeof e.success==`function`?e.success:function(){},e.error=typeof e.error==`function`?e.error:function(){},Q.using_video=!0,Q.using_audio=!0,Q.mirrorlocalvideo=!0,Q.remoteaudioid=``,Q.videoprofile=`hires`,Q.videoDeviceId=null,Q.audioDeviceId=null,Q.audioOutputDeviceId=null,Q.myStream=null,Q.onlocalstream=function(){},e.usingvideo!==null&&e.usingvideo!==void 0&&(Q.using_video=e.usingvideo),e.usingaudio!==null&&e.usingaudio!==void 0&&(Q.using_audio=e.usingaudio),e.videodeviceid!==null&&e.videodeviceid!==void 0&&(Q.videoDeviceId=e.videodeviceid),e.audiodeviceid!==null&&e.audiodeviceid!==void 0&&(Q.audioDeviceId=e.audiodeviceid),e.audiooutputdeviceid!==null&&e.audiooutputdeviceid!==void 0&&(Q.audioOutputDeviceId=e.audiooutputdeviceid),e.mirrorlocalvideo!==null&&e.mirrorlocalvideo!==void 0&&(Q.mirrorlocalvideo=e.mirrorlocalvideo),e.remoteaudioid!==null&&e.remoteaudioid!==void 0&&(Q.remoteaudioid=e.remoteaudioid),e.videoprofile!==null&&e.videoprofile!==void 0&&(Q.videoprofile=e.videoprofile),Q.onlocalstream=typeof e.onlocalstream==`function`?e.onlocalstream:function(){},e.localvideoviewid!=`dt_videolocal`&&$(`#`+e.localvideoviewid).append(`<div style="width: 100%;height: 100%;" id="dt_videolocal"></div>`),$(`#dt_videolocal`).empty(),$(`#dt_myvideo`).length===0&&(Q.mirrorlocalvideo?$(`#dt_videolocal`).append(`<video style="display: block; margin: auto; -webkit-transform: scaleX(-1); transform: scaleX(-1);" id="dt_myvideo" width="100%" height="100%" playsinline autoplay muted="muted"/>`):$(`#dt_videolocal`).append(`<video style="display: block; margin: auto;" id="dt_myvideo" width="100%" height="100%" playsinline autoplay muted="muted"/>`)),Ft(Q.using_video,Q.using_audio,e)},this.BRTC_DeviceTest_Stop=function(){It(),$(`#dt_videolocal`).remove()},this.BRTC_DeviceTest_MuteCamera=function(e){Ft(!e,Q.using_audio)},this.BRTC_DeviceTest_MuteMicphone=function(e){Ft(Q.using_video,!e)},this.BRTC_DeviceTest_SetAudioOutputDevice=function(e){Q.audioOutputDeviceId=e;var t=$(`#`+Q.remoteaudioid).get(0);t!=null&&t.setSinkId!==void 0&&t.setSinkId(e)},this.BRTC_DeviceTest_ReplaceAudio=function(e){e!==`default`&&e!==``&&e!==void 0||(e=null),Q.audioDeviceId!==e&&(Q.audioDeviceId=e,console.log(`BRTC_DeviceTest_ReplaceAudio audioDeviceId: `+Q.audioDeviceId),Q.myStream!==null&&Ft(Q.using_video,!0))},this.BRTC_DeviceTest_ReplaceVideo=function(e){e!==`default`&&e!==``&&e!==void 0||(e=null),Q.videoDeviceId!==e&&(Q.videoDeviceId=e,console.log(`BRTC_DeviceTest_ReplaceVideo videoDeviceId: `+Q.videoDeviceId),Q.myStream!==null&&(It(),Ft(!0,Q.using_audio)))},this.BRTC_SetDebugLevel=function(e){_e=e},this.BRTC_Version=function(){return`BRTC.Web.SDK V1.2.22`}}var c=new s;function l(e,t){e.success=typeof e.success==`function`?e.success:function(){},e.error=typeof e.error==`function`?e.error:function(){};let n=[];navigator.mediaDevices.enumerateDevices().then((function(r){r.forEach((function(e){(e.kind===t||t===`all`)&&n.push(e)})),e.success(n)})).catch((function(t){e.error(t)}))}c.setThisDomID(``),window.BRTC_Start=function(e){c===null&&(c=new s),c.BRTC_Start(e)},window.BRTC_Stop=function(){c?.BRTC_Stop()},window.BRTC_SendData=function(e,t){c?.BRTC_SendData(e,t)},window.BRTC_StopVideo=function(){c?.BRTC_StopVideo()},window.BRTC_GetStatsData=function(){if(c!=null)return c.BRTC_GetStatsData()},window.BRTC_ReplaceVideo=function(e){c?.BRTC_ReplaceVideo(e)},window.BRTC_StopAudio=function(){c?.BRTC_StopAudio()},window.BRTC_ReplaceAudio=function(e){c?.BRTC_ReplaceAudio(e)},window.BRTC_SetAudioOutputDevice=function(e){c?.BRTC_SetAudioOutputDevice(e)},window.BRTC_ReplaceStream=function(e){c?.BRTC_ReplaceStream(e)},window.BRTC_GetVideoDevices=function(e){l(e,`videoinput`)},window.BRTC_GetAudioInputDevices=function(e){l(e,`audioinput`)},window.BRTC_GetAudioOutputDevices=function(e){l(e,`audiooutput`)},window.BRTC_GetAllDevices=function(e){l(e,`all`)},window.BRTC_SetDevicesChangeListener=function(e){e=typeof e==`function`?e:function(){},navigator.mediaDevices.ondevicechange=function(t){e(t)}},window.BRTC_GetUserList=function(e){c?.BRTC_GetUserList(e)},window.BRTC_SubscribeStreaming=function(e,t){c?.BRTC_SubscribeStreaming(e,t)},window.BRTC_ResubscribeStreaming=function(e){c?.BRTC_ResubscribeStreaming(e)},window.BRTC_StopSubscribeStreaming=function(e){if(c!=null)return c.BRTC_StopSubscribeStreaming(e)},window.BRTC_StartPublish=function(){c?.BRTC_StartPublish()},window.BRTC_StopPublish=function(e){if(c!=null)return c.BRTC_StopPublish(e)},window.BRTC_MuteMicphone=function(e){c?.BRTC_MuteMicphone(e)},window.BRTC_MuteCamera=function(e){c?.BRTC_MuteCamera(e)},window.BRTC_MuteCamera_legcy=function(e){c?.BRTC_MuteCamera_legcy(e)},window.BRTC_MuteRemoteVideo=function(e,t,n){c?.BRTC_MuteRemoteVideo(e,t,n)},window.BRTC_MuteRemoteAudio=function(e,t){c?.BRTC_MuteRemoteAudio(e,t)},window.BRTC_SwitchScreen=function(e){c?.BRTC_SwitchScreen(e)},window.BRTC_GetRemoteAudioLevels=function(){if(c!=null)return c.BRTC_GetRemoteAudioLevels()},window.BRTC_GetRemoteUsers=function(){if(c!=null)return c.BRTC_GetRemoteUsers()},window.BRTC_SendMessageToUser=function(e,t){c?.BRTC_SendMessageToUser(e,t)},window.BRTC_SetUserAttribute=function(e){c?.BRTC_SetUserAttribute(e)},window.BRTC_GetUserAttribute=function(e){if(c!=null)return c.BRTC_GetUserAttribute(e)},window.BRTC_GetUserIP=function(e){if(c!=null)return c.BRTC_GetUserIP(e)},window.BRTC_GetRemoteVideoInfo=function(e){if(c!=null)return c.BRTC_GetRemoteVideoInfo(e)},window.BRTC_KickoutUser=function(e){c?.BRTC_KickoutUser(e)},window.BRTC_DisbandRoom=function(){c?.BRTC_DisbandRoom()},window.BRTC_ShutUpUser=function(e,t){c?.BRTC_ShutUpUser(e,t)},window.BRTC_StartLiveServerStreaming=function(e,t,n,r){c?.BRTC_StartLiveServerStreaming(e,t,n,r)},window.BRTC_StartLiveServerStreamingEx=function(e,t,n){c?.BRTC_StartLiveServerStreamingEx(e,t,n)},window.BRTC_StopLiveServerStreaming=function(e){if(c!=null)return c.BRTC_StopLiveServerStreaming(e)},window.BRTC_StartRoomMediaRelay=function(e,t,n){if(c!=null)return c.BRTC_StartRoomMediaRelay(e,t,n)},window.BRTC_StopRoomMediaRelay=function(e,t){if(c!=null)return c.BRTC_StopRoomMediaRelay(e,t)},window.BRTC_StopRoomMediaRelayAll=function(){if(c!=null)return c.BRTC_StopRoomMediaRelayAll()},window.BRTC_StartRecording=function(e,t,n,r){if(c!=null)return c.BRTC_StartRecording(e,t,n,r)},window.BRTC_StopRecording=function(e){if(c!=null)return c.BRTC_StopRecording(e)},window.BRTC_GetMessageDelay=function(e,t){if(c!=null)return c.BRTC_GetMessageDelay(e,t)},window.BRTC_Render_TryLockDevice=function(){if(c!=null)return c.BRTC_Render_TryLockDevice()},window.BRTC_Render_UnlockDevice=function(){if(c!=null)return c.BRTC_Render_UnlockDevice()},window.BRTC_Render_JoinDeviceQueue=function(){if(c!=null)return c.BRTC_Render_JoinDeviceQueue()},window.BRTC_Render_LeaveDeviceQueue=function(){if(c!=null)return c.BRTC_Render_LeaveDeviceQueue()},window.BRTC_Render_StartApp=function(e){if(c!=null)return c.BRTC_Render_StartApp(e)},window.BRTC_Render_StopApp=function(){if(c!=null)return c.BRTC_Render_StopApp()},window.BRTC_SetParamSettings=function(e){c?.BRTC_SetParamSettings(e)},window.BRTC_SetDebugLevel=function(e){c?.BRTC_SetDebugLevel(e)},window.BRTC_AquireDevicePermission=function(e){e.success=typeof e.success==`function`?e.success:function(){},e.error=typeof e.error==`function`?e.error:function(){},navigator.mediaDevices.getUserMedia({video:!0,audio:!0}
309).then((function(t){e.success(),t.getAudioTracks().forEach((function(e){e.stop()})),t.getVideoTracks().forEach((function(e){e.stop()}))})).catch((function(t){e.error(t)}))},window.BRTC_DeviceTest_Start=function(e){c?.BRTC_DeviceTest_Start(e)},window.BRTC_DeviceTest_Stop=function(){c?.BRTC_DeviceTest_Stop()},window.BRTC_DeviceTest_MuteCamera=function(e){c?.BRTC_DeviceTest_MuteCamera(e)},window.BRTC_DeviceTest_MuteMicphone=function(e){c?.BRTC_DeviceTest_MuteMicphone(e)},window.BRTC_DeviceTest_SetAudioOutputDevice=function(e){c?.BRTC_DeviceTest_SetAudioOutputDevice(e)},window.BRTC_DeviceTest_ReplaceAudio=function(e){c?.BRTC_DeviceTest_ReplaceAudio(e)},window.BRTC_DeviceTest_ReplaceVideo=function(e){c?.BRTC_DeviceTest_ReplaceVideo(e)},window.BRTC_Version=function(){return`BRTC.Web.SDK V1.2.22`},window.baidurtc={},window.baidurtc.BaiduRtcRoomClient=s}])}))();var Rn={onLocalStream:()=>{},onLocalVideoPublished:()=>{},onRemoteVideoComing:()=>{},onRemoteVideoOn:()=>{},onRemoteVideoOff:()=>{},onRemoteVideoLoading:()=>{},onSuccess:()=>{},onError:()=>{}},zn=class{client;#e;#t;#n;constructor(e){let{roomName:t,token:n,userId:r,appId:i,server:a,rtcConfig:o,callback:s}=e;if(this.#e={server:a,token:n,roomName:t,userId:r,appId:i},this.#n={...Rn,...s},this.#t=o||{},!(t&&n&&r&&i&&a))return this.#n.onError?.(`RtcConnection is required, please check roomName, token, userId, appId, server`),void console.error(`RtcConnection is required, please check roomName, token, userId, appId, server`);this.init()}init(){let{BaiduRtcRoomClient:e}=window.baidurtc,t=new e;this.client=t,t.BRTC_Start({server:this.#e.server,appid:this.#e.appId,token:this.#e.token,roomname:this.#e.roomName,userid:this.#e.userId,displayname:`starling-brtc`,remotevideoviewid:`starlingRtcContainer`,showvideobps:!1,usingvideo:!1,usingaudio:!1,aspublisher:!1,usingdatachannel:!1,autoplaymuted:!1,autosubscribe:!1,autopublish:!1,usingremotemediastate:!0,...this.#t||{},remotedata:()=>{},success:this.#n.onSuccess,error:this.#n.onError,remotevideocoming:this.#n.onRemoteVideoComing,remotevideoloading:this.#n.onRemoteVideoLoading,remotevideoon:this.#n.onRemoteVideoOn,remotevideooff:this.#n.onRemoteVideoOff,onlocalstream:this.#n.onLocalStream,localvideopublished_ok:this.#n.onLocalVideoPublished,remotevideoconnected_state:this.#n.onRemoteVideoConnected,remotemediastating:this.#n.onRemoteMediaState,localvideoconnected_state:this.#n.onLocalVideoConnected})}destroy(){this.client?.BRTC_Stop()}subscribeStreaming(e,t){this.client?.BRTC_SubscribeStreaming(e,t)}stopSubscribeStreaming(e){this.client?.BRTC_StopSubscribeStreaming(e)}muteMicphone(e){this.client?.BRTC_MuteMicphone(e)}getRemoteVideoInfo(e){return this.client?.BRTC_GetRemoteVideoInfo(e)}getClient(){return this.client}},Bn=function(e){return function(t,n){return e.set(t,n),n}},Vn=2**53-1,Hn=536870912,Un=1073741824,Wn=function(e,t){return function(n){var r=t.get(n),i=r===void 0?n.size:r<Un?r+1:0;if(!n.has(i))return e(n,i);if(n.size<Hn){for(;n.has(i);)i=Math.floor(Math.random()*Un);return e(n,i)}if(n.size>Vn)throw Error(`Congratulations, you created a collection of unique numbers which uses all available integers!`);for(;n.has(i);)i=Math.floor(Math.random()*Vn);return e(n,i)}},Gn=new WeakMap,Kn=Wn(Bn(Gn),Gn),qn=function(e){return e.method!==void 0&&e.method===`call`},Jn=function(e){return e.error===null&&typeof e.id==`number`},Yn=function(e){var t=new Map([[0,function(){}]]),n=new Map([[0,function(){}]]),r=new Map,i=new Worker(e);return i.addEventListener(`message`,(function(e){var i=e.data;if(qn(i)){var a=i.params,o=a.timerId,s=a.timerType;if(s===`interval`){var c=t.get(o);if(typeof c==`number`){var l=r.get(c);if(l===void 0||l.timerId!==o||l.timerType!==s)throw Error(`The timer is in an undefined state.`)}else{if(c===void 0)throw Error(`The timer is in an undefined state.`);c()}}else if(s===`timeout`){var u=n.get(o);if(typeof u==`number`){var d=r.get(u);if(d===void 0||d.timerId!==o||d.timerType!==s)throw Error(`The timer is in an undefined state.`)}else{if(u===void 0)throw Error(`The timer is in an undefined state.`);u(),n.delete(o)}}}else{if(!Jn(i)){var f=i.error.message;throw Error(f)}var p=i.id,m=r.get(p);if(m===void 0)throw Error(`The timer is in an undefined state.`);var h=m.timerId,g=m.timerType;r.delete(p),g===`interval`?t.delete(h):n.delete(h)}})),{clearInterval:function(e){var n=Kn(r);r.set(n,{timerId:e,timerType:`interval`}),t.set(e,n),i.postMessage({id:n,method:`clear`,params:{timerId:e,timerType:`interval`}})},clearTimeout:function(e){var t=Kn(r);r.set(t,{timerId:e,timerType:`timeout`}),n.set(e,t),i.postMessage({id:t,method:`clear`,params:{timerId:e,timerType:`timeout`}})},setInterval:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=Kn(t);return t.set(r,(function(){e(),typeof t.get(r)==`function`&&i.postMessage({id:null,method:`set`,params:{delay:n,now:performance.now(),timerId:r,timerType:`interval`}})})),i.postMessage({id:null,method:`set`,params:{delay:n,now:performance.now(),timerId:r,timerType:`interval`}}),r},setTimeout:function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=Kn(n);return n.set(r,e),i.postMessage({id:null,method:`set`,params:{delay:t,now:performance.now(),timerId:r,timerType:`timeout`}}),r}}},Xn=function(e,t){var n=null;return function(){if(n!==null)return n;var r=new Blob([t],{type:`application/javascript; charset=utf-8`}),i=URL.createObjectURL(r);return n=e(i),setTimeout((function(){return URL.revokeObjectURL(i)})),n}},Zn=`(()=>{"use strict";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:"call",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener("message",(i=>{let{data:s}=i;try{if("clear"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;
309if("interval"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id "'.concat(t,'".'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if("timeout"!==i)throw new Error('The given type "'.concat(i,'" is not supported'));(e=>{const r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id "'.concat(e,'".'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if("set"!==s.method)throw new Error('The given method "'.concat(s.method,'" is not supported'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if("interval"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,"interval"))})(i,a,n);else{if("timeout"!==d)throw new Error('The given type "'.concat(d,'" is not supported'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,"timeout"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();`,Qn=s({clearInterval:()=>er,clearTimeout:()=>tr,setInterval:()=>nr,setTimeout:()=>rr}),$n=Xn(Yn,Zn),er=function(e){return $n().clearInterval(e)},tr=function(e){return $n().clearTimeout(e)},nr=function(){var e;return(e=$n()).setInterval.apply(e,arguments)},rr=function(){var e;return(e=$n()).setTimeout.apply(e,arguments)},ir=(e,t)=>
309{let n=-1,r=null;return typeof Worker<`u`?r=Qn:(r=window,console.warn(`浏览器不支持 Web Workers,使用 原生 timer 代替`)),t>=0&&(n=r.setTimeout(e,t)),()=>{n!==-1&&r.clearTimeout(n),n=-1}},ar=class{running=!1;logger=!0;timeoutDuration;catchMethod;promise=null;reject=null;stopTimeout=null;constructor(e,t){this.timeoutDuration=e,this.catchMethod=t}start(){this.running?this.logger&&console.warn(`TimeoutController已启动`):(this.logger&&console.info(`TimeoutController开始计时:`,this.timeoutDuration),this.running=!0,this.promise=new Promise(((e,t)=>{this.reject=t,this.stopTimeout?.(),this.stopTimeout=ir((()=>{t(Error(`TimeoutController超时错误`))}),this.timeoutDuration)})),this.catchMethod&&this.promise?.catch(this.catchMethod))}clear(){this.running?(this.logger&&console.info(`TimeoutController停止计时`),this.running=!1,this.stopTimeout?.(),this.stopTimeout=null,this.reject&&=null):this.logger&&console.warn(`TimeoutController未启动`)}},or=l(ne()),sr=function(){function e(t){var n=this;g(this,e),y(this,`client`,void 0),y(this,`isRtcVideoOn`,!1),y(this,`rtcConnection`,void 0),y(this,`rtcConfig`,void 0),y(this,`bizC
309onfig`,void 0),y(this,`rtcCallback`,void 0),y(this,`restarting`,!1),y(this,`timeoutEvent`,void 0),y(this,`reopenTimer`,void 0),y(this,`restartCount`,0),y(this,`closeLog`,!0),y(this,`haveVideoOn`,!1),y(this,`rtcStateCallback`,null),y(this,`openRtc`,(function(e){if(n.restarting)!n.closeLog&&console.warn(`rtc restarting`);else if(e&&(n.rtcConnection=e),n.rtcConnection&&!(0,vn.default)(n.rtcConnection)){var t=n.rtcConnection,r=t.server,i=t.appId,a=t.token,o=t.roomName,s=t.userId,c=n.rtcCallback||{},l=c.onRemotedata,u=c.onLocalStream,d=c.onRemoteVideoComing,f=c.onLocalVideoPublished,p=c.onLocalVideoPublishing,m=c.onRemoteVideoOn,h=c.onRemoteVideoOff,g=c.onRemoteVideoLoading,_=c.onSuccess,v=c.onError,y=c.onLocalVideoConnected,b=c.onRemoteVideoConnected,x=c.onRemoteMediaState,S=c.onPlayingError,C=c.onDigitalHumanCallback;n.timeoutEvent.start(),n.rtcStateCallback=function(e){var t=e.body,n=e.action;C&&C({status:xn.DH_LIB_FULL_STATUS,content:{type:`rtcState`,action:n,body:t}})},n.client=new zn({roomName:o,token:a,userId:s,appId:i,server:r,rtcConfig:n.rtcConfig,callback:{onRemoteVideoConnected:function(t,r){if(!r&&!n.haveVideoOn)var i=setTimeout((function(){n.restartCount<3?(n.restartCount=++n.restartCount,n.restartRtc&&n.restartRtc(e)):(n.restartCount=0,n.closeRtc()),clearTimeout(i)}),500);if(r){var a=document.getElementById(`remotevideo500`);a.muted=!1;var o=a.play();o!==void 0&&o.catch((function(){a.muted=!0,a.play().catch((function(e){!n.closeLog&&console.info(`videoElement play error`,e),S&&S(a),C&&C({status:xn.DH_LIB_ERROR,content:{type:Sn.LOCAL_VIDEO_ERROR}})})),C&&C({status:xn.DH_LIB_STATUS,content:{type:Sn.LOCAL_VIDEO_MUTED}})}))}!n.closeLog&&console.info(`remoteVideoConnected`,t,r,n.restartCount),n.rtcStateCallback&&n.rtcStateCallback({action:`remoteVideoConnected`,body:{id:t,connected:r,restartCount:n.restartCount}}),(0,or.default)(b)&&b(t,r)},onRemoteVideoOn:function(e){n.haveVideoOn=!0,!n.closeLog&&console.info(`remotevideoon by id: `,e),n.timeoutEvent.clear();var t=document.querySelector(`#starlingRtcContainer`),r=t&&t.lastChild;r&&(r.style.display=`none`),n.rtcStateCallback&&n.rtcStateCallback({action:`remotevideoon`,body:e}),C&&C({status:xn.DH_LIB_OPEN}),(0,or.default)(m)&&m(e)},onRemoteMediaState:function(e,t,r){!n.closeLog&&console.info(`remoteMediaState`,e,t,r),n.rtcStateCallback&&n.rtcStateCallback({action:`remoteMediaState`,body:{id:e,medium:t,connected:r}}),(0,or.default)(x)&&x(e,t,r)},onLocalVideoConnected:function(e){!n.closeLog&&console.info(`localVideoConnected`,e),n.rtcStateCallback&&n.rtcStateCallback({action:`localVideoConnected`,body:{connected:e}}),(0,or.default)(y)&&y(e)},onRemotedata:function(e){if(n.rtcConfig&&n.rtcConfig.usingdatachannel){var t=Et.parse(e);!n.closeLog&&console.info(`RTC - receive:`,t),(0,or.default)(l)&&l(t)}},onLocalStream:function(e,t){!n.closeLog&&console.info(`rtc - onlocalstream by name: `+t),n.rtcStateCallback&&n.rtcStateCallback({action:`onlocalstream`,body:{stream:e,name:t}}),(0,or.default)(u)&&u(e,t)},onLocalVideoPublished:function(){!n.closeLog&&console.info(`LocalVideoPublished 本地视频发布成功`),n.rtcStateCallback&&n.rtcStateCallback({action:`localvideopublished_ok`,body:!0}),(0,or.default)(f)&&f()},onLocalVideoPublishing:function(){!n.closeLog&&console.info(`LocalVideoPublishing 本地视频发布成功`),n.rtcStateCallback&&n.rtcStateCallback({action:`localvideopublishing`,body:!0}),(0,or.default)(p)&&p()},onRemoteVideoComing:function(e){!n.closeLog&&console.info(`remotevideocoming`,e),n.rtcStateCallback&&n.rtcStateCallback({action:`remotevideocoming`,body:e}),(0,or.default)(d)&&d(e)},onRemoteVideoLoading:function(e){!n.closeLog&&console.info(`remotevideoloading by id: `,e),n.rtcStateCallback&&n.rtcStateCallback({action:`remotevideoloading`,body:e}),(0,or.default)(g)&&g(e)},onRemoteVideoOff:function(e){var t=document.getElementById(`remotevideo500`);t&&t.pause(),!n.closeLog&&console.info(`remotevideooff: `,e),n.isRtcVideoOn=!1,n.rtcStateCallback&&n.rtcStateCallback({action:`remotevideooff`,body:e}),C&&C({status:xn.DH_LIB_CLOSE}
309),(0,or.default)(h)&&h(e),n.timeoutEvent.start()},onSuccess:function(){!n.closeLog&&console.info(`rtc - success`),n.rtcStateCallback&&n.rtcStateCallback({action:`success`,body:!0}),(0,or.default)(_)&&_()},onError:function(t){n.isRtcVideoOn=!1,!n.closeLog&&console.error(`rtc - error:`,t),n.rtcStateCallback&&n.rtcStateCallback({action:`error`,body:t}),C&&C({status:xn.DH_LIB_ERROR,content:{type:Sn.RTC_ERROR}}),(0,or.default)(v)&&v(t),(t.includes(`Lost connection to the server`)||t.includes(`Is the server down`))&&n.restartRtc&&n.restartRtc(e)}}})}})),y(this,`closeRtc`,(function(){n.timeoutEvent.clear(),clearTimeout(n.reopenTimer),n.client&&n.client.destroy(),n.restarting=!1})),y(this,`restartRtc`,(function(e){!n.restarting&&n.bizConfig&&n.bizConfig.autoReConnect&&(n.rtcStateCallback&&n.rtcStateCallback({action:`restartRtc`,body:e}),n.restarting=!0,n.closeRtc(),n.reopenTimer=setTimeout((function(){!n.closeLog&&console.error(`拉流失败,开始重启`),n.restarting=!1,n.openRtc(e)}),2e3))}));var r=t.rtcConnection,i=t.rtcConfig,a=t.closeLog,o=a===void 0||a,s=t.rtcCallback;this.rtcConnection=r,this.rtcConfig=i,this.rtcCallback=s,this.closeLog=o,this.timeoutEvent=new ar(6e4,(function(){if(!n.rtcConnection)return!n.closeLog&&console.warn(`remotevideoon事件超时, rtcConnectionRef is null`);n.timeoutEvent.clear(),n.restartRtc&&n.restartRtc(n.rtcConnection)}))}return v(e,[{key:`muteMicphone`,value:function(e){this.client&&this.client.muteMicphone&&this.client.muteMicphone(e)}}]),e}(),cr=`starling-cutout-canvas`,lr=`cloud-brtc-player-wrapper`,ur=`remotevideo500`;function dr(e){var t=e.autoChromaKey,n=t!==void 0&&t,r=e.autoplay,i=r===void 0||r;if(document.getElementById(`remotevideo500`))return console.error(`DOM with id "${ur}" already exists.`),null;var a=document.createElement(`div`);a.className=lr,a.id=lr,a.style.position=`relative`;var o=document.createElement(`video`);if(o.id=`remotevideo500`,o.width=0,o.height=0,o.setAttribute(`width`,`100%`),o.setAttribute(`height`,`100%`),o.setAttribute(`data-playing`,`true`),o.setAttribute(`playsinline`,``),i&&o.setAttribute(`autoplay`,``),a.appendChild(o),n){var s=document.createElement(`canvas`);s.id=cr,Object.assign(s.style,{position:`absolute`,top:`0`,left:`0`,height:`100%`,width:`100%`,zIndex:`1`,display:n?`block`:`none`}),o.style.visibility=`hidden`,a.appendChild(s)}return{playerWrapper:a,video:o}}function fr(){var e=document.getElementById(lr);e&&e.parentNode&&e.parentNode.removeChild(e)}function pr(e){var t=document.getElementById(ur);return t&&(t.muted=e),t}function mr(e){var t=document.getElementById(ur);try{if(t)return e?t.play():t.pause()}catch(e){console.info(e)}}function hr(){var e=navigator.userAgent||navigator.vendor;return/huawei/i.test(e)||/honor/i.test(e)}function gr(){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`
310        [id^="videoremote1-"] {
311            display: none !important;
312        }
313        
314        video#remotevideo500 {
315            width: auto !important;
316            height: auto !important;
317            max-width: 100% !important;
318            max-height: 100% !important;
319            width: 100% !important;
320            height: 100% !important;
321            object-fit: cover;
322        }
323
324        .cloud-brtc-player-wrapper {
325            width: inherit !important;
326            background-size: cover;
327            height: inherit;
328            display: flex;
329            justify-content: center;
330        }
331
332        #starling-cutout-canvas {
333            object-fit: cover;
334        }
335    `)),document.head.appendChild(e)}var _r=l(o(((e,t)=>{var n=D(),r=k(),i=`[object Number]`;function a(e){return typeof e==`number`||r(e)&&n(e)==i}t.exports=a}))());function vr(e){return vr=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},vr(e)}function yr(e){return br(e)||xr(e)||Sr(e)||wr()}function br(e){if(Array.isArray(e))return Cr(e)}function xr(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function Sr(e,t){if(e){if(typeof e==`string`)return Cr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Cr(e,t):void 0}}function Cr(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function wr(){throw TypeError(`Invalid attempt to spread non-iterable instance.
336In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Tr=function(e,t,n){return Promise.race([new Promise((function(t){if(e())var r=setInterval((function(){e()||(clearInterval(r),t())}),n||100);else t()}))].concat(yr(t?[new Promise((function(e,n){setTimeout((function(){n(Error(`overtime`))}),t)}))]:[])))},Er={exports:{}},Dr=Er,Or=window,kr=function(e){var t,n,r,i,a,o,s,c,l=e.document,u=e.console,d={},f={},p={},m={},h=[],g={},_={},v={canvas:[],image:[],video:[]},y={},b=e.WeakMap&&new WeakMap,x=0,S=function(){},C={transparent:[0,0,0,0],black:[0,0,0,1],red:[1,0,0,1],green:[0,128/255,0,1],blue:[0,0,1,1],white:[1,1,1,1],silver:[192/255,192/255,192/255,1],gray:[128/255,128/255,128/255,1],maroon:[128/255,0,0,1],purple:[128/255,0,128/255,1],fuchsia:[1,0,1,1],lime:[0,1,0,1],olive:[128/255,128/255,0,1],yellow:[1,1,0,1],navy:[0,0,128/255,1],teal:[0,128/255,128/255,1],aqua:[0,1,1,1],orange:[1,165/255,0,1]},w=/^(rgb|hsl)a?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*(\d+(\.\d*)?)\s*)?\)/i,T=/^#(([0-9a-fA-F]{3,8}))/,E=[`x`,`y`,`z`,`w`],D=[`r`,`g`,`b`,`a`],O={srcRGB:770,dstRGB:771,srcAlpha:1,dstAlpha:771},k=[`MAX_COMBINED_TEXTURE_IMAGE_UNITS`,`MAX_FRAGMENT_UNIFORM_VECTORS`,`MAX_TEXTURE_IMAGE_UNITS`,`MAX_VARYING_VECTORS`,`MAX_VERTEX_ATTRIBS`,`MAX_VERTEX_TEXTURE_IMAGE_UNITS`,`MAX_VERTEX_UNIFORM_VECTORS`],A=/^[\t ]*#define[\t ]+SHADER_NAME\s+([^$\n\r]+)/i,j={frustum:function(e,t,n,r,i,a,o){o||=j.create();var s=t-e,c=r-n,l=a-i;return o[0]=2*i/s,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=2*i/c,o[6]=0,o[7]=0,o[8]=(t+e)/s,o[9]=(r+n)/c,o[10]=-(a+i)/l,o[11]=-1,o[12]=0,o[13]=0,o[14]=-a*i*2/l,o[15]=0,o},perspective:function(e,t,n,r,i){var a=n*Math.tan(e*Math.PI/360),o=a*t;return j.frustum(-o,o,-a,a,n,r,i)},multiply:function(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=t[4],c=t[5],l=t[6],u=t[7],d=t[8],f=t[9],p=t[10],m=t[11],h=t[12],g=t[13],_=t[14],v=t[15],y=n[0],b=n[1],x=n[2],S=n[3];return e[0]=y*r+b*s+x*d+S*h,e[1]=y*i+b*c+x*f+S*g,e[2]=y*a+b*l+x*p+S*_,e[3]=y*o+b*u+x*m+S*v,y=n[4],b=n[5],x=n[6],S=n[7],e[4]=y*r+b*s+x*d+S*h,e[5]=y*i+b*c+x*f+S*g,e[6]=y*a+b*l+x*p+S*_,e[7]=y*o+b*u+x*m+S*v,y=n[8],b=n[9],x=n[10],S=n[11],e[8]=y*r+b*s+x*d+S*h,e[9]=y*i+b*c+x*f+S*g,e[10]=y*a+b*l+x*p+S*_,e[11]=y*o+b*u+x*m+S*v,y=n[12],b=n[13],x=n[14],S=n[15],e[12]=y*r+b*s+x*d+S*h,e[13]=y*i+b*c+x*f+S*g,e[14]=y*a+b*l+x*p+S*_,e[15]=y*o+b*u+x*m+S*v,e},identity:function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10
336]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}},M=(c=0,e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(t){var n,r,i;function a(){t(n+r)}return n=new Date().getTime(),r=Math.max(0,16-(n-c)),i=e.setTimeout(a,r),c=n+r,i}),N=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.mozCancelAnimationFrame||e.oCancelAnimationFrame||e.msCancelAnimationFrame||function(t){e.cancelTimeout(t)},P=[`alias`,`destroy`,`effect`,`id`,`initialize`,`inputs`,`isDestroyed`,`isReady`,`matte`,`off`,`on`,`readPixels`,`render`,`title`,`update`],F=[`alias`,`destroy`,`id`,`inputs`,`isDestroyed`,`isReady`,`off`,`on`,`source`,`title`,`update`],I=[`aliases`,`defaults`,`destroy`,`effect`,`go`,`id`,`incompatible`,`isDestroyed`,`isEffect`,`isNode`,`isSource`,`isTarget`,`isTransform`,`removeAlias`,`render`,`source`,`stop`,`target`,`transform`];function L(e,t){var n,r;if(typeof e==`string`)n=l.querySelector(e);else if(!e)return!1;return e.tagName&&(n=e),n?(r=n.tagName.toLowerCase(),t&&t.indexOf(r)<0?e:n):e}function R(e,t){var n,r;for(n in e.prototype&&t.prototype&&e.prototype!==t.prototype&&R(e.prototype,t.prototype),t)t.hasOwnProperty(n)&&((r=Object.getOwnPropertyDescriptor(t,n)).get||r.set?Object.defineProperty(e,n,{configurable:!0,enumerable:!0,get:r.get,set:r.set}):e[n]=t[n]);return e}function ee(e){var t;if(!u)return S;if(typeof u[e]==`function`)t=u[e];else{if(typeof u.log!=`function`)return S;t=u.log}return t.bind?t.bind(u):function(){t.apply(u,arguments)}}function z(t,n){if(n||=`HTMLElement`,!e[n])return u.error(`window[proto] is undefined, proto:`,n),!1;if(t instanceof e[n])return!0;if(!t||vr(t)!==`object`)return!1;for(;t;)if((t=Object.getPrototypeOf(t))&&t.constructor.name===n)return!0;return!1}function B(e,t,n,r,i){function a(e,t,n){return(n%=1)<0&&(n+=1),n<1/6?e+(t-e)*n*6:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var o,s;return o=2*n-(s=n<.5?n*(t+1):n+t-n*t),i||=[],i[0]=a(o,s,e+1/3),i[1]=a(o,s,e),i[2]=a(o,s,e-1/3),i[3]=r,i}function te(e){var t,n,r,i=`#`,a=e[3]<1?4:3;for(t=0;t<a;t++)r=(n=Math.min(255,Math.round(255*e[t]||0))).toString(16),n<16&&(r=`0`+r),i+=r;return i}function V(e){return Array.isArray(e)||e&&e.BYTES_PER_ELEMENT&&`length`in e}function ne(t){function n(){h.length&&h.shift()()}if(typeof t!=`function`)throw Error(`setTimeoutZero argument is not a function`);h.push(t),e.location.protocol===`file:`?setTimeout(n,0):e.postMessage(`seriously-timeout-message`,e.location)}function H(t,n){var r;try{r=e.WebGLDebugUtils&&n&&n.debugContext?e.WebGLDebugUtils.makeDebugContext(t.getContext(`webgl`,n)):t.getContext(`webgl`,n)}catch{}if(!r)try{r=t.getContext(`experimental-webgl`,n)}catch{}return r}function re(){var n;return t&&t.getError()===t.CONTEXT_LOST_WEBGL&&(t=void 0),t||!e.WebGLRenderingContext||r||(n=l.createElement(`canvas`),(t=H(n))?n.addEventListener(`webglcontextlost`,(function e(r){r.preventDefault(),t&&t.canvas===this&&(t=void 0,n.removeEventListener(`webglcontextlost`,e,!1))}),!1):G.logger.warn(`Unable to access WebGL.`)),t}function U(t){var n,r,i,a;if(!(n=L(t,[`img`,`canvas`,`video`])))return!1;if(!(r=l.createElement(`canvas`)))return G.logger.warn(`Browser does not support canvas or Seriously.js`),!1;if(n.naturalWidth===0&&n.tagName===`IMG`)return G.logger.warn(`Image not loaded`),!1;if(n.readyState===0&&n.videoWidth===0&&n.tagName===`VIDEO`)return G.logger.warn(`Video not loaded`),!1;if(i=re()){(a=i.createTexture())||G.logger.error(`Test WebGL context has been lost`),i.bindTexture(i.TEXTURE_2D,a);try{i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,n)}catch(t){return t.code===e.DOMException.SECURITY_ERR?G.logger.log(`Unable to access cross-domain image`):G.logger.error(`Error storing image to texture: `+t.message),i.deleteTexture(a),!1}i.deleteTexture(a)}else{i=r.getContext(`2d`);try{i.drawImage(n,0,0),i.getImageData(0,0,1,1)}catch(t){return t.code===e.DOMException.SECURITY_ERR?G.logger.log(`Unable to access cross-domain image`):G.logger.error(`Error drawing image to canvas: `+t.message),!1}}return!0}function ie(e){var t,n,r;function i(e,r){var i,a;V(e)?(i=e[0],a=e[1]||i):i=e,typeof i==`string`?i=i.toLowerCase():typeof i==`number`?i=String(i):i||=``,n[i]=a,r||(t.firstValue=i)}function a(e){return e}
336for(r in e.inputs)if(e.inputs.hasOwnProperty(r)){if(e.reserved.indexOf(r)>=0||Object.prototype[r])throw Error(`Reserved input name: `+r);(t=e.inputs[r]).name=r,isNaN(t.min)&&(t.min=-1/0),isNaN(t.max)&&(t.max=1/0),isNaN(t.minCount)&&(t.minCount=-1/0),isNaN(t.maxCount)&&(t.maxCount=1/0),isNaN(t.step)&&(t.step=0),isNaN(t.mod)&&(t.mod=0),t.type===`enum`&&t.options&&V(t.options)&&t.options.length&&(n={},t.options.forEach(i),t.options=n),t.type===`vector`?t.dimensions<2?t.dimensions=2:t.dimensions>4||!t.dimensions||isNaN(t.dimensions)?t.dimensions=4:t.dimensions=Math.round(t.dimensions):t.dimensions=1,t.shaderDirty=!!t.shaderDirty,typeof t.validate!=`function`&&(t.validate=G.inputValidators[t.type]||a),e.defaultImageInput||t.type!==`image`||(e.defaultImageInput=r)}}function ae(e,t,n,r){var i,a,o,s,c=!0===r?r:r&&r.useFloat;c=!1,this.type=c?e.FLOAT:e.UNSIGNED_BYTE,i=e.createFramebuffer(),e.bindFramebuffer(e.FRAMEBUFFER,i),r&&r.texture?(this.texture=r.texture,e.bindTexture(e.TEXTURE_2D,this.texture),this.ownTexture=!1):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),this.ownTexture=!0);try{this.type===e.FLOAT?(o=new Float32Array(t*n*4),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,n,0,e.RGBA,e.FLOAT,o)):(e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,n,0,e.RGBA,e.UNSIGNED_BYTE,null),this.type=e.UNSIGNED_BYTE)}catch{this.type=e.UNSIGNED_BYTE,o=new Uint8Array(t*n*4),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,n,0,e.RGBA,e.UNSIGNED_BYTE,o)}if(a=e.createRenderbuffer(),e.bindRenderbuffer(e.RENDERBUFFER,a),e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_COMPONENT16,t,n),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,a),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.texture,0),(s=e.checkFramebufferStatus(e.FRAMEBUFFER))===e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT)throw Error(`Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT`);if(s===e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT)throw Error(`Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT`);if(s===e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS)throw Error(`Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS`);if(s===e.FRAMEBUFFER_UNSUPPORTED)throw Error(`Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED`);if(s!==e.FRAMEBUFFER_COMPLETE)throw Error(`Incomplete framebuffer: `+s);e.bindTexture(e.TEXTURE_2D,null),e.bindRenderbuffer(e.RENDERBUFFER,null),e.bindFramebuffer(e.FRAMEBUFFER,null),this.gl=e,this.frameBuffer=i,this.renderBuffer=a,this.width=t,this.height=n}function W(e,t,n){var r,i,a,o,s,c,l,u,d=``;function f(t,n){var r,i;if(r=n?e.createShader(e.FRAGMENT_SHADER):e.createShader(e.VERTEX_SHADER),e.shaderSource(r,t),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){for(t=t.split(/[\n\r]/),i=0;i<t.length;i++)t[i]=i+1+`:	`+t[i];throw t.unshift(`Error compiling `+(n?`fragment`:`vertex`)+` shader:`),G.logger.error(t.join(`
337`)),Error(`Shader error: `+e.getShaderInfoLog(r))}return r}function p(t,n){if(t.type===e.SAMPLER_2D)return function(r){t.glTexture=e[`TEXTURE`+r],e.uniform1i(n,r)};if(t.type===e.BOOL||t.type===e.INT)return t.size>1?function(t){e.uniform1iv(n,t)}:function(t){e.uniform1i(n,t)};if(t.type===e.FLOAT)return t.size>1?function(t){e.uniform1fv(n,t)}:function(t){e.uniform1f(n,t)};if(t.type===e.FLOAT_VEC2)return function(t){e.uniform2f(n,t[0],t[1])};if(t.type===e.FLOAT_VEC3)return function(t){e.uniform3f(n,t[0],t[1],t[2])};if(t.type===e.FLOAT_VEC4)return function(t){e.uniform4f(n,t[0],t[1],t[2],t[3])};if(t.type===e.FLOAT_MAT3)return function(t){e.uniformMatrix3fv(n,!1,t)};if(t.type===e.FLOAT_MAT4)return function(t){e.uniformMatrix4fv(n,!1,t)};throw Error(`Unknown shader uniform type: `+t.type)}function m(t){return function(){return e.getUniform(r,t)}}if(i=f(t),a=f(n,!0),r=e.createProgram(),e.attachShader(r,i),(o=e.getShaderInfoLog(i))&&(d+=`Vertex shader error: `+o+`
338`),e.attachShader(r,a),(o=e.getShaderInfoLog(a))&&(d+=`Fragment shader error: `+o+`
339`),e.linkProgram(r),!e.getProgramParameter(r,e.LINK_STATUS))throw d+=e.getProgramInfoLog(r),e.deleteProgram(r),e.deleteShader(i),e.deleteShader(a),(l=A.exec(t)||A.exec(n))&&(d=`Shader = `+l[1]+`
340`+d),k.forEach((function(t){d+=`
341`+t+`: `+e.getParameter(e[t])})),Error(`Could not initialize shader:
342`+d);for(e.useProgram(r),this.uniforms={},c=e.getProgramParameter(r,e.ACTIVE_UNIFORMS),s=0;s<c;++s)(u={info:e.getActiveUniform(r,s)}).name=u.info.name.replace(/\[0\]$/,``),u.loc=e.getUniformLocation(r,u.name),u.set=p(u.info,u.loc),u.get=m(u.loc),this.uniforms[u.name]=u,this[u.name]||(this[u.name]=u);for(this.attributes={},this.location={},c=e.getProgramParameter(r,e.ACTIVE_ATTRIBUTES),s=0;s<c;++s)(u={info:e.getActiveAttrib(r,s)}).name=u.info.name,u.location=e.getAttribLocation(r,u.name),this.attributes[u.name]=u,this.location[u.name]=u.location;this.gl=e,this.program=r,this.destroy=function(){for(var t in e&&(e.deleteProgram(r),e.deleteShader(i),e.deleteShader(a)),this)this.hasOwnProperty(t)&&delete this[t];r=null,i=null,a=null}}function G(t){if(e===this||!(this instanceof G)||this.id!==void 0)return new G(t);var n,r,a,c,u,h,y,C,w,T,E,D,k,P,F,ee=++x,B=this,V=[],re={},U=0,K=[],q=[],oe=[],J=[],se={},ce=[],Y=[],X={},Z={},le=!1,ue=!1,de=null;function fe(e,t){var n,r,i;return!!t&&(n=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,n),t.bufferData(t.ARRAY_BUFFER,e.vertices,t.STATIC_DRAW),n.size=3,r=t.createBuffer(),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,r),t.bufferData(t.ELEMENT_ARRAY_BUFFER,e.indices,t.STATIC_DRAW),i=t.createBuffer(),t.bindBuffer(t.ARRAY_BUFFER,i),t.bufferData(t.ARRAY_BUFFER,e.coords,t.STATIC_DRAW),i.size=2,{vertex:n,index:r,texCoord:i,length:e.indices.length,mode:e.mode||t.TRIANGLES})}function pe(e){var t={};return t.vertices=new Float32Array([-1,-1,0,1,-1,0,1,1,0,-1,1,0]),t.indices=new Uint16Array([0,1,2,0,2,3]),t.coords=new Float32Array([0,0,1,0,1,1,0,1]),fe(t,e)}function me(){G.logger.warn(`WebGL context lost. 5 seconds to restore context.`),de&&clearTimeout(de),de=setTimeout(ge,5e3)}function he(e){var t,i;if(!r)if(e.canvas.addEventListener(`webglcontextlost`,_e,!1),e.canvas.addEventListener(`webglcontextrestored`,ge,!1),e.isContextLost())G.logger.warn(`Unable to attach lost WebGL context. Will try again when context is restored.`);else{for(r=e,n=e.canvas,c=pe(r),u=new W(r,`#define SHADER_NAME seriously.base
343`+o,`#define SHADER_NAME seriously.base
344`+s),t=0;t<J.length;t++)(i=J[t]).gl=r,i.initialize(),i.buildShader();for(t=0;t<K.length;t++)(i=K[t]).initialize();for(t=0;t<q.length;t++)(i=q[t]).model||(i.model=c,i.shader=u)}}function ge(){var e,t,n,i;if(de&&clearTimeout(de),de=null,a&&!r){if(z(t=a.target,`WebGLFramebuffer`))return void G.logger.error(`Unable to restore target built on WebGLFramebuffer`);if(e=H(t,{alpha:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!0,stencil:!0,debugContext:a.debugContext})){if(e.isContextLost())return de?void G.logger.error(`restore WebGL Context ing, wait....`):(me(),void G.logger.error(`Unable to restore WebGL Context`));for(he(e),a.renderToTexture?a.frameBuffer=new ae(r,a.width,a.height,!1):a.frameBuffer={frameBuffer:null},n=0;n<V.length;n++)(i=V[n]).setDirty(),i.emit(`webglcontextrestored`);G.logger.log(`WebGL context restored`)}}}function _e(e){var t,i;for(e?(e.preventDefault(),me()):de&&clearTimeout(de),F&&=(N(F),0),n&&n.removeEventListener(`webglcontextlost`,_e,!1),t=0;t<J.length;t++)(i=J[t]).gl=null,i.initialized=!1,i.baseShader=null,i.model=null,i.frameBuffer=null,i.texture=null,i.shader&&i.shader.destroy&&(i.shader.destroy(),i.effect.commonShader&&delete Z[i.hook]),i.shaderDirty=!0,i.shader=null,i.effect.lostContext&&i.effect.lostContext.call(i),e&&i.emit(`webglcontextlost`);for(t=0;t<K.length;t++)(i=K[t]).texture=null,i.initialized=!1,i.allowRefresh=!1,e&&i.emit(`webglcontextlost`);for(t=0;t<oe.length;t++)(i=oe[t]).frameBuffer=null,i.texture=null,e&&i.emit(`webglcontextlost`);for(t=0;t<q.length;t++)(i=q[t]).model=!1,i.frameBuffer=null,e&&i.emit(`webglcontextlost`);u&&u.destroy&&u.destroy(),r&&(r.deleteBuffer(c.vertex),r.deleteBuffer(c.texCoord),r.deleteBuffer(c.index)),c&&(delete c.vertex,delete c.texCoord,delete c.index),c=null,u=null,r=null,n=null}function ve(e){var t,n,r=!1;if(F=0,ce.length)for(r=!0,t=0;t<ce.length;t++)ce[t].call(B,e);if(K&&K.length)for(r=!0,t=0;t<K.length;t++){var i=(n=K[t]).source&&n.source.dataset&&n.source.dataset.playing;if(typeof i==`string`&&i!==`true`)return void(F=M(ve));(n.dirty||n.checkDirty&&n.checkDirty())&&(n.dirty=!1,n.setDirty())}for(t=0;t<q.length;t++)(n=q[t]).auto&&n.dirty&&n.render();if(Y.length)for(r=!0,t=0;t<Y.length;t++)Y[t].call(B);r&&!F&&(F=M(ve))}function ye(e,t,n,i,a,o){var s,c,l,u,d,f,p,m,h,g=0,_=a&&a.gl||r;if(_){for(s in a?(u=o&&o.width||a.width||_.canvas.width,d=o&&o.height||a.height||_.canvas.height):(u=o&&o.width||_.canvas.width,d=o&&o.height||_.canvas.height),e.use(),_.viewport(0,0,u,d),_.bindFramebuffer(_.FRAMEBUFFER,i),_.enableVertexAttribArray(e.location.position),_.enableVertexAttribArray(e.location.texCoord),t.texCoord&&(_.bindBuffer(_.ARRAY_BUFFER,t.texCoord),_.vertexAttribPointer(e.location.texCoord,t.texCoord.size,_.FLOAT,!1,0,0)),_.bindBuffer(_.ARRAY_BUFFER,t.vertex),_.vertexAttribPointer(e.location.position,t.vertex.size,_.FLOAT,!1,0,0),_.bindBuffer(_.ELEMENT_ARRAY_BUFFER,t.index),o&&o.depth?r.enable(r.DEPTH_TEST):r.disable(r.DEPTH_TEST),o?o.blend===void 0||o.blend?(r.enable(r.BLEND),f=o.srcRGB===void 0?r.ONE:o.srcRGB,m=o.dstRGB||r.ZERO,p=o.srcAlpha===void 0?f:o.srcAlpha,h=o.dstAlpha===void 0?m:o.dstAlpha,r.blendFuncSeparate(f,m,p,h),r.blendEquation(o.blendEquation||r.FUNC_ADD)):r.disable(r.BLEND):(r.enable(r.BLEND),r.blendFunc(r.ONE,r.ZERO),r.blendEquation(r.FUNC_ADD)),n)n.hasOwnProperty(s)&&(c=n[s],(l=e.uniforms[s])&&(z(c,`WebGLTexture`)?(_.activeTexture(_.TEXTURE0+g),_.bindTexture(_.TEXTURE_2D,c),l.set(g),g++):c instanceof y||c instanceof C||c instanceof w?c.texture&&(_.activeTexture(_.TEXTURE0+g),_.bindTexture(_.TEXTURE_2D,c.texture),l.set(g),g++):c!=null&&l.set(c)));o&&o.clear!==void 0&&!o.clear||(_.clearColor(0,0,0,0),_.clear(_.COLOR_BUFFER_BIT|_.DEPTH_BUFFER_BIT)),_.drawElements(t.mode,t.length,_.UNSIGNED_SHORT,0),r.enable(r.DEPTH_TEST)}}function be(e,t,n){var r,i;if((typeof e!=`string`||!t&&t!==0)&&(n&&vr(n)===`object`||(n=t),t=e),typeof e==`string`&&p[e]||(e=null),t instanceof y||t instanceof C||t instanceof w)r=t;else if(t instanceof E||t instanceof D||t instanceof k){if(!(r=re[t.id]))throw Error(`Cannot connect a foreign node`)}else{for(typeof t==`string`&&isNaN(t)&&(t=L(t,[`canvas`,`img`,`video`])),i=0;i<K.length;i++)if(r=K[i],(!e||e===r.hook)&&r.compare&&r.compare(t,n))return r;r=new y(e,t,n)}return r}function xe(e,t){var n,r,i;if(!(e instanceof C||e instanceof w))return!1;if(e===t)return!0;for(n in i=e.sources)if(i.hasOwnProperty(n)&&((r=i[n])===t||xe(r,t)))return!0;return!1}(h=function(){this.ready=!1,this.width=1,this.height=1,this.gl=r,this.uniforms={resolution:[this.width,this.height],transform:null},this.dirty=!0,this.isDestroyed=!1,this.seriously=B,this.listeners={},this.id=U,U++}).prototype.setReady=function(){var e;
344if(!this.ready&&(this.ready=!0,this.emit(`ready`),this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setReady()},h.prototype.setUnready=function(){var e;if(this.ready&&(this.ready=!1,this.emit(`unready`),this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setUnready()},h.prototype.setDirty=function(){var e;if(!this.dirty&&(this.emit(`dirty`),this.dirty=!0,this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setDirty()},h.prototype.initFrameBuffer=function(e){r&&(this.frameBuffer=new ae(r,this.width,this.height,e))},h.prototype.readPixels=function(e,t,n,i,a){var o=this.gl||r;if(!r)throw Error(`Cannot read pixels until a canvas is connected`);if(this.frameBuffer||(this.initFrameBuffer(),this.setDirty()),this.render(),a===void 0)a=new Uint8Array(n*i*4);else if(!z(a,`Uint8Array`))throw Error(`Incompatible array type`);return o.bindFramebuffer(r.FRAMEBUFFER,this.frameBuffer.frameBuffer),o.readPixels(e,t,n,i,r.RGBA,r.UNSIGNED_BYTE,a),a},h.prototype.resize=function(){var e,t;this.source?(e=this.source.width,t=this.source.height):this.sources&&this.sources.source?(e=this.sources.source.width,t=this.sources.source.height):this.inputs&&this.inputs.width?(e=this.inputs.width,t=this.inputs.height||e):this.inputs&&this.inputs.height?e=t=this.inputs.height:(e=1,t=1),e=Math.floor(e),t=Math.floor(t),this.width===e&&this.height===t||(this.width=e,this.height=t,this.emit(`resize`),this.setDirty()),this.uniforms&&this.uniforms.resolution&&(this.uniforms.resolution[0]=e,this.uniforms.resolution[1]=t),this.frameBuffer&&this.frameBuffer.resize&&this.frameBuffer.resize(e,t)},h.prototype.on=function(e,t){var n,r=-1;e&&typeof t==`function`&&((n=this.listeners[e])?r=n.indexOf(t):n=this.listeners[e]=[],r<0&&n.push(t))},h.prototype.off=function(e,t){var n,r=-1;e&&typeof t==`function`&&(n=this.listeners[e])&&(r=n.indexOf(t))>=0&&n.splice(r,1)},h.prototype.emit=function(e){var t,n=this.listeners[e];if(n&&n.length)for(t=0;t<n.length;t++)ne(n[t])},h.prototype.destroy=function(){var e,t;for(t in delete this.gl,delete this.seriously,this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];for(e in this.uniforms)this.uniforms.hasOwnProperty(e)&&delete this.uniforms[e];this.targets&&delete this.targets,this.frameBuffer&&this.frameBuffer.destroy&&(this.frameBuffer.destroy(),delete this.frameBuffer),(e=V.indexOf(this))>=0&&V.splice(e,1),delete re[this.id],this.isDestroyed=!0},E=function(e){var t,n=e;function r(e,t){var r,i,a;return a=n.effect.inputs[e],r=n.inputElements[e],typeof t==`string`&&isNaN(t)&&(a.type===`enum`?a.options.hasOwnProperty(t)||(t=L(t,[`select`])):a.type===`number`||a.type===`boolean`?t=L(t,[`input`,`select`]):a.type===`image`&&(t=L(t,[`canvas`,`img`,`video`]))),z(t,`HTMLInputElement`)||z(t,`HTMLSelectElement`)?(i=t.value,r&&r.element!==t&&(r.element.removeEventListener(`change`,r.listener,!0),r.element.removeEventListener(`input`,r.listener,!0),delete n.inputElements[e],r=null),r||(r={element:t,listener:function(e,r){return function(){var i=t.type===`checkbox`?t.checked:r.value,o=n.setInput(e,i);a.type===`color`&&(o=te(o).substr(0,7)),o!==i&&(r.value=o)}}(e,t)},n.inputElements[e]=r,t.type===`range`&&t.addEventListener(`input`,r.listener,!0),t.addEventListener(`change`,r.listener,!0)),r&&t.type===`checkbox`&&(i=t.checked)):(r&&(r.element.removeEventListener(`change`,r.listener,!0),r.element.removeEventListener(`input`,r.listener,!0),delete n.inputElements[e]),i=t),n.setInput(e,i),n.inputs[e]}function i(e){return function(t){var n=r(e,t);return n&&n.pub}}function a(e){return function(){var t=n.inputs[e];return t&&t.pub}}function o(e){return function(t){return r(e,t)}}function s(e){return function(){return n.inputs[e]}}for(t in n.effect.inputs)if(n.effect.inputs.hasOwnProperty(t)){if(this[t]!==void 0)throw Error(`Cannot overwrite Seriously.`+t);n.effect.inputs[t].type===`image`?Object.defineProperty(this,t,{configurable:!0,enumerable:!0,get:a(t),set:i(t)}):Object.defineProperty(this,t,{configurable:!0,enumerable:!0,get:s(t),set:o(t)})}Object.defineProperties(this,{effect:{enumerable:!0,configurable:!0,get:function(){return n.hook}},title:{enumerable:!0,configurable:!0,get:function(){return n.effect.title||n.hook}},width:{enumerable:!0,configurable:!0,get:function(){return n.width}},height:{enumerable:!0,configurable:!0,get:function(){return n.height}},id:{enumerable:!0,configurable:!0,get:function(){return n.id}}}),this.render=function(){return n.render(),this},this.readPixels=function(e,t,r,i,a){return n.readPixels(e,t,r,i,a)},this.on=function(e,t){n.on(e,t)},this.off=function(e,t){n.off(e,t)},this.inputs=function(e){var t,r,i,a;if(i=n.effect.inputs,e)return(r=i[e])?(t={type:r.type,defaultValue:r.defaultValue,title:r.title||e},r.type===`number`?(t.min=r.min,t.max=r.max,t.step=r.step,t.mod=r.mod):r.type===`enum`?t.options=R({},r.options):r.type===`vector`&&(t.dimensions=r.dimensions),r.description&&(t.description=r.description),t):null;for(a in t={},i)i.hasOwnProperty(a)&&(t[a]=this.inputs(a));return t},this.alias=function(e,t){return n.alias(e,t),this},this.matte=function(e){n.matte(e)},this.destroy=function(){var e,t;for(e in n.destroy(),this)this.hasOwnProperty(e)&&e!==`isDestroyed`&&e!==`id`&&((t=Object.getOwnPropertyDescriptor(this,e)).get||t.set||typeof this[e]!=`function`?delete this[e]:this[e]=S)},this.isDestroyed=function(){return n.isDestroyed},this.isReady=function(){return n.ready}},C=function(e,t){var n,a,o,s,c={};for(n in h.call(this,t),this.gl=r,this.effectRef=d[e],this.sources={},this.targets=[],this.inputElements={},this.dirty=!0,this.shaderDirty=!0,this.hook=e,this.options=t,this.transform=null,this.effect=R({},this.effectRef),this.effectRef.definition&&R(this.effect,this.effectRef.definition.call(this,t)),ie(this.effect),this.uniforms.transform=i,this.inputs={},s=X[e],this.effect.inputs)this.effect.inputs.hasOwnProperty(n)&&((a=this.effect.inputs[n]).defaultValue!==void 0&&a.defaultValue!==null||(a.type===`number`?a.defaultValue=
344Math.min(Math.max(0,a.min),a.max):a.type===`color`?a.defaultValue=[0,0,0,0]:a.type===`boolean`?a.defaultValue=!1:a.type===`string`?a.defaultValue=``:a.type===`enum`&&(a.defaultValue=a.firstValue)),o=a.validate.call(this,a.defaultValue,a),s&&s[n]!==void 0&&(o=a.validate.call(this,s[n],a,a.defaultValue,o),s[n]=o,a.type===`image`&&(c[n]=o)),this.inputs[n]=o,a.uniform&&(this.uniforms[a.uniform]=a.defaultValue));for(n in r&&(this.initialize(),this.effect.commonShader&&this.buildShader()),this.updateReady(),this.inPlace=this.effect.inPlace,this.pub=new E(this),V.push(this),re[this.id]=this,J.push(this),g[e].push(this),c)c.hasOwnProperty(n)&&this.setInput(n,c[n])},C.prototype=Object.create(h.prototype),C.prototype.constructor=C,C.prototype.initialize=function(){if(!this.initialized){var e=this;this.baseShader=u,this.shape?this.model=fe(this.shape,this.gl):this.model=c,typeof this.effect.initialize==`function`?this.effect.initialize.call(this,(function(){e.initFrameBuffer(!0)}),r):this.initFrameBuffer(!0),this.frameBuffer&&(this.texture=this.frameBuffer.texture),this.initialized=!0}},C.prototype.resize=function(){var e;for(h.prototype.resize.call(this),this.effect.resize&&this.effect.resize.call(this),e=0;e<this.targets.length;e++)this.targets[e].resize()},C.prototype.updateReady=function(){var e,t,n,r,i=!0;for(t in(n=this.effect).inputs)if(n.inputs.hasOwnProperty(t)&&this.effect.inputs[t].type===`image`&&(!this.sources[t]||!this.sources[t].ready)&&(!n.requires||n.requires.call(this,t,this.inputs))){i=!1;break}if(this.ready!==i&&(this.ready=i,this.emit(i?`ready`:`unready`),r=i?`setReady`:`setUnready`,this.targets))for(e=0;e<this.targets.length;e++)this.targets[e][r]()},C.prototype.setReady=C.prototype.updateReady,C.prototype.setUnready=C.prototype.updateReady,C.prototype.addTarget=function(e){var t;for(t=0;t<this.targets.length;t++)if(this.targets[t]===e)return;this.targets.push(e)},C.prototype.removeTarget=function(e){var t=this.targets&&this.targets.indexOf(e);t>=0&&this.targets.splice(t,1)},C.prototype.removeSource=function(e){var t,n=e&&e.pub;for(t in this.inputs)!this.inputs.hasOwnProperty(t)||this.inputs[t]!==e&&this.inputs[t]!==n||(this.inputs[t]=null);for(t in this.sources)!this.sources.hasOwnProperty(t)||this.sources[t]!==e&&this.sources[t]!==n||(this.sources[t]=null)},C.prototype.buildShader=function(){var e,t=this.effect,n=this;function i(e){return A.test(e)?e:`#define SHADER_NAME seriously.`+n.hook+`
345`+e}this.shaderDirty&&=(t.commonShader&&Z[this.hook]?(this.shader||Z[this.hook].count++,this.shader=Z[this.hook].shader):t.shader?(this.shader&&!t.commonShader&&this.shader.destroy(),(e=t.shader.call(this,this.inputs,{vertex:o,fragment:s},G.util))instanceof W?this.shader=e:e&&e.vertex&&e.fragment?this.shader=new W(r,i(e.vertex),i(e.fragment)):this.shader=u,t.commonShader&&(Z[this.hook]={count:1,shader:this.shader})):this.shader=u,!1)},C.prototype.render=function(){var e,t,n,i=this.effect,a=this;function o(e,t,n,r,i,o){ye(e,t,n,r,i||a,o)}if(r){if(this.initialized||this.initialize(),this.shaderDirty&&this.buildShader(),this.dirty&&this.ready){for(e in this.sources)!this.sources.hasOwnProperty(e)||i.requires&&!i.requires.call(this,e,this.inputs)||(n=typeof this.inPlace==`function`?this.inPlace(e):this.inPlace,this.sources[e].render(!n));this.frameBuffer&&(t=this.frameBuffer.frameBuffer),typeof i.draw==`function`?(i.draw.call(this,this.shader,this.model,this.uniforms,t,o),this.emit(`render`)):t&&(ye(this.shader,this.model,this.uniforms,t,this),this.emit(`render`)),this.dirty=!1}return this.texture}},C.prototype.setInput=function(e,t){var n,r,a,o,s,c=this;function l(){var t,n=c.sources[e];if(n){for(t in c.sources)if(t!==e&&c.sources.hasOwnProperty(t)&&c.sources[t]===n)return;n.removeTarget(c)}}if(this.effect.inputs.hasOwnProperty(e)){if((n=this.effect.inputs[e]).type===`image`){if(t){if((t=be(t))!==this.sources[e]){if(l(),xe(t,this))throw Error(`Attempt to make cyclical connection.`);this.sources[e]=t,t.addTarget(this)}}else delete this.sources[e],t=!1;r=this.sources[e],a=Object.keys(this.sources),!0===this.inPlace&&a.length===1?(o=this.sources[a[0]],this.uniforms.transform=o&&o.cumulativeMatrix||i):this.uniforms.transform=i}else s=X[this.hook]&&X[this.hook][e]!==void 0?X[this.hook][e]:n.defaultValue,r=t=n.validate.call(this,t,n,s,this.inputs[e]);return this.inputs[e]===t&&n.type!==`color`&&n.type!==`vector`||(this.inputs[e]=t,n.uniform&&(this.uniforms[n.uniform]=r),n.type===`image`?(this.resize(),this.updateReady()):n.updateSources&&this.updateReady(),n.shaderDirty&&(this.shaderDirty=!0),this.setDirty(),n.update&&n.update.call(this,t)),t}},C.prototype.alias=function(e,t){var n=this;if(I.indexOf(t)>=0)throw Error(`'`+t+`' is a reserved name and cannot be used as an alias.`);return this.effect.inputs.hasOwnProperty(e)&&(t||=e,B.removeAlias(t),se[t]={node:this,input:e},Object.defineProperty(B,t,{configurable:!0,enumerable:!0,get:function(){return n.inputs[e]},set:function(t){return n.setInput(e,t)}})),this},C.prototype.matte=function(e){var t,n,r,i,a,o,s,c=[],l=[],u={};function d(e){return e&&e.length&&Array.isArray(e)?Array.isArray(e[0])?Array.isArray(e[0])&&!isNaN(e[0][0])?[e]:e:[e]:[]}function f(e,t,n,r){var i,a,o,s,c;return i=(r.x-n.x)*(e.y-n.y)-(r.y-n.y)*(e.x-n.x),a=(t.x-e.x)*(e.y-n.y)-(t.y-e.y)*(e.x-n.x),!!((o=(r.y-n.y)*(t.x-e.x)-(r.x-n.x)*(t.y-e.y))&&(c=a/o,(s=i/o)>0&&s<=1&&c>0&&c<=1))&&{x:e.x+s*(t.x-e.x),y:e.y+s*(t.y-e.y)}}function p(e){var t,n,r,i,a,o,s,u,d,p,m,h=[];if(!e.simple){for(t=0;t<e.edges.length;t++)for(r=e.edges[t],n=t+1;n<e.edges.length;n++)i=e.edges[n],(a=f(r[0],r[1],i[0],i[1]))&&(a.edge1=r,a.edge2=i,h.push(a));if(h.length){for(d=[],t=0;t<h.length;t++)r=(a=h[t]).edge1,i=a.edge2,p={x:a.x,y:a.y,prev:r[0],next:i[1],id:l.length},e.vertices.push(p),l.push(p),m={x:a.x,y:a.y,prev:i[0],next:r[1],id:l.length},e.vertices.push(m),l.push(p),p.prev.next=p,p.next.prev=p,m.prev.next=m,m.next.prev=m;do{o={edges:[],vertices:[],simple:!0},d.push(o),s=u=e.vertices[0];do t=e.vertices.indexOf(u),e.vertices.splice(t,1),o.edges.push([u,u.next]),o.vertices.push(u),u=u.next;while(u!==s)}while(e.vertices.length);for(t=c.indexOf(e),c.splice(t,1),t=0;t<d.length;t++)c.push(d[t])}else e.simple=!0}}function m(e){var t,n,r,i,a=e.vertices.length,o=0;for(t=a-1,n=0;n<a;t=n,n++)r=e.vertices[t],i=e.vertices[n],o+=r.x*i.y-i.x*r.y;return o>0}function h(e){var t,r,i,a,o,s,c,l,u,d,f,p=e.vertices,m=[],h=[];function g(e,t,n,r){var i,a,o,s,c,l,u,d,f,p,m,h;return i=n.x-t.x,a=n.y-t.y,o=e.x-n.x,s=e.y-n.y,c=t.x-e.x,l=t.y-e.y,u=r.x-e.x,d=r.y-e.y,f=r.x-t.x,p=r.y-t.y,m=r.x-n.x,h=r.y-n.y,i*p-a*f>=0&&o*h-s*m>=0&&c*d-l*u>=0}function _(e,t,n,r,i){var a,o,s,c;if(o=p[i[e]],s=p[i[t]],c=p[i[n]],0>(s.x-o.x)*(c.y-o.y)-(s.y-o.y)*(c.x-o.x))return!1;for(a=0;a<r;a++)if(a!==e&&a!==t&&a!==n&&g(o,s,c,p[i[a]]))return!1;return!0}if(r=p.length,e.clockWise)for(t=0;t<r;t++)m[t]=t;else for(t=0;t<r;t++)m[t]=r-1-t;for(a=2*(i=r),t=i-1;i>2;){if(a--<=0)return h;if(i<=(o=t)&&(o=0),i<=(t=o+1)&&(t=0),i<(s=t+1)&&(s=0),_(o,t,s,i,m)){for(c=m[o],l=m[t],u=m[s],e.clockWise?(h.push(p[c]),h.push(p[l]),h.push(p[u])):(h.push(p[u]),h.push(p[l]),h.push(p[c])),d=t,f=t+1;f<i;d++,f++)m[d]=m[f];a=2*--i}}n.indices=h}for(t=d(e),r=0;r<t.length;r++){for(e=t[r],s=null,n={vertices:[],edges:[]},i=0;i<e.length;i++)a=e[i],vr(a)!==`object`||isNaN(a.x)||isNaN(a.y)?a.length>=2&&!isNaN(a[0])&&!isNaN(a[1])&&(o={x:a[0],y:a[1],id:l.length}):o={x:a.x,y:a.y,id:l.length},o&&(s?(s.next=o,o.prev=s,o.next=n.vertices[0],n.vertices[0].prev=o):(n.head=o,o.next=o,o.prev=o),l.push(o),n.vertices.push(o),s=o);if(n.vertices.length>2)for(n.vertices.length===3&&(n.simple=!0),c.push(n),i=0;i<n.vertices.length;i++)o=n.vertices[i],n.edges.push([o,o.next])}for(r=c.length-1;r>=0;r--)p(n=c[r]);for(r=0;r<c.length;r++)(n=c[r]).clockWise=m(n),h(n);for(u.vertices=[],u.coords=[],r=0;r<l.length;r++)a=l[r],u.vertices.push(2*a.x-1),u.vertices.push(-2*a.y+1),u.vertices.push(-1),u.coords.push(a.x),u.coords.push(-1*a.y+1);for(u.vertices=new Float32Array(u.vertices),u.coords=new Float32Array(u.coords),u.indices=[],r=0;r<c.length;r++)for(n=c[r],i=0;i<n.indices.length;i++)a=n.indices[i],u.indices.push(a.id);u.indices=new Uint16Array(u.indices),this.shape=u,this.gl&&fe(u,this.gl)},C.prototype.destroy=function(){var e,t,n,r=this.hook;
345for(t in this.effect.destroy&&typeof this.effect.destroy==`function`&&this.effect.destroy.call(this),delete this.effect,Z[r]&&(Z[r].count--,Z[r].count||delete Z[r]),this.shader&&this.shader.destroy&&this.shader!==u&&!Z[r]&&this.shader.destroy(),delete this.shader,this.inputElements)this.inputElements.hasOwnProperty(t)&&((n=this.inputElements[t]).element.removeEventListener(`change`,n.listener,!0),n.element.removeEventListener(`input`,n.listener,!0));for(t in this.sources)this.sources.hasOwnProperty(t)&&((n=this.sources[t])&&n.removeTarget&&n.removeTarget(this),delete this.sources[t]);for(;this.targets.length;)(n=this.targets.pop())&&n.removeSource&&n.removeSource(this);for(t in this)this.hasOwnProperty(t)&&t!==`id`&&delete this[t];for(t in se)se.hasOwnProperty(t)&&(n=se[t]).node===this&&B.removeAlias(t);(e=J.indexOf(this))>=0&&J.splice(e,1),(e=g[r].indexOf(this))>=0&&g[r].splice(e,1),h.prototype.destroy.call(this)},D=function(e){var t=e;Object.defineProperties(this,{original:{enumerable:!0,configurable:!0,get:function(){return t.source}},id:{enumerable:!0,configurable:!0,get:function(){return t.id}},width:{enumerable:!0,configurable:!0,get:function(){return t.width}},height:{enumerable:!0,configurable:!0,get:function(){return t.height}}}),this.render=function(){t.render()},this.update=function(){t.setDirty()},this.readPixels=function(e,n,r,i,a){return t.readPixels(e,n,r,i,a)},this.on=function(e,n){t.on(e,n)},this.off=function(e,n){t.off(e,n)},this.destroy=function(){var e,n;for(e in t.destroy(),this)this.hasOwnProperty(e)&&e!==`isDestroyed`&&e!==`id`&&((n=Object.getOwnPropertyDescriptor(this,e)).get||n.set||typeof this[e]!=`function`?delete this[e]:this[e]=S)},this.isDestroyed=function(){return t.isDestroyed},this.isReady=function(){return t.ready}},y=function(e,t,n){var i,a,o=n||{},s=o.flip===void 0||o.flip,c=o.width,l=o.height,u=!1,d=this,f=!1;function m(e,t,n,r){var i=p[e];if(i.definition){if(!(i=i.definition.call(d,t,n,r)))return null;i=R(R({},p[e]),i)}return i}function g(e){return d.source===e}if(h.call(this),(e&&typeof e!=`string`||!t&&t!==0)&&(n&&vr(n)===`object`||(n=t),t=e),typeof t==`string`&&isNaN(t)&&(t=L(t,[`canvas`,`img`,`video`])),typeof e==`string`&&p[e]&&(a=m(e,t,n,!0))&&(this.hook=e,f=!0,u=a.deferTexture,this.plugin=a,this.compare=a.compare,this.checkDirty=a.checkDirty,a.source&&(t=a.source)),!a&&z(t))t.tagName===`CANVAS`?(this.width=t.width,this.height=t.height,this.render=this.renderImageCanvas,f=!0,this.hook=`canvas`,this.compare=g):t.tagName===`IMG`&&(this.width=t.naturalWidth||1,this.height=t.naturalHeight||1,t.complete&&t.naturalWidth||(u=!0),t.addEventListener(`load`,(function(){d.isDestroyed||(d.width===t.naturalWidth&&d.height===t.naturalHeight||(d.width=t.naturalWidth,d.height=t.naturalHeight,d.resize()),d.setDirty(),d.setReady())}),!0),this.render=this.renderImageCanvas,f=!0,this.hook=`image`,this.compare=g);else if(!a&&z(t,`WebGLTexture`)){if(r&&!r.isTexture(t))throw Error(`Not a valid WebGL texture.`);isNaN(c)?isNaN(l)||(c=l):isNaN(l)&&(l=c),this.width=c,this.height=l,o.flip===void 0&&(s=!1),f=!0,this.texture=t,this.initialized=!0,this.hook=`texture`,this.compare=g,this.render=function(){}}if(!f&&!a){for(i in p)if(p.hasOwnProperty(i)&&p[i]&&(a=m(i,t,n,!1))){this.hook=i,f=!0,u=a.deferTexture,this.plugin=a,this.compare=a.compare,this.checkDirty=a.checkDirty,a.source&&(t=a.source);break}}if(!f)throw Error(`Unknown source type`);this.source=t,this.flip===void 0&&(this.flip=s),this.targets=[],u||d.setReady(),this.pub=new D(this),V.push(this),re[this.id]=this,K.push(this),v[this.hook].push(this),K.length&&!F&&ve()},y.prototype=Object.create(h.prototype),y.prototype.constructor=y,y.prototype.initialize=function(){var e;r&&!this.texture&&this.ready&&(e=r.createTexture(),r.bindTexture(r.TEXTURE_2D,e),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.bindTexture(r.TEXTURE_2D,null),this.texture=e,this.initialized=!0,this.allowRefresh=!0,this.setDirty())},y.prototype.initFrameBuffer=function(e){r&&(this.frameBuffer=new ae(r,this.width,this.height,{texture:this.texture,useFloat:e}))},y.prototype.addTarget=function(e){var t;for(t=0;t<this.targets.length;t++)if(this.targets[t]===e)return;this.targets.push(e)},y.prototype.removeTarget=function(e){var t=this.targets&&this.targets.indexOf(e);t>=0&&this.targets.splice(t,1)},y.prototype.resize=function(){var e,t;if(this.uniforms.resolution[0]=this.width,this.uniforms.resolution[1]=this.height,this.framebuffer&&this.framebuffer.resize(this.width,this.height),this.emit
345(`resize`),this.setDirty(),this.targets)for(e=0;e<this.targets.length;e++)(t=this.targets[e]).resize(),t.setTransformDirty&&t.setTransformDirty()},y.prototype.setReady=function(){var e;if(!this.ready&&(this.ready=!0,this.resize(),this.initialize(),this.emit(`ready`),this.targets))for(e=0;e<this.targets.length;e++)this.targets[e].setReady()},y.prototype.render=function(){var e=this.source;r&&(e||e===0)&&this.ready&&(this.initialized||this.initialize(),this.allowRefresh&&this.plugin&&this.plugin.render&&(this.dirty||this.checkDirty&&this.checkDirty())&&this.plugin.render.call(this,r,ye,c,u)&&(this.dirty=!1,this.emit(`render`)))},y.prototype.renderImageCanvas=function(){var t=this.source;if(r&&t&&this.ready&&(this.initialized||this.initialize(),this.allowRefresh&&this.dirty)){r.bindTexture(r.TEXTURE_2D,this.texture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,this.flip),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);try{return r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,t),this.dirty=!1,this.emit(`render`),!0}catch(t){t.code===e.DOMException.SECURITY_ERR&&(this.allowRefresh=!1,G.logger.error(`Unable to access cross-domain image`))}return!1}},y.prototype.destroy=function(){var e,t,n;for(this.plugin&&this.plugin.destroy&&this.plugin.destroy.call(this),r&&this.texture&&r.deleteTexture(this.texture);this.targets.length;)(n=this.targets.pop())&&n.removeSource&&n.removeSource(this);for(t in(e=K.indexOf(this))>=0&&K.splice(e,1),(e=v[this.hook].indexOf(this))>=0&&v[this.hook].splice(e,1),this)this.hasOwnProperty(t)&&t!==`id`&&delete this[t];h.prototype.destroy.call(this)},P=function(e){var t=e;Object.defineProperties(this,{source:{enumerable:!0,configurable:!0,get:function(){if(t.source)return t.source.pub},set:function(e){t.setSource(e)}},original:{enumerable:!0,configurable:!0,get:function(){return t.target}},width:{enumerable:!0,configurable:!0,get:function(){return t.width},set:function(e){!isNaN(e)&&e>0&&t.width!==e&&(t.width=e,t.resize(),t.setTransformDirty())}},height:{enumerable:!0,configurable:!0,get:function(){return t.height},set:function(e){!isNaN(e)&&e>0&&t.height!==e&&(t.height=e,t.resize(),t.setTransformDirty())}},id:{enumerable:!0,configurable:!0,get:function(){return t.id}}}),this.render=function(){t.render()},this.readPixels=function(e,n,r,i,a){return t.readPixels(e,n,r,i,a)},this.on=function(e,n){t.on(e,n)},this.off=function(e,n){t.off(e,n)},this.go=function(e){t.go(e)},this.stop=function(){t.stop()},this.getTexture=function(){return t.frameBuffer.texture},this.destroy=function(){var e,n;for(e in t.destroy(),this)this.hasOwnProperty(e)&&e!==`isDestroyed`&&e!==`id`&&((n=Object.getOwnPropertyDescriptor(this,e)).get||n.set||typeof this[e]!=`function`?delete this[e]:this[e]=S)},this.inputs=function(e){return{source:{type:`image`}}},this.isDestroyed=function(){return t.isDestroyed},this.isReady=function(){return t.ready}},T=function(e,t,n){var i,l,d,f,p,g,_,v,y,x=this,C=!1;function w(e,t,n,i){var a=m[e];if(a.definition){if(!(a=a.definition.call(x,t,n,i)))return null;a=R(R({},m[e]),a),x.hook=y,C=!0,x.plugin=a,x.compare=a.compare,a.target&&(t=a.target),a.gl&&!x.gl&&(x.gl=a.gl,r||he(a.gl)),x.gl===r&&(x.model=c,x.shader=u)}return a}if(h.call(this),(e&&typeof e!=`string`||!t&&t!==0)&&(n&&vr(n)===`object`||(n=t),t=e),l=(i=n||{}).flip===void 0||i.flip,d=parseInt(i.width,10),f=parseInt(i.height,10),g=i.debugContext,typeof e==`string`&&m[e]&&w(e,t,i,!0),this.renderToTexture=i.renderToTexture,z(t,`WebGLFramebuffer`))if(_=t,z(i,`HTMLCanvasElement`))t=i;else if(z(i,`WebGLRenderingContext`))t=i.canvas;else if(z(i.canvas,`HTMLCanvasElement`))t=i.canvas;else{if(!z(i.context,`WebGLRenderingContext`))throw Error(`Must provide a canvas with WebGLFramebuffer target`);t=i.context.canvas}if(z(t,`HTMLCanvasElement`)){if(d=t.width,f=t.height,(!r||r.canvas!==t&&i.allowSecondaryWebGL)&&(p=H(t,{alpha:!0,premultipliedAlpha:!0,preserveDrawingBuffer:!0,stencil:!0,debugContext:g})),p)r&&r!==p?(this.gl=p,this.frameBuffer={frameBuffer:_||null},this.shader=new W(this.gl,o,s),this.model=pe.call(this,this.gl),this.pixels=null,this.texture=this.gl.createTexture(),this.gl.bindTexture(r.TEXTURE_2D,this.texture),this.gl.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),this.gl.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),this.gl.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),this.gl.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),this.render=this.renderSecondaryWebGL):(a||=this,r||he(p),this.render=this.renderWebGL,i.renderToTexture?r&&(this.frameBuffer=new ae(r,d,f,!1)):this.frameBuffer={frameBuffer:_||null});else{if(!i.allowSecondaryWebGL&&r&&r.canvas!==t)throw Error(`Only one WebGL target canvas allowed. Set allowSecondaryWebGL option to create secondary context.`);this.render=S,G.logger.log(`Unable to create WebGL context.`)}C=!0}if(!C){for(y in m)if(m.hasOwnProperty(y)&&m[y]&&w(y,t,i,!1))break}if(!C)throw Error(`Unknown target type`);b&&((v=b.get(t))?G.logger.warn(`Target already in use by another instance`,t,Object.keys(v).map((function(e){return v[e]}))):(v={},b.set(t,v)),v[B.id]=B),this.target=t,this.transform=null,this.transformDirty=!0,this.flip=l,d&&(this.width=d),f&&(this.height=f),this.uniforms.resolution[0]=this.width,this.uniforms.resolution[1]=this.height,i.auto===void 0?this.auto=le:this.auto=i.auto,this.frames=0,this.pub=new P(this),V.push(this),re[this.id]=this,q.push(this)},T.prototype=Object.create(h.prototype),T.prototype.constructor=T,T.prototype.setSource=function(e){var t;(t=be(e))!==this.source&&(this.source&&this.source.removeTarget(this),this.source=t,t.addTarget(this),t&&(this.resize(),t.ready?this.setReady():this.setUnready()),this.setDirty())},T.prototype.setDirty=function(){this.dirty=!0,this.auto&&!F&&(F=M(ve))},T.prototype.resize=function(){z(this.target,`HTMLCanvasElement`)?this.width===this.target.width&&this.height===this.target.height||(this.target.width=this.width,this.target.height=this.height,this.uniforms.resolution[0]=this.width,this.uniforms.resolution[1]=this.height,this.emit
345(`resize`),this.setTransformDirty()):this.plugin&&this.plugin.resize&&this.plugin.resize.call(this),!this.source||this.source.width===this.width&&this.source.height===this.height||this.transform||(this.transform=new Float32Array(16))},T.prototype.setTransformDirty=function(){this.transformDirty=!0,this.setDirty()},T.prototype.go=function(){this.auto=!0,this.setDirty()},T.prototype.stop=function(){this.auto=!1},T.prototype.render=function(){r&&this.plugin&&this.plugin.render&&this.plugin.render.call(this,ye,u,c)},T.prototype.renderWebGL=function(){var e,t,n;if(this.resize(),r&&this.dirty&&this.ready){if(!this.source)return;this.source.render(),this.uniforms.source=this.source.texture,this.source.width===this.width&&this.source.height===this.height?this.uniforms.transform=this.source.cumulativeMatrix||i:this.transformDirty&&=(e=this.transform,j.copy(e,this.source.cumulativeMatrix||i),t=this.source.width/this.width,n=this.source.height/this.height,e[0]*=t,e[1]*=t,e[2]*=t,e[3]*=t,e[4]*=n,e[5]*=n,e[6]*=n,e[7]*=n,this.uniforms.transform=e,!1),ye(u,c,this.uniforms,this.frameBuffer.frameBuffer,this,O),this.emit(`render`),this.dirty=!1}},T.prototype.renderSecondaryWebGL=function(){var e,t,n,r,a;
345this.dirty&&this.ready&&this.source&&(this.emit(`render`),this.source.render(!0),e=this.source.width,t=this.source.height,this.pixels&&this.pixels.length===e*t*4||(this.pixels=new Uint8Array(e*t*4)),this.source.readPixels(0,0,e,t,this.pixels),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,e,t,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.pixels),e===this.width&&t===this.height?this.uniforms.transform=i:this.transformDirty&&=(n=this.transform,j.copy(n,i),r=this.source.width/this.width,a=this.source.height/this.height,n[0]*=r,n[1]*=r,n[2]*=r,n[3]*=r,n[4]*=a,n[5]*=a,n[6]*=a,n[7]*=a,this.uniforms.transform=n,!1),this.uniforms.source=this.texture,ye(this.shader,this.model,this.uniforms,null,this,O),this.dirty=!1)},T.prototype.removeSource=function(e){this.source!==e&&this.source!==e.pub||(this.source=null)},T.prototype.destroy=function(){var e,t;this.source&&this.source.removeTarget&&this.source.removeTarget(this),b&&(delete(t=b.get(this.target))[B.id],Object.keys(t).length||b.delete(this.target)),this.plugin&&this.plugin.destroy&&this.plugin.destroy.call(this),delete this.source,delete this.target,delete this.pub,delete this.uniforms,delete this.pixels,delete this.auto,(e=q.indexOf(this))>=0&&q.splice(e,1),h.prototype.destroy.call(this),this===a&&(n.removeEventListener(`webglcontextrestored`,ge,!1),_e(),a=null)},k=function(e){var t,n=e,r=this;function i(e,t,r){var i=n.inputElements[e],a,o;typeof r==`string`&&isNaN(r)&&(t.type===`enum`?t.options.hasOwnProperty(r)||(r=L(r,[`select`])):t.type===`number`||t.type===`boolean`?r=L(r,[`input`,`select`]):t.type===`image`&&(r=L(r,[`canvas`,`img`,`video`]))),z(r,`HTMLInputElement`)||z(r,`HTMLSelectElement`)?(a=r.value,i&&i.element!==r&&(i.element.removeEventListener(`change`,i.listener,!0),i.element.removeEventListener(`input`,i.listener,!0),delete n.inputElements[e],i=null),i||(i={element:r,listener:(o=r,function(){var t=r.type===`checkbox`?r.checked:o.value,i=n.setInput(e,t);r.type===`color`&&(i=te(i)),i!==t&&(o.value=i)})},n.inputElements[e]=i,r.type===`range`&&r.addEventListener(`input`,i.listener,!0),r.addEventListener(`change`,i.listener,!0)),i&&r.type===`checkbox`&&(a=r.checked)):(i&&(i.element.removeEventListener(`change`,i.listener,!0),i.element.removeEventListener(`input`,i.listener,!0),delete n.inputElements[e]),a=r),n.setInput(e,a)}function a(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){return t.get.call(n)},set:function(n){i(e,t,n)}})}function o(e){return function(){e.apply(n,arguments)&&n.setTransformDirty()}}for(t in Object.defineProperties(this,{transform:{enumerable:!0,configurable:!0,get:function(){return n.hook}},title:{enumerable:!0,configurable:!0,get:function(){return n.plugin.title||n.hook}},width:{enumerable:!0,configurable:!0,get:function(){return n.width}},height:{enumerable:!0,configurable:!0,get:function(){return n.height}},id:{enumerable:!0,configurable:!0,get:function(){return n.id}},source:{enumerable:!0,configurable:!0,get:function(){return n.source&&n.source.pub},set:function(e){n.setSource(e)}}}),n.methods)n.methods.hasOwnProperty(t)&&(this[t]=o(n.methods[t]));for(t in n.inputs)n.inputs.hasOwnProperty(t)&&a(t,n.inputs[t]);this.update=function(){n.setDirty()},this.inputs=function(e){var t,r,i,a;if(i=n.plugin.inputs,e)return!(r=i[e])||r.method?null:(t={type:r.type,defaultValue:r.defaultValue,title:r.title||e},r.type===`number`?(t.min=r.min,t.max=r.max,t.step=r.step,t.mod=r.mod):r.type===`enum`?t.options=R({},r.options):r.type===`vector`&&(t.dimensions=r.dimensions),r.description&&(t.description=r.description),t);for(a in t={},i)i.hasOwnProperty(a)&&!i[a].method&&(t[a]=this.inputs(a));return t},this.alias=function(e,t){return n.alias(e,t),this},this.on=function(e,t){n.on(e,t)},this.off=function(e,t){n.off(e,t)},this.destroy=function(){var e,t;for(e in n.destroy(),this)this.hasOwnProperty(e)&&e!==`isDestroyed`&&e!==`id`&&((t=Object.getOwnPropertyDescriptor(this,e)).get||t.set||typeof this[e]!=`function`?delete this[e]:this[e]=S)},this.isDestroyed=function(){return n.isDestroyed},this.isReady=function(){return n.ready}},w=function(e,t){var n,r,i,a,o;for(n in this.matrix=new Float32Array(16),this.cumulativeMatrix=new Float32Array(16),this.ready=!1,this.width=1,this.height=1,this.seriously=B,this.transformRef=f[e],this.hook=e,this.id=U,U++,this.options=t,this.sources=null,this.targets=[],this.inputElements={},this.inputs={},this.methods={},this.listeners={},this.texture=null,this.frameBuffer=null,this.uniforms=null,this.dirty=!0,this.transformDirty=!0,this.renderDirty=!1,this.isDestroyed=!1,this.transformed=!1,this.plugin=R({},this.transformRef),this.transformRef.definition&&R(this.plugin,this.transformRef.definition.call(this,t)),this.plugin.inputs)this.plugin.inputs.hasOwnProperty(n)&&((r=this.plugin.inputs[n]).method&&typeof r.method==`function`?this.methods[n]=r.method:typeof r.set==`function`&&typeof r.get==`function`&&(this.inputs[n]=r));for(n in ie(this.plugin),o=X[e],this.plugin.inputs)this.plugin.inputs.hasOwnProperty(n)&&typeof(r=this.plugin.inputs[n]).set==`function`&&typeof r.get==`function`&&typeof r.method!=`function`&&(i=r.get.call(this),a=r.defaultValue===void 0?i:r.defaultValue,a=r.validate.call(this,a,r,i),o&&o[n]!==void 0&&(a=r.validate.call(this,o[n],r,r.defaultValue,a),o[n]=a),a!==i&&r.set.call(this,a));V.push(this),re[this.id]=this,this.pub=new k(this),oe.push(this),_[e].push(this)},w.prototype=Object.create(h.prototype),w.prototype.constructor=w,w.prototype.setDirty=function(){this.renderDirty=!0,h.prototype.setDirty.call(this)},w.prototype.setTransformDirty=function(){var e,t;for(this.transformDirty=!0,this.dirty=!0,this.renderDirty=!0,e=0;e<this.targets.length;e++)(t=this.targets[e]).setTransformDirty?t.setTransformDirty():t.setDirty()},w.prototype.resize=function(){var e;
345for(h.prototype.resize.call(this),this.plugin.resize&&this.plugin.resize.call(this),e=0;e<this.targets.length;e++)this.targets[e].resize();this.setTransformDirty()},w.prototype.setSource=function(e){var t;if((t=be(e))!==this.source){if(xe(t,this))throw Error(`Attempt to make cyclical connection.`);this.source&&this.source.removeTarget(this),this.source=t,t.addTarget(this),t&&t.ready?this.setReady():this.setUnready(),this.resize()}},w.prototype.addTarget=function(e){var t;for(t=0;t<this.targets.length;t++)if(this.targets[t]===e)return;this.targets.push(e)},w.prototype.removeTarget=function(e){var t=this.targets&&this.targets.indexOf(e);t>=0&&this.targets.splice(t,1),this.targets&&this.targets.length&&this.resize()},w.prototype.setInput=function(e,t){var n,r,i;if(this.plugin.inputs.hasOwnProperty(e))return n=this.plugin.inputs[e],r=X[this.hook]&&X[this.hook][e]!==void 0?X[this.hook][e]:n.defaultValue,i=n.get.call(this),r===void 0&&(r=i),t=n.validate.call(this,t,n,r,i),n.set.call(this,t)&&this.setTransformDirty(),n.get.call(this)},w.prototype.alias=function(e,t){var n,r,i=this;if(I.indexOf(t)>=0)throw Error(`'`+t+`' is a reserved name and cannot be used as an alias.`);return this.plugin.inputs.hasOwnProperty(e)&&(t||=e,B.removeAlias(t),(n=this.inputs[e])?(r=i.inputs[e],Object.defineProperty(B,t,{configurable:!0,enumerable:!0,get:function(){return r.get.call(i)},set:function(e){r.set.call(i,e)&&i.setTransformDirty()}})):(n=this.methods[e])&&(r=n,B[t]=function(){r.apply(i,arguments)&&i.setTransformDirty()}),n&&(se[t]={node:this,input:e})),this},w.prototype.render=function(e){return this.source?(this.source.render(),this.transformDirty&&=(this.transformed?this.source.cumulativeMatrix?j.multiply(this.cumulativeMatrix,this.matrix,this.source.cumulativeMatrix):j.copy(this.cumulativeMatrix,this.matrix):j.copy(this.cumulativeMatrix,this.source.cumulativeMatrix||i),!1),e&&r?(this.renderDirty&&=(this.frameBuffer||=(this.uniforms={resolution:[this.width,this.height]},new ae(r,this.width,this.height)),this.uniforms.source=this.source.texture,this.uniforms.transform=this.cumulativeMatrix||i,ye(u,c,this.uniforms,this.frameBuffer.frameBuffer,this),!1),this.texture=this.frameBuffer.texture):this.source?this.texture=this.source.texture:this.texture=null,this.dirty=!1,this.texture):(this.transformDirty&&=(j.copy(this.cumulativeMatrix,this.matrix),!1),this.texture=null,void(this.dirty=!1))},w.prototype.readPixels=function(e,t,n,i,a){var o=this.gl||r;if(!r)throw Error(`Cannot read pixels until a canvas is connected`);if(this.render(!0),a===void 0)a=new Uint8Array(n*i*4);else if(!z(a,`Uint8Array`))throw Error(`Incompatible array type`);return o.bindFramebuffer(r.FRAMEBUFFER,this.frameBuffer.frameBuffer),o.readPixels(e,t,n,i,r.RGBA,r.UNSIGNED_BYTE,a),a},w.prototype.destroy=function(){var e,t,n,r=this.hook;for(e in this.plugin.destroy&&typeof this.plugin.destroy==`function`&&this.plugin.destroy.call(this),delete this.effect,this.frameBuffer&&(this.frameBuffer.destroy(),delete this.frameBuffer,delete this.texture),this.inputElements)this.inputElements.hasOwnProperty(e)&&((n=this.inputElements[e]).element.removeEventListener(`change`,n.listener,!0),n.element.removeEventListener(`input`,n.listener,!0));for(this.source&&this.source.removeTarget(this);this.targets.length;)(n=this.targets.pop())&&n.removeSource&&n.removeSource(this);for(t in this)this.hasOwnProperty(t)&&t!==`id`&&delete this[t];for(t in se)se.hasOwnProperty(t)&&(n=se[t]).node===this&&B.removeAlias(t);(e=oe.indexOf(this))>=0&&oe.splice(e,1),(e=_[r].indexOf(this))>=0&&_[r].splice(e,1),h.prototype.destroy.call(this)},w.prototype.setReady=h.prototype.setReady,w.prototype.setUnready=h.prototype.setUnready,w.prototype.on=h.prototype.on,w.prototype.off=h.prototype.off,w.prototype.emit=h.prototype.emit,(t=z(t,`HTMLCanvasElement`)?{canvas:t}:t||{}).canvas,this.effect=function(e,t){if(!d[e])throw Error(`Unknown effect: `+e);return new C(e,t).pub},this.source=function(e,t,n){return be(e,t,n).pub},this.transform=function(e,n){if(typeof e!=`string`&&(n=e,e=!1),e){if(!f[e])throw Error(`Unknown transform: `+e)}else if(e=t&&t.defaultTransform||`2d`,!f[e])throw Error(`No transform specified`);return new w(e,n).pub},this.target=function(e,t,n){var r,i,a;for(e&&typeof e==`string`&&!m[e]&&(i=l.querySelector(e)),(typeof e!=`string`||!t&&t!==0||i)&&(n&&vr(n)===`object`||(n=t),t=i||e,e=null),typeof t==`string`&&isNaN(t)&&(t=l.querySelector(t)),a=0;a<q.length;a++)if(r=q[a],(!e||e===r.hook)&&(r.target===t||r.compare&&r.compare(t,n)))return r.pub;
345return(r=new T(e,t,n)).pub},this.aliases=function(){return Object.keys(se)},this.removeAlias=function(e){se[e]&&(delete this[e],delete se[e])},this.defaults=function(e,t){var n;if(e)if(vr(e)!==`object`)t===null?delete X[e]:vr(t)===`object`&&(X[e]=R({},t));else for(n in e)e.hasOwnProperty(n)&&this.defaults(n,e[n]);else if(e===null)for(n in X)X.hasOwnProperty(n)&&delete X[n]},this.go=function(e,t){var n;for(typeof e==`function`&&ce.indexOf(e)<0&&ce.push(e),typeof t==`function`&&Y.indexOf(t)<0&&Y.push(t),le=!0,n=0;n<q.length;n++)q[n].go();F||!ce.length&&!Y.length||ve()},this.stop=function(){ce.length=0,Y.length=0,N(F),F=0},this.render=function(){var e;for(e=0;e<q.length;e++)q[e].render(t)},this.destroy=function(){for(var e,t;V.length;)V[0].pub.destroy();for(e in this)this.hasOwnProperty(e)&&e!==`isDestroyed`&&e!==`id`&&((t=Object.getOwnPropertyDescriptor(this,e)).get||t.set||typeof this[e]!=`function`?delete this[e]:this[e]=S);B=null,K=[],q=[],J=[],V=[],ce.length=0,Y.length=0,N(F),F=0,ue=!0},this.isDestroyed=function(){return ue},this.incompatible=function(e){var t,n,r=!1;if(r=G.incompatible(e))return r;if(!e){for(t in g)if(g.hasOwnProperty(t)&&g[t].length&&(n=d[t])&&typeof n.compatible==`function`&&!n.compatible.call(this))return`plugin-`+t;for(t in v)if(v.hasOwnProperty(t)&&v[t].length&&(n=p[t])&&typeof n.compatible==`function`&&!n.compatible.call(this))return`source-`+t}return!1},this.isNode=function(e){var t;return!(!e||!(t=re[e.id])||t.isDestroyed)},this.isSource=function(e){return this.isNode(e)&&e instanceof D},this.isEffect=function(e){return this.isNode(e)&&e instanceof E},this.isTransform=function(e){return this.isNode(e)&&e instanceof k},this.isTarget=function(e){return this.isNode(e)&&e instanceof P},Object.defineProperties(this,{id:{enumerable:!0,configurable:!0,get:function(){return ee}}}),this.defaults(t.defaults)}return e.addEventListener(`message`,(function(t){t.source===e&&t.data===`seriously-timeout-message`&&(t.stopPropagation(),h.length>0&&h.shift()())}),!0),ae.prototype.resize=function(e,t){var n=this.gl;this.width===e&&this.height===t||(this.width=e,this.height=t,n&&(n.bindTexture(n.TEXTURE_2D,this.texture),n.bindFramebuffer(n.FRAMEBUFFER,this.frameBuffer),n.bindRenderbuffer(n.RENDERBUFFER,this.renderBuffer),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,e,t,0,n.RGBA,n.UNSIGNED_BYTE,null),n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_COMPONENT16,e,t),n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,this.texture,0),n.bindTexture(n.TEXTURE_2D,null),n.bindRenderbuffer(n.RENDERBUFFER,null),n.bindFramebuffer(n.FRAMEBUFFER,null)))},ae.prototype.destroy=function(){var e=this.gl;e&&(e.deleteFramebuffer(this.frameBuffer),e.deleteRenderbuffer(this.renderBuffer),this.ownTexture&&e.deleteTexture(this.texture)),delete this.frameBuffer,delete this.renderBuffer,delete this.texture,delete this.gl},W.prototype.use=function(){this.gl.useProgram(this.program)},G.incompatible=function(t){var n,i,a;if(r===void 0&&((n=l.createElement(`canvas`))&&n.getContext?e.WebGLRenderingContext?(i=re())||(r=`context`):r=`webgl`:r=`canvas`),r)return r;if(t){if((a=d[t])&&typeof a.compatible==`function`&&!a.compatible(i))return`plugin-`+t;if((a=p[t])&&typeof a.compatible==`function`&&!a.compatible(i))return`source-`+t}return!1},G.plugin=function(e,t,n){var r;if(d[e])G.logger.warn(`Effect [`+e+`] already loaded`);else if(n===void 0&&vr(t)===`object`&&(n=t),n)return r=R({},n),typeof t==`function`&&(r.definition=t),r.reserved=P,r.inputs&&ie(r),r.title||=e,d[e]=r,g[e]=[],r},G.removePlugin=function(e){var t;if(!e||!d[e])return this;if(t=g[e]){for(;t.length;)t.shift().destroy();delete g[e]}return delete d[e],this},G.source=function(e,t,n){var r;if(p[e])G.logger.warn(`Source [`+e+`] already loaded`);else if(n===void 0&&vr(t)===`object`&&(n=t),n||t)return r=R({},n),typeof t==`function`&&(r.definition=t),r.title||=e,p[e]=r,v[e]=[],r},G.removeSource=function(e){var t;if(!e||!p[e])return this;if(t=v[e]){for(;t.length;)t.shift().destroy();delete v[e]}return delete p[e],this},G.transform=function(e,t,n){var r;if(f[e])G.logger.warn(`Transform [`+e+`] already loaded`);else if(n===void 0&&vr(t)===`object`&&(n=t),n||t)return r=R({},n),typeof t==`function`&&(r.definition=t),r.reserved=F,r.inputs&&ie(r),r.title||=e,f[e]=r,_[e]=[],r},G.removeTransform=function(e){var t;if(!e||!f[e])return this;if(t=_[e]){for(;t.length;)t.shift().destroy();delete _[e]}return delete f[e],this},G.target=function(e,t,n){var r;if(m[e])G.logger.warn(`Target [`+e+`] already loaded`);else if(n===void 0&&vr(t)===`object`&&(n=t),n||t)return r=R({},n),typeof t==`function`&&(r.definition=t),r.title||=e,m[e]=r,y[e]=[],r},G.removeTarget=function(e){var t;if(!e||!m[e])return this;if(t=y[e]){for(;t.length;)t.shift().destroy();delete y[e]}return delete m[e],this},G.inputValidators={color:function(e,t,r,i){var a,o,s,c;if(o=i||[],typeof e==`string`){if((s=w.exec(e))&&s.length){if(s.length<3)return o[0]=o[1]=o[2]=o[3]=0,o;for(o[3]=1,c=0;c<3;c++)o[c]=parseFloat(s[c+2])/255;return isNaN(s[6])||(o[3]=parseFloat(s[6])),s[1].toLowerCase()===`hsl`?B(o[0],o[1],o[2],o[3],o):o}
345if((s=T.exec(e))&&s.length)return(a=s[1]).length===3?(o[0]=parseInt(a[0],16)/15,o[1]=parseInt(a[1],16)/15,o[2]=parseInt(a[2],16)/15,o[3]=1):a.length===4?(o[0]=parseInt(a[0],16)/15,o[1]=parseInt(a[1],16)/15,o[2]=parseInt(a[2],16)/15,o[3]=parseInt(a[3],16)/15):a.length===6?(o[0]=parseInt(a.substr(0,2),16)/255,o[1]=parseInt(a.substr(2,2),16)/255,o[2]=parseInt(a.substr(4,2),16)/255,o[3]=1):a.length===8?(o[0]=parseInt(a.substr(0,2),16)/255,o[1]=parseInt(a.substr(2,2),16)/255,o[2]=parseInt(a.substr(4,2),16)/255,o[3]=parseInt(a.substr(6,2),16)/255):o[0]=o[1]=o[2]=o[3]=0,o;if(s=C[e.toLowerCase()]){for(c=0;c<4;c++)o[c]=s[c];return o}return n||=l.createElement(`canvas`).getContext(`2d`),n.fillStyle=e,(a=n.fillStyle)&&a!==`#000000`?G.inputValidators.color(a,t,r,i):(o[0]=o[1]=o[2]=o[3]=0,o)}if(V(e)){if((o=e).length<3)return o[0]=o[1]=o[2]=o[3]=0,o;for(c=0;c<3;c++)if(isNaN(o[c]))return o[0]=o[1]=o[2]=o[3]=0,o;return o.length<4&&o.push(1),o}if(typeof e==`number`)return o[0]=o[1]=o[2]=e,o[3]=1,o;if(vr(e)===`object`){for(c=0;c<4;c++)e[a=D[c]]===null||isNaN(e[a])?o[c]=+(c===3):o[c]=e[a];return o}return o[0]=o[1]=o[2]=o[3]=0,o},number:function(e,t,n){return e=parseFloat(e),isNaN(e)?n||0:(t.mod&&(e-=t.mod*Math.floor(e/t.mod)),e<t.min?t.min:e>t.max?t.max:t.step?Math.round(e/t.step)*t.step:e)},enum:function(e,t,n){var r=t.options||[];return typeof e==`string`?e=e.toLowerCase():typeof e==`number`?e=e.toString():e||=``,r.hasOwnProperty(e)?e:n||``},vector:function(e,t,n,r){var i,a,o,s=t.dimensions||4;if(i=r||[],V(e)){for(a=0;a<s;a++)i[a]=e[a]||0;return i}if(vr(e)===`object`){for(a=0;a<s;a++)e[o=E[a]]===void 0&&(o=D[a]),i[a]=e[o]||0;return i}for(e=parseFloat(e)||0,a=0;a<s;a++)i[a]=e;return i},boolean:function(e){return!(!e||e&&e.toLowerCase&&e.toLowerCase()===`false`)},string:function(e){return typeof e==`string`?e:e===0||e?e.toString?e.toString():String(e):``}},G.prototype.effects=G.effects=function(){var e,t,n,r,i,a={};for(e in d)if(d.hasOwnProperty(e)){for(i in n={title:(t=d[e]).title||e,description:t.description||``,inputs:{}},t.inputs)t.inputs.hasOwnProperty(i)&&(r=t.inputs[i],n.inputs[i]={type:r.type,defaultValue:r.defaultValue,step:r.step,min:r.min,max:r.max,mod:r.mod,minCount:r.minCount,maxCount:r.maxCount,dimensions:r.dimensions,title:r.title||i,description:r.description||``,options:r.options||[]});a[e]=n}return a},e.Float32Array&&(i=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])),e.Seriously&&vr(e.Seriously)===`object`&&function(){for(var t in e.Seriously)e.Seriously.hasOwnProperty(t)&&t!==`plugin`&&vr(e.Seriously[t])===`object`&&G.plugin(t,e.Seriously[t])}(),G.logger={log:ee(`log`),info:ee(`info`),warn:ee(`warn`),error:ee(`error`)},G.util={mat4:j,checkSource:U,hslToRgb:B,colors:C,setTimeoutZero:ne,ShaderProgram:W,FrameBuffer:ae,requestAnimationFrame:M,shader:{makeNoise:`float makeNoise(float u, float v, float timer) {
346	float x = u * v * mod(timer * 1000.0, 100.0);
347	x = mod(x, 13.0) * mod(x, 127.0);
348	float dx = mod(x, 0.01);
349	return clamp(0.1 + dx * 100.0, 0.0, 1.0);
350}
351`,random:`#ifndef RANDOM
352#define RANDOM
353float random(vec2 n) {
354	return 0.5 + 0.5 * fract(sin(dot(n.xy, vec2(12.9898, 78.233)))* 43758.5453);
355}
356#endif
357`}},G.source(`video`,(function(t,n,r){var i,o,s=this,c=!1,u=!1,d=!1,f=0;function p(){t.removeEventListener(`loadedmetadata`,p,!0),c||(t.videoWidth?(s.width===t.videoWidth&&s.height===t.videoHeight||(s.width=t.videoWidth,s.height=t.videoHeight,s.resize()),u&&s.setReady()):(u=!0,setTimeout(p,50)))}function m(){d=!0}function h(){d=!1,s.setDirty()}if(z(t,`HTMLVideoElement`))return t.readyState?p():(u=!0,t.addEventListener(`loadedmetadata`,p,!0)),t.addEventListener(`seeking`,m,!1),t.addEventListener(`seeked`,h,!1),{deferTexture:u,source:t,render:function n(r){var c;if(f=t.currentTime,!t.videoHeight||!t.videoWidth)return!1;a?(o||(o=l.createElement(`canvas`).getContext(`2d`),(i=o.canvas).width=s.width,i.height=s.height),c=i,o.drawImage(t,0,0,s.width,s.height)):c=t,r.bindTexture(r.TEXTURE_2D,s.texture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,s.flip),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1);try{if(r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,c
357),a===void 0){if(r.getError()===r.INVALID_VALUE)return a=!0,n(r);a=!1}return!0}catch(t){t.code===e.DOMException.SECURITY_ERR?(s.allowRefresh=!1,G.logger.error(`Unable to access cross-domain image`)):G.logger.error(`Error rendering video source`,t)}return!1},checkDirty:function(){return!d&&t.currentTime!==f},compare:function(e){return s.source===e},destroy:function(){c=!0,t.removeEventListener(`seeking`,m,!1),t.removeEventListener(`seeked`,h,!1),t.removeEventListener(`loadedmetadata`,p,!0)}}}),{title:`Video`}),G.transform(`2d`,(function(e){var t=this,n=!(e&&e.radians),r=0,i=0,a=1,o=1,s=0,c=0,l=0,u=0,d=0;function f(){var e,f,p,m,h,g,_,v,y,b,x,S=t.matrix;function C(e,t){S[12]=S[0]*e+S[4]*t+S[12],S[13]=S[1]*e+S[5]*t+S[13],S[14]=S[2]*e+S[6]*t+S[14],S[15]=S[3]*e+S[7]*t+S[15]}s||c||l||u||d||a!==1||o!==1?(j.identity(S),C(s+r,c+i),u&&(S[4]=u/t.width),d&&(S[1]=d/t.height),l&&(m=S[0],h=S[1],g=S[2],_=S[3],v=S[4],y=S[5],b=S[6],x=S[7],e=-(n?l*Math.PI/180:l),f=Math.sin(e),p=Math.cos(e),S[0]=m*p+v*f,S[1]=h*p+y*f,S[2]=g*p+b*f,S[3]=_*p+x*f,S[4]=v*p-m*f,S[5]=y*p-h*f,S[6]=b*p-g*f,S[7]=x*p-_*f),a!==1&&(S[0]*=a,S[1]*=a,S[2]*=a,S[3]*=a),o!==1&&(S[4]*=o,S[5]*=o,S[6]*=o,S[7]*=o),C(-r,-i),t.transformed=!0):t.transformed=!1}return{inputs:{reset:{method:function(){return r=0,i=0,a=1,o=1,s=0,c=0,l=0,u=0,d=0,!!t.transformed&&(t.transformed=!1,!0)}},translate:{method:function(e,t){return isNaN(e)&&(e=s),isNaN(t)&&(t=c),(e!==s||t!==c)&&(s=e,c=t,f(),!0)},type:[`number`,`number`]},translateX:{get:function(){return s},set:function(e){return e!==s&&(s=e,f(),!0)},type:`number`},translateY:{get:function(){return c},set:function(e){return e!==c&&(c=e,f(),!0)},type:`number`},rotation:{get:function(){return l},set:function(e){return e!==l&&(l=parseFloat(e),f(),!0)},type:`number`},center:{method:function(e,t){return isNaN(e)&&(e=r),isNaN(t)&&(t=i),(e!==r||t!==i)&&(r=e,i=t,f(),!0)},type:[`number`,`number`]},centerX:{get:function(){return r},set:function(e){return e!==r&&(r=e,f(),!0)},type:`number`},centerY:{get:function(){return i},set:function(e){return e!==i&&(i=e,f(),!0)},type:`number`},skew:{method:function(e,t){return isNaN(e)&&(e=u),isNaN(t)&&(t=d),(e!==u||t!==d)&&(u=e,d=t,f(),!0)},type:[`number`,`number`]},skewX:{get:function(){return u},set:function(e){return e!==u&&(u=e,f(),!0)},type:`number`},skewY:{get:function(){return d},set:function(e){return e!==d&&(d=e,f(),!0)},type:`number`},scale:{method:function(e,t){var n,r;if(n=isNaN(e)?a:e,isNaN(t)){if(isNaN(e))return!1;r=n}else r=t;return(n!==a||r!==o)&&(a=n,o=r,f(),!0)},type:[`number`,`number`]},scaleX:{get:function(){return a}
357,set:function(e){return e!==a&&(a=e,f(),!0)},type:`number`},scaleY:{get:function(){return o},set:function(e){return e!==o&&(o=e,f(),!0)},type:`number`}}}}),{title:`2D Transform`,description:`Translate, Rotate, Scale, Skew`}),G.transform(`flip`,(function(){var e=this,t=!0;function n(){var n=e.matrix;t?(n[0]=-1,n[5]=1):(n[0]=1,n[5]=-1)}return j.identity(e.matrix),n(),e.transformDirty=!0,e.transformed=!0,{inputs:{direction:{get:function(){return t?`horizontal`:`vertical`},set:function(e){var r;return(r=e!==`vertical`)!==t&&(t=r,n(),!0)},type:`string`}}}}),{title:`Flip`,description:`Flip Horizontal/Vertical`}),G.transform(`reformat`,(function(){var e,t,n=this,r=`contain`;function i(){var i,a,o,s,c=n.matrix,l=e||n.width,u=t||n.height,d=n.source,f=d&&d.width||1,p=d&&d.height||1;r===`distort`||l===f&&u===p?n.transformed=!1:(o=f/p,s=l/u,r===`none`?(i=f/l,a=p/u):r===`width`||r===`contain`&&s<=o?(i=1,a=s/o):r===`height`||r===`contain`&&s>o?(i=o/s,a=1):s>o?(i=1,a=s/o):(i=o/s,a=1),i!==1||a!==1?(j.identity(c),i!==1&&(c[0]*=i,c[1]*=i,c[2]*=i,c[3]*=i),a!==1&&(c[4]*=a,c[5]*=a,c[6]*=a,c[7]*=a),n.transformed=!0):n.transformed=!1)}function a(){return e||n.source&&n.source.width||1}function o(){return t||n.source&&n.source.height||1}return this.resize=function(){var e,t=a(),n=o();if(this.width!==t||this.height!==n)for(this.width=t,this.height=n,this.uniforms&&this.uniforms.resolution&&(this.uniforms.resolution[0]=t,this.uniforms.resolution[1]=n),this.frameBuffer&&this.frameBuffer.resize&&this.frameBuffer.resize(t,n),e=0;e<this.targets.length;e++)this.targets[e].resize();this.setTransformDirty(),i()},{inputs:{width:{get:a,set:function(t){return(t=Math.floor(t))===e||(e=t,this.resize()),!1},type:`number`},height:{get:o,set:function(e){return(e=Math.floor(e))===t||(t=e,this.resize()),!1},type:`number`},mode:{get:function(){return r},set:function(e){return e!==r&&(r=e,i(),!0)},type:`enum`,options:[`cover`,`contain`,`distort`,`width`,`height`,`none`]}}}}),{title:`Reformat`,description:`Change output dimensions`}),o=[`precision mediump float;`,`attribute vec4 position;`,`attribute vec2 texCoord;`,`uniform vec2 resolution;`,`uniform mat4 transform;`,`varying vec2 vTexCoord;`,`void main(void) {`,`	vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);`,`	screenPosition = transform * screenPosition;`,`	gl_Position.xy = screenPosition.xy * 2.0 / resolution;`,`	gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);`,`	gl_Position.w = screenPosition.w;`,`	vTexCoord = texCoord;`,`}
358`].join(`
359`),s=[`precision mediump float;`,`varying vec2 vTexCoord;`,`uniform sampler2D source;`,`void main(void) {`,`		gl_FragColor = texture2D(source, vTexCoord);`,`}`].join(`
360`),G.util.shader.noiseHelpers=`#ifndef NOISE_HELPERS
361#define NOISE_HELPERS
362vec2 mod289(vec2 x) {
363	return x - floor(x * (1.0 / 289.0)) * 289.0;
364}
365vec3 mod289(vec3 x) {
366	return x - floor(x * (1.0 / 289.0)) * 289.0;
367}
368vec4 mod289(vec4 x) {
369	return x - floor(x * (1.0 / 289.0)) * 289.0;
370}
371vec3 permute(vec3 x) {
372	return mod289(((x*34.0)+1.0)*x);
373}
374vec4 permute(vec4 x) {
375	return mod289(((x*34.0)+1.0)*x);
376}
377vec4 taylorInvSqrt(vec4 r) {
378	return 1.79284291400159 - 0.85373472095314 * r;
379}
380float taylorInvSqrt(float r) {
381	return 1.79284291400159 - 0.85373472095314 * r;
382}
383#endif
384`,G.util.shader.snoise2d=`#ifndef NOISE2D
385#define NOISE2D
386float snoise(vec2 v) {
387	const vec4 C = vec4(0.211324865405187, // (3.0-sqrt(3.0))/6.0
388		0.366025403784439, // 0.5*(sqrt(3.0)-1.0)
389		-0.577350269189626, // -1.0 + 2.0 * C.x
390		0.024390243902439); // 1.0 / 41.0
391	vec2 i = floor(v + dot(v, C.yy));
392	vec2 x0 = v - i + dot(i, C.xx);
393	vec2 i1;
394	//i1.x = step(x0.y, x0.x); // x0.x > x0.y ? 1.0 : 0.0
395	//i1.y = 1.0 - i1.x;
396	i1 = (x0.x > x0.y) ? vec2(1.0, 0.0) : vec2(0.0, 1.0);
397	// x0 = x0 - 0.0 + 0.0 * C.xx ;
398	// x1 = x0 - i1 + 1.0 * C.xx ;
399	// x2 = x0 - 1.0 + 2.0 * C.xx ;
400	vec4 x12 = x0.xyxy + C.xxzz;
401	x12.xy -= i1;
402	i = mod289(i); // Avoid truncation effects in permutation
403	vec3 p = permute(permute(i.y + vec3(0.0, i1.y, 1.0)) + i.x + vec3(0.0, i1.x, 1.0));
404	vec3 m = max(0.5 - vec3(dot(x0, x0), dot(x12.xy, x12.xy), dot(x12.zw, x12.zw)), 0.0);
405	m = m*m ;
406	m = m*m ;
407	vec3 x = 2.0 * fract(p * C.www) - 1.0;
408	vec3 h = abs(x) - 0.5;
409	vec3 ox = floor(x + 0.5);
410	vec3 a0 = x - ox;
411	m *= 1.79284291400159 - 0.85373472095314 * (a0*a0 + h*h);
412	vec3 g;
413	g.x = a0.x * x0.x + h.x * x0.y;
414	g.yz = a0.yz * x12.xz + h.yz * x12.yw;
415	return 130.0 * dot(m, g);
416}
417#endif
418`,G.util.shader.snoise3d=`#ifndef NOISE3D
419#define NOISE3D
420float snoise(vec3 v) {
421	const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;
422	const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
423	vec3 i = floor(v + dot(v, C.yyy));
424	vec3 x0 = v - i + dot(i, C.xxx) ;
425	vec3 g = step(x0.yzx, x0.xyz);
426	vec3 l = 1.0 - g;
427	vec3 i1 = min(g.xyz, l.zxy);
428	vec3 i2 = max(g.xyz, l.zxy);
429	// x0 = x0 - 0.0 + 0.0 * C.xxx;
430	// x1 = x0 - i1 + 1.0 * C.xxx;
431	// x2 = x0 - i2 + 2.0 * C.xxx;
432	// x3 = x0 - 1.0 + 3.0 * C.xxx;
433	vec3 x1 = x0 - i1 + C.xxx;
434	vec3 x2 = x0 - i2 + C.yyy; // 2.0*C.x = 1/3 = C.y
435	vec3 x3 = x0 - D.yyy; // -1.0+3.0*C.x = -0.5 = -D.y
436	i = mod289(i);
437	vec4 p = permute(permute(permute(
438						i.z + vec4(0.0, i1.z, i2.z, 1.0))
439						+ i.y + vec4(0.0, i1.y, i2.y, 1.0))
440						+ i.x + vec4(0.0, i1.x, i2.x, 1.0));
441	float n_ = 0.142857142857; // 1.0/7.0
442	vec3 ns = n_ * D.wyz - D.xzx;
443	vec4 j = p - 49.0 * floor(p * ns.z * ns.z); // mod(p, 7 * 7)
444	vec4 x_ = floor(j * ns.z);
445	vec4 y_ = floor(j - 7.0 * x_); // mod(j, N)
446	vec4 x = x_ * ns.x + ns.yyyy;
447	vec4 y = y_ * ns.x + ns.yyyy;
448	vec4 h = 1.0 - abs(x) - abs(y);
449	vec4 b0 = vec4(x.xy, y.xy);
450	vec4 b1 = vec4(x.zw, y.zw);
451	//vec4 s0 = vec4(lessThan(b0, 0.0)) * 2.0 - 1.0;
452	//vec4 s1 = vec4(lessThan(b1, 0.0)) * 2.0 - 1.0;
453	vec4 s0 = floor(b0) * 2.0 + 1.0;
454	vec4 s1 = floor(b1) * 2.0 + 1.0;
455	vec4 sh = -step(h, vec4(0.0));
456	vec4 a0 = b0.xzyw + s0.xzyw * sh.xxyy ;
457	vec4 a1 = b1.xzyw + s1.xzyw * sh.zzww ;
458	vec3 p0 = vec3(a0.xy, h.x);
459	vec3 p1 = vec3(a0.zw, h.y);
460	vec3 p2 = vec3(a1.xy, h.z);
461	vec3 p3 = vec3(a1.zw, h.w);
462	vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));
463	p0 *= norm.x;
464	p1 *= norm.y;
465	p2 *= norm.z;
466	p3 *= norm.w;
467	vec4 m = max(0.6 - vec4(dot(x0, x0), dot(x1, x1), dot(x2, x2), dot(x3, x3)), 0.0);
468	m = m * m;
469	return 42.0 * dot(m*m, vec4(dot(p0, x0), dot(p1, x1), dot(p2, x2), dot(p3, x3)));
470}
471#endif
472`,G.util.shader.snoise4d=`#ifndef NOISE4D
473#define NOISE4D
474vec4 grad4(float j, vec4 ip)
475	{
476	const vec4 ones = vec4(1.0, 1.0, 1.0, -1.0);
477	vec4 p, s;
478
479	p.xyz = floor(fract (vec3(j) * ip.xyz) * 7.0) * ip.z - 1.0;
480	p.w = 1.5 - dot(abs(p.xyz), ones.xyz);
481	s = vec4(lessThan(p, vec4(0.0)));
482	p.xyz = p.xyz + (s.xyz*2.0 - 1.0) * s.www;
483
484	return p;
485	}
486
487#define F4 0.309016994374947451
488
489float snoise(vec4 v)
490	{
491	const vec4 C = vec4(0.138196601125011, // (5 - sqrt(5))/20 G4
492						0.276393202250021, // 2 * G4
493						0.414589803375032, // 3 * G4
494						-0.447213595499958); // -1 + 4 * G4
495
496	vec4 i = floor(v + dot(v, vec4(F4)));
497	vec4 x0 = v - i + dot(i, C.xxxx);
498
499
500	vec4 i0;
501	vec3 isX = step(x0.yzw, x0.xxx);
502	vec3 isYZ = step(x0.zww, x0.yyz);
503	i0.x = isX.x + isX.y + isX.z;
504	i0.yzw = 1.0 - isX;
505	i0.y += isYZ.x + isYZ.y;
506	i0.zw += 1.0 - isYZ.xy;
507	i0.z += isYZ.z;
508	i0.w += 1.0 - isYZ.z;
509
510	vec4 i3 = clamp(i0, 0.0, 1.0);
511	vec4 i2 = clamp(i0 - 1.0, 0.0, 1.0);
512	vec4 i1 = clamp(i0 - 2.0, 0.0, 1.0);
513
514	vec4 x1 = x0 - i1 + C.xxxx;
515	vec4 x2 = x0 - i2 + C.yyyy;
516	vec4 x3 = x0 - i3 + C.zzzz;
517	vec4 x4 = x0 + C.wwww;
518
519	i = mod289(i);
520	float j0 = permute(permute(permute(permute(i.w) + i.z) + i.y) + i.x);
521	vec4 j1 = permute(permute(permute(permute (
522					i.w + vec4(i1.w, i2.w, i3.w, 1.0))
523					+ i.z + vec4(i1.z, i2.z, i3.z, 1.0))
524					+ i.y + vec4(i1.y, i2.y, i3.y, 1.0))
525					+ i.x + vec4(i1.x, i2.x, i3.x, 1.0));
526
527	vec4 ip = vec4(1.0/294.0, 1.0/49.0, 1.0/7.0, 0.0) ;
528
529	vec4 p0 = grad4(j0, ip);
530	vec4 p1 = grad4(j1.x, ip);
531	vec4 p2 = grad4(j1.y, ip);
532	vec4 p3 = grad4(j1.z, ip);
533	vec4 p4 = grad4(j1.w, ip);
534
535	vec4 norm = taylorInvSqrt(vec4(dot(p0, p0), dot(p1, p1), dot(p2, p2), dot(p3, p3)));
536	p0 *= norm.x;
537	p1 *= norm.y;
538	p2 *= norm.z;
539	p3 *= norm.w;
540	p4 *= taylorInvSqrt(dot(p4, p4));
541
542	vec3 m0 = max(0.6 - vec3(dot(x0, x0), dot(x1, x1), dot(x2, x2)), 0.0);
543	vec2 m1 = max(0.6 - vec2(dot(x3, x3), dot(x4, x4)), 0.0);
544	m0 = m0 * m0;
545	m1 = m1 * m1;
546	return 49.0 * (dot(m0*m0, vec3(dot(p0, x0), dot(p1, x1), dot(p2, x2)))
547							+ dot(m1*m1, vec2(dot(p3, x3), dot(p4, x4)))) ;
548}
549#endif
550`,G}(Or);Or.Seriously||=kr,Dr.exports=kr;var Ar=Er.exports;console.info(`seriously version: chroma`),Ar.plugin(`chroma`,{shader:function(e,t){return t.vertex=[`precision mediump float;`,`attribute vec4 position;`,`attribute vec2 texCoord;`,`uniform vec2 resolution;`,`uniform mat4 transform;`,`varying vec2 vTexCoord;`,`uniform vec4 screen;`,`uniform float balance;`,`varying float screenSat;`,`varying vec3 screenPrimary;`,`void main(void) {`,`	float fmin = min(min(screen.r, screen.g), screen.b);`,`	float fmax = max(max(screen.r, screen.g), screen.b);`,`	float secondaryComponents;`,`	screenPrimary = step(fmax, screen.rgb);
550`,`	secondaryComponents = dot(1.0 - screenPrimary, screen.rgb);`,`	screenSat = fmax - mix(secondaryComponents - fmin, secondaryComponents / 2.0, balance);`,`	vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);`,`	screenPosition = transform * screenPosition;`,`	gl_Position = screenPosition;`,`	gl_Position.xy = screenPosition.xy * 2.0 / resolution;`,`	gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);`,`	vTexCoord = texCoord;`,`}`].join(`
551`),t.fragment=[this.inputs.mask?`#define MASK`:``,`precision mediump float;`,`varying vec2 vTexCoord;`,`uniform sampler2D source;`,`uniform vec4 screen;`,`uniform float screenWeight;`,`uniform float balance;`,`uniform float clipBlack;`,`uniform float clipWhite;`,`uniform bool mask;`,`varying float screenSat;`,`varying vec3 screenPrimary;`,`void main(void) {`,`	float pixelSat, secondaryComponents;`,`	vec4 sourcePixel = texture2D(source, vTexCoord);`,`
552					if (screen.a == 0.0) {
553						gl_FragColor = sourcePixel;
554						return;
555					}
556				`,`	float fmin = min(min(sourcePixel.r, sourcePixel.g), sourcePixel.b);`,`	float fmax = max(max(sourcePixel.r, sourcePixel.g), sourcePixel.b);`,`	vec3 pixelPrimary = step(fmax, sourcePixel.rgb);`,`	secondaryComponents = dot(1.0 - pixelPrimary, sourcePixel.rgb);`,`	pixelSat = fmax - mix(secondaryComponents - fmin, secondaryComponents / 2.0, balance);`,`	float diffPrimary = dot(abs(pixelPrimary - screenPrimary), vec3(1.0));`,`	float solid = step(1.0, step(pixelSat, 0.1) + step(fmax, 0.1) + diffPrimary);`,`	float alpha = max(0.0, 1.0 - pixelSat / screenSat);`,`	alpha = smoothstep(clipBlack, clipWhite, alpha);`,`	vec4 semiTransparentPixel = vec4((sourcePixel.rgb - (1.0 - alpha) * screen.rgb * screenWeight) / max(0.00001, alpha), alpha);`,`	vec4 pixel = mix(semiTransparentPixel, sourcePixel, solid);`,`#ifdef MASK`,`	gl_FragColor = vec4(vec3(pixel.a), 1.0);`,`#else`,`	gl_FragColor = pixel;`,`#endif`,`}`].join(`
557`),t},inPlace:!0,inputs:{source:{type:`image`,uniform:`source`},screen:{type:`color`,uniform:`screen`,defaultValue:[66/255,195/255,31/255,1]},weight:{type:`number`,uniform:`screenWeight`,defaultValue:1,min:0},balance:{type:`number`,uniform:`balance`,defaultValue:1,min:0,max:1},clipBlack:{type:`number`,uniform:`clipBlack`,defaultValue:0,min:0,max:1},clipWhite:{type:`number`,uniform:`clipWhite`,defaultValue:1,min:0,max:1},mask:{type:`boolean`,defaultValue:!1,uniform:`mask`,shaderDirty:!0}},title:`Chroma Key`,description:``}),console.info(`seriously version: chroma_obs`),Ar.plugin(`chroma_obs`,{shader:function(e,t){return t.vertex=[`precision mediump float;`,`attribute vec4 position;`,`attribute vec2 texCoord;`,`uniform vec2 resolution;`,`uniform mat4 transform;`,`varying vec2 vTexCoord;`,`const vec4 cb_v4 = vec4(-0.100644, -0.338572,  0.439216, 0.501961);`,`const vec4 cr_v4 = vec4(0.439216, -0.398942, -0.040274, 0.501961);`,`uniform vec4 screen;`,`uniform float similarity;`,`uniform float smoothness;`,`uniform float spill;`,`uniform float contrast;`,`uniform float gamma;`,`varying vec2 chroma_key;`,`varying vec2 pixel_size;`,`varying float similarity_v;`,`varying float smoothness_v;`,`varying float spill_v;`,`varying float contrast_v;`,`varying float gamma_v;`,`void main(void) {`,`	float cb = dot(screen.rgb, cb_v4.xyz) + cb_v4.w;`,`	float cr = dot(screen.rgb, cr_v4.xyz) + cr_v4.w;`,`	chroma_key.x = cb;`,`	chroma_key.y = cr;`,`	pixel_size.x = 1.0 / resolution.x;`,`	pixel_size.y = 1.0 / resolution.y;`,`	similarity_v = similarity * 1.0 / 1000.0;`,`	smoothness_v = smoothness * 1.0 / 1000.0;`,`	spill_v = spill * 1.0 / 1000.0;`,`	contrast_v = (contrast < 0.0) ? (1.0 / (-contrast + 1.0)) : (contrast + 1.0);`,`	gamma_v = (gamma < 0.0) ? (-gamma + 1.0) : (1.0 / (gamma + 1.0));`,`	vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);`,`	screenPosition = transform * screenPosition;`,`	gl_Position = screenPosition;`,`	gl_Position.xy = screenPosition.xy * 2.0 / resolution;`,`	gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);`,`	vTexCoord = texCoord;`,`}`].join(`
558`),t.fragment=[this.inputs.mask?`#define MASK`:``,`precision mediump float;`,`varying vec2 vTexCoord;`,`uniform bool mask;`,`uniform vec4 screen;`,`uniform sampler2D source;`,`const vec4 cb_v4 = vec4(-0.100644, -0.338572,  0.439216, 0.501961);`,`const vec4 cr_v4 = vec4(0.439216, -0.398942, -0.040274, 0.501961);`,`uniform float opacity;`,`uniform float brightness;`,`varying vec2 chroma_key;`,`varying vec2 pixel_size;`,`varying float similarity_v;`,`varying float smoothness_v;`,`varying float spill_v;`,`varying float contrast_v;`,`varying float gamma_v;`,`vec4 CalcColor(vec4 rgba) {`,`	return vec4(pow(rgba.rgb, vec3(gamma_v, gamma_v, gamma_v)) * contrast_v + brightness, rgba.a);`,`}`,`float GetChromaDist(vec3 rgb) {`,`	float cb = dot(rgb.rgb, cb_v4.xyz) + cb_v4.w;`,`	float cr = dot(rgb.rgb, cr_v4.xyz) + cr_v4.w;`,`	return distance(chroma_key, vec2(cb, cr));`,`}`,`float GetNonlinearChannel(float u) {`,`	return u;`,`}
558`,`vec3 GetNonlinearColor(vec3 rgb)`,`{`,`	return vec3(GetNonlinearChannel(rgb.r), GetNonlinearChannel(rgb.g), GetNonlinearChannel(rgb.b));`,`}`,`vec3 SampleTexture(vec2 uv)`,`{`,`	vec3 rgb = texture2D(source, uv).rgb;`,`	return GetNonlinearColor(rgb);`,`}`,`float GetBoxFilteredChromaDist(vec3 rgb, vec2 texCoord) {`,`	vec2 h_pixel_size = pixel_size / 2.0;`,`	vec2 point_0 = vec2(pixel_size.x, h_pixel_size.y);`,`	vec2 point_1 = vec2(h_pixel_size.x, -pixel_size.y);`,`	float distVal = GetChromaDist(SampleTexture(texCoord-point_0));`,`	distVal += GetChromaDist(SampleTexture(texCoord+point_0));`,`	distVal += GetChromaDist(SampleTexture(texCoord-point_1));`,`	distVal += GetChromaDist(SampleTexture(texCoord+point_1));`,`	distVal *= 2.0;`,`	distVal += GetChromaDist(GetNonlinearColor(rgb));`,`	return distVal / 9.0;`,`}`,`vec4 ProcessChromaKey(vec4 rgba, vec2 uv)`,`{`,`	float chromaDist = GetBoxFilteredChromaDist(rgba.rgb, uv);`,`	float baseMask = chromaDist - similarity_v;`,`	float fullMask = pow(clamp(baseMask / smoothness_v, 0.0, 1.0), 1.5);`,`	float spillVal = pow(clamp(baseMask / spill_v, 0.0, 1.0), 1.5);`,`	rgba.a *= opacity;`,`	rgba.a *= fullMask;`,`	float desat = dot(rgba.rgb, vec3(0.2126, 0.7152, 0.0722));`,`	rgba.rgb = mix(vec3(desat, desat, desat), rgba.rgb, spillVal);`,`	return CalcColor(rgba);`,`}`,`void main(void) {`,`	vec4 rgba = texture2D(source, vTexCoord);`,`
559                	if (screen.w == 0.0) {
560                		gl_FragColor = rgba;
561                		return;
562                	}
563                `,`	rgba.rgb *= (rgba.a > 0.) ? (1. / rgba.a) : 0.;`,`	rgba = ProcessChromaKey(rgba, vTexCoord);`,`	rgba.rgb *= rgba.a;`,`#ifdef MASK`,`	gl_FragColor = vec4(vec3(rgba.a), 1.0);`,`#else`,`	gl_FragColor = rgba;`,`#endif`,`}`].join(`
564`),t},inPlace:!0,inputs:{source:{type:`image`,uniform:`source`},screen:{type:`color`,uniform:`screen`,defaultValue:[0,1,0,1]},similarity:{type:`number`,uniform:`similarity`,defaultValue:400,min:1,max:1e3},smoothness:{type:`number`,uniform:`smoothness`,defaultValue:80,min:1,max:1e3},opacity:{type:`number`,uniform:`opacity`,defaultValue:1,min:0,max:1},contrast:{type:`number`,uniform:`contrast`,defaultValue:0,min:-4,max:4},brightness:{type:`number`,uniform:`brightness`,defaultValue:0,min:-1,max:1},gamma:{type:`number`,uniform:`gamma`,defaultValue:0,min:-1,max:1},spill:{type:`number`,uniform:`spill`,defaultValue:100,min:1,max:1e3},mask:{type:`boolean`,defaultValue:!1,uniform:`mask`,shaderDirty:!0}},title:`Chroma Key OBS`,description:``}),console.info(`seriously version: chroma_post`),Ar.plugin(`chroma_post`,{shader:function(e,t){return t.vertex=[`precision mediump float;`,`attribute vec4 position;`,`attribute vec2 texCoord;`,`uniform vec2 resolution;`,`uniform mat4 transform;`,`varying vec2 vTexCoord;`,`varying vec2 pixel_size;`,`void main(void) {`,`	pixel_size.x = 1.0 / resolution.x;`,`	pixel_size.y = 1.0 / resolution.y;`,`	vec4 screenPosition = vec4(position.xy * resolution / 2.0, position.z, position.w);`,`	screenPosition = transform * screenPosition;`,`	gl_Position = screenPosition;`,`	gl_Position.xy = screenPosition.xy * 2.0 / resolution;`,`	gl_Position.z = screenPosition.z * 2.0 / (resolution.x / resolution.y);`,`	vTexCoord = texCoord;`,`}`].join(`
565`),t.fragment=[this.inputs.mask?`#define MASK`:``,`precision mediump float;`,`varying vec2 vTexCoord;`,`uniform bool mask;`,`uniform sampler2D source;`,`uniform float edgeShrink;`,`varying vec2 pixel_size;`,`const int filter_size = 3;`,`float edgeSmoothSuppKernelV2(vec4 rgba, vec2 coord) {`,`    float alpha = rgba.a;`,`    if (edgeShrink > 1.0) {`,`        float sum = 0.0;`,`        float weightSum = 0.0;`,`        // float sigma = 1.0f;`,`        for (int j = - filter_size / 2; j <= filter_size / 2; j++) {`,`      	     for (int i = - filter_size / 2; i <= filter_size / 2; i++) {`,`    		     // float weight = exp(-(i*i + j*j) / (2 * sigma * sigma)) / (2 * 3.1415926f * sigma * sigma);`,`    		     float weight = 1.0;`,`                vec4 neighborColor = texture2D(source, coord + vec2(i, j) * pixel_size);`,`    		     // speedup: move the powf to chroma_key`,`    		     float alpha_ker = pow(neighborColor.w, edgeShrink);`,`    		     sum += (alpha_ker * weight);`,`    		     weightSum += weight;`,`    	     }`,`        }`,`        alpha = sum * 1.0 / weightSum;`,`    }`,`    return alpha;`,`}`,`void main(void) {`,`	vec4 rgba = texture2D(source, vTexCoord);`,`	rgba.a = edgeSmoothSuppKernelV2(rgba, vTexCoord);`,`	rgba.a = pow(rgba.a, edgeShrink);`,`#ifdef MASK`,`	gl_FragColor = vec4(vec3(rgba.a), 1.0);`,`#else`,`	gl_FragColor = rgba;`,`#endif`,`}`].join(`
566`),t},inPlace:!0,inputs:{source:{type:`image`,uniform:`source`},edgeShrink:{type:`number`,uniform:`edgeShrink`,defaultValue:3,min:1,max:10},mask:{type:`boolean`,defaultValue:!1,uniform:`mask`,shaderDirty:!0}},title:`Chroma Key Post`,description:``});var jr=class{seriously;version;defaultOptions={screen:[0,255,0,0]};targetElement;sourceElement;source=null;target=null;effect=null;backEffect=null;constructor(e,t,n,r=0){this.seriously=new window.Seriously,this.version=r,this.targetElement=typeof e==`string`?document.getElementById(e):e,this.sourceElement=typeof t==`string`?document.getElementById(t):t,this.init(n)}async loadEffect(e){return e===1?`chroma`:`chroma_obs`}async init(e){console.info(`serious version:`,this.version);let t=await this.loadEffect(this.version);await Tr((()=>!(this.sourceElement?.videoWidth>0&&this.sourceElement?.videoHeight>0))),this.targetElement.width=this.sourceElement.videoWidth,this.targetElement.height=this.sourceElement.videoHeight,this.source=this.seriously.source(this.sourceElement),this.target=this.seriously.target(this.targetElement),this.effect=this.seriously.effect(t),this.backEffect=this.seriously.effect(`chroma_post`),this.effect.source=this.source,this.backEffect.source=this.effect,this.target.source=this.backEffect,this.seriously.go(),this.setOptions(this.defaultOptions),e&&this.setOptions(e)}destroy(){this.seriously.destroy()}async updateSource(e){e&&this.effect&&this.backEffect?(this.sourceElement=typeof e==`string`?document.getElementById(e):e,await Tr((()=>!(this.sourceElement?.videoWidth>0&&this.sourceElement?.videoHeight>
5660))),this.source?.destroy(),console.info(`update source: `,this.source?.isDestroyed()),this.source=this.seriously.source(this.sourceElement),this.effect.source=this.source,this.backEffect.source=this.effect,this.target.source=this.backEffect):console.warn(`update source error: source or effect is null`,e,this.effect)}async setOptions(e){if(this.defaultOptions={...this.defaultOptions,...e},!this.effect||!this.backEffect||(0,vn.default)(e))return;console.info(`set options: `,e);let{screen:t,edgeShrink:n}=e;if(t&&t.length>=3){let[e,n,r,i]=t;this.effect.screen=[e/255,n/255,r/255,(0,_r.default)(i)?i:1]}n&&(this.backEffect.edgeShrink=n);for(let[t,n]of Object.entries(e))typeof n==`number`&&t!==`screen`&&t!==`edgeShrink`&&(this.effect[t]=n)}},Mr={version:2,chromaKey:{screen:[53,186,123],similarity:90,edgeShrink:3,smoothness:80,spill:100,opacity:1,contrast:0,brightness:0,gamma:0}},Nr=function(){function e(t){g(this,e),y(this,`cutoutInstance`,void 0);var n=t.effects,r=t.sourceId;this.cutoutInstance=new jr(`starling-cutout-canvas`,r||`starling-cutout-video`,n&&n.chromaKey||Mr.chromaKey,n&&n.version||Mr.version)}return v(e,[{key:`setOptions`,value:function(e){e&&this.cutoutInstance&&this.cutoutInstance.setOptions(e)}},{key:`destroy`,value:function(){return this.cutoutInstance.destroy()}},{key:`updateSource`,value:function(e){return this.cutoutInstance.updateSource(e)}}]),e}();function Pr(e,t,n,r){try{for(var i=(r||={})&&typeof r.index==`number`?r.index:0,a=r&&typeof r.offset==`number`?r.offset:0,o=0,s=i;s<e.length;s++)o+=e[s].length;o=Math.max(0,o-Math.floor(a));var c=t/n;c>1?o=Math.floor(o/c):(c=1,n=t);for(var l=new Int16Array(o),u=0,d=e.length;i<d;i++){for(var f=e[i],p=a,m=f.length;p<m;){var h=Math.floor(p),g=Math.ceil(p),_=p-h;l[u]=f[h]+(f[g]-f[h])*_,u++,p+=c}a=p-m}return{index:i,offset:a,sampleRate:n,data:l}}catch(e){console.log(`转音错误了`,e)}}function Fr(e){for(var t=e,n=new Int16Array(e.length),r=0;r<t.length;r++){var i=Math.max(-1,Math.min(1,t[r]));n[r]=i<0?32768*i:32767*i}return n}var Ir=function(e,t){function n(e){g(this,n),y(this,`onAudioData`,void 0),y(this,`onError`,void 0),y(this,`audioContext`,null),y(this,`processor`,null),y(this,`mediaStream`,null),y(this,`recording`,!1),this.onAudioData=e.onAudioData,this.onError=e.onError,this.preWarmStream()}return v(n,[{key:`preWarmStream`,value:function(){return(e||=h(f().mark((function e(){var t;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:16e3}),e.next=4,navigator.mediaDevices.getUserMedia({audio:!0,video:!1});case 4:this.mediaStream=e.sent,t=this.audioContext.createMediaStreamSource(this.mediaStream),this.processor=this.audioContext.createScriptProcessor(1024,1,1),t.connect(this.processor),this.processor.connect(this.audioContext.destination),this.processor.onaudioprocess=function(){},e.next=15;break;case 12:e.prev=12,e.t0=e.catch(0),console.error(`preWarmStream error`,e.t0);case 15:case`end`:return e.stop()}}),e,this,[[0,12]])})))).apply(this,arguments)}},{key:`start`,value:function(){return(t||=h(f().mark((function e(){var t=this;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.recording){e.next=2;break}return e.abrupt(`return`);case 2:if(this.audioContext&&this.processor){e.next=4;break}return e.abrupt(`return`);case 4:try{this.processor.onaudioprocess=function(e){if(t.recording){var n=Pr([Fr(e.inputBuffer.getChannelData(0))],t.audioContext.sampleRate,16e3,null);n&&n.data&&t.onAudioData(n.data.buffer)}},this.recording=!0}catch(e){this.onError&&this.onError(e)}case 5:case`end`:return e.stop()}}),e,this)})))).apply(this,arguments)}},{key:`stop`,value:function(){this.recording=!1,this.processor.onaudioprocess=function(){}}},{key:`destroy`,value:function(){this.recording=!1,this.processor&&(this.processor.disconnect(),this.processor.onaudioprocess=null),this.audioContext&&this.audioContext.close(),this.mediaStream&&this.mediaStream.getTracks().forEach((function(e){e.stop()}))}}]),n}(),Lr=function(){function e(t){var n=this;g(this,e),y(this,`token`,void 0),y(this,`appKey`,void 0),y(this,`appId`,void 0),y(this,`connectParam
566s`,void 0),y(this,`onDigitalHumanCallback`,void 0),y(this,`dhServer`,void 0),y(this,`rtcServer`,void 0),y(this,`rtcConnectParams`,void 0),y(this,`cutoutInstance`,void 0),y(this,`isHuawei`,hr()),y(this,`rtcServerUrl`,void 0),y(this,`recordController`,null),y(this,`wsReadyState`,-1),y(this,`isPreOpenSession`,!1),y(this,`onDigitalHumanCallbackPlus`,(function(e){e.status===xn.DH_LIB_FULL_STATUS&&e.content?.type===`wsState`&&(n.wsReadyState=e.content.readyState),n.onDigitalHumanCallback&&n.onDigitalHumanCallback(e)})),y(this,`onRemoteVideoComing`,(function(e){n.rtcConnectParams&&n.rtcConnectParams.feedId&&e===+n.rtcConnectParams.feedId&&n.rtcServer&&n.rtcServer.client&&n.rtcServer.client.subscribeStreaming(`remotevideo500`,+n.rtcConnectParams.feedId)})),y(this,`onLocalStream`,(function(){(n.connectParams||{}).pullAudioFromRtc&&n.rtcServer&&n.rtcServer.muteMicphone(!0)})),y(this,`onRemoteVideoOn`,(function(){setTimeout(h(f().mark((function e(){var t,r,i,a,o;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=document.getElementById(ur),e.next=3,n.cutoutInstance&&n.cutoutInstance.updateSource(`remotevideo500`);case 3:t&&(t.setAttribute(`data-playing`,`true`),r=t.videoWidth,i=t.videoHeight,a=document.getElementById(`starling-cutout-canvas`),o=a.getContext(`2d`),a&&o&&(a.width=r,a.height=i,o.drawImage(t,0,0,r,i)));case 4:case`end`:return e.stop()}}),e)}))),100)})),y(this,`connectListener`,(function(e){var t=e.code,r=e.body,i=e.message;if(t===0&&n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:xn.DH_LIB_WS_SUCCESS,content:e}),t===0){var a=Et.parse(r),o=a.rtcServerUrl,s=a.appId,c=a.clientToken,l=a.roomName,u=a.clientId,d=a.feedId,f=a.chargeId;s&&l&&(n.rtcConnectParams={server:n.rtcServerUrl||o,appId:s,token:c,roomName:l,userId:u,feedId:d,chargeId:f},n.rtcServer&&n.rtcServer.openRtc(n.rtcConnectParams))}else n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:xn.DH_LIB_ERROR,content:{type:Sn.CONNECT_ERROR,msg:{code:t,errMsg:i}}})})),y(this,`createServer`,(function(e){var t,r=d(d(d({token:n.token,appKey:n.appKey,appId:n.appId},e?{sessionId:e}:{}),(0,bn.default)(n.connectParams,Cn)),{},{parameters:(0,yn.default)(n.connectParams,Cn),onConnect:n.connectListener,onDigitalHumanCallback:n.onDigitalHumanCallbackPlus});(t=n.dhServer)!=null&&t.preConnectSuccess?(n.dhServer.connectParams=r,n.dhServer&&n.dhServer.sendPreConnect(r)):n.dhServer&&n.dhServer.createSocket(r)})),y(this,`checkHumanInstansce`,(function(){return n.dhServer?!(n.isPreOpenSession&&!n.dhServer.preConnectSuccess)||(n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:xn.DH_LIB_ERROR,content:{type:Sn.CONNECT_ERROR,msg:{code:4001,errMsg:`webSocket连接中`}}}),!1):(n.onDigitalHumanCallback&&n.onDigitalHumanCallback({status:xn.DH_LIB_ERROR,content:{type:Sn.CONNECT_ERROR,msg:{code:4002,errMsg:`请先初始化数字人实例`}}}),!1)})),y(this,`sendMessage`,(function(e,t){return n.dhServer&&n.dhServer.sendMessage(e,t)})),y(this,`interrupt`,h(f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt(`return`,new Promise((function(e){n.dhServer&&n.dhServer.sendMessage({requestId:_n(),action:`TEXT_RENDER`,body:`<interrupt></interrupt>`,clientTs:new Date().getTime()},(function(){return e()}))})));case 1:case`end`:return e.stop()}}),e)})))),y(this,`textRender`,(function(e){var t=e.requestId,r=e.body,i=e.onCallbackMsg;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:t||_n(),action:`TEXT_RENDER`,body:r,clientTs:new Date().getTime()},i)})),y(this,`textStreamRender`,(function(e){var t=e.requestId,r=e.body,i=e.onCallbackMsg,a=Et.parse(r).first;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:t||_n(),action:`TEXT_STREAM_RENDER`,body:r,clientTs:new Date().getTime()},a?i:null)})),y(this,`audioRender`,(function(e){var t=e.body,r=e.onCallbackMsg;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:_n(),action:`AUDIO_RENDER`,body:t,clientTs:new Date().getTime()},r)})),y(this,`audioStreamRender`,(function(e){var t=e.requestId,r=e.body,i=e.onCallbackMsg;n.checkHumanInstansce()&&n.dhServer&&n.dhServer.sendMessage({requestId:t||_n(),action:`AUDIO_STREAM_RENDER`,body:r,clientTs:new Date().getTime()},i)})),y(this,`textQuery`,(function(e){var t=e.requestId,r=e.body,i=e.onCallbackMsg;n.dhServer&&n.dhServer.sendMessage({requestId:t||_n(),action:`TEXT_QUERY`,body:r,clientTs:new Date().getTime()},i)})),y(this,`destroy`,h(f().mark((function e(){var t;return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.dhServer&&n.dhServer.closeSocket();case 2:n.rtcServer&&n.rtcServer.closeRtc(),fr(),(t=n.recordController)==null||t.destroy(),n.dhServer=null,n.rtcServer=null;case 7:case`end`:return e.stop()}}),e)})))),y(this,`pauseHuman`,(function(){return mr(!1)})),y(this,`playHuman`,(function(){return mr(!0)})),y(this,`muteHuman`,(function(){return pr(!0)})),y(this,`unMuteHuman`,(function(){var e=pr(!1);try{return n.isHuawei?(e.pause(),e.play()):e.paused&&e.play()}catch(e){console.info(e)}}));var r=t.isPreOpenSession,i=r!==void 0&&r,a=t.wsUrl,o=t.renderParams,s=t.onDigitalHumanCallback;
566this.isPreOpenSession=i,this.dhServer=new Ln(a||`wss://open.xiling.baidu.com/cloud/digital-human-demonstration`),this.onDigitalHumanCallback=function(e){e.status===xn.DH_LIB_FULL_STATUS?o!=null&&o.fullStatus&&s&&s(e):s&&s(e)},i?this.dhServer.createSocket({onDigitalHumanCallback:this.onDigitalHumanCallbackPlus},i):this.init(t)}return v(e,[{key:`init`,value:function(e){var t=this,n=e.wrapperId,r=e.token,i=e.appKey,a=e.appId,o=e.connectParams,s=e.renderParams,c=s===void 0?{}:s,l=e.rtcConnectParams,u=e.brtcParams,f=e.rtcServerUrl;if(this.token=r,this.appKey=i,this.appId=a,this.rtcServerUrl=f,this.connectParams=d({autoChromaKey:c?.autoChromaKey||!1},o),!a&&!i&&!r)throw Error(`appId and appKey or token is required`);var p=c.closeLog,m=(dr({autoChromaKey:!!c.autoChromaKey||!(0,vn.default)(c.chromaEffects)})||{}).playerWrapper,h=document.getElementById(n||``);h||console.error(`dom with wrapperId is not find`),m&&h&&h.appendChild(m),gr();var g=d({remotevideoviewid:n,showvideobps:!1,usingvideo:!1,usingaudio:!(o==null||!o.pullAudioFromRtc),aspublisher:!(o==null||!o.pullAudioFromRtc),autopublish:!(o==null||!o.pullAudioFromRtc),usingdatachannel:!0,autoplaymuted:!1},u);this.rtcServer=new sr({closeLog:p,videoWrapperId:ur,rtcConfig:g,bizConfig:{},rtcCallback:{onRemoteVideoComing:this.onRemoteVideoComing,onDigitalHumanCallback:this.onDigitalHumanCallback,onLocalStream:this.onLocalStream}}),(!(0,vn.default)(c?.chromaEffects)||c!=null&&c.autoChromaKey)&&(this.cutoutInstance=new Nr({sourceId:`remotevideo500`,effects:c?.chromaEffects})),(0,vn.default)(l)||(this.rtcConnectParams=l,this.rtcServer.openRtc(l)),o!=null&&o.pullAudioFromRtc?this.recordController=null:this.recordController=new Ir({pickAudioMode:o?.pickAudioMode,onAudioData:function(e){t.wsReadyState===1&&t.sendMessage(e,null)},onError:function(e){t.onDigitalHumanCallback&&t.onDigitalHumanCallback({status:xn.DH_LIB_ERROR,content:{type:Sn.CONNECT_ERROR,msg:{code:-1,errMsg:e.message}}})}})}},{key:`startRecord`,value:function(){var e;(e=this.connectParams)!=null&&e.pullAudioFromRtc?this.rtcServer&&this.rtcServer.muteMicphone(!1):this.recordController&&this.recordController.start()}},{key:`stopRecord`,value:function(){var e;if((e=this.connectParams)!=null&&e.pullAudioFromRtc)return this.rtcServer&&this.rtcServer.muteMicphone(!0),void this.sendMessage({action:`AUDIO_QUERY_INTERRUPT`,requestId:_n(),clientTs:Date.now(),body:``},null);this.recordController&&this.recordController.stop(),this.sendMessage({action:`AUDIO_QUERY_INTERRUPT`,requestId:_n(),clientTs:Date.now(),body:``},null)}}]),e}(),Rr=null,zr=!1,Br=null,Vr=null;function Hr(){return typeof crypto<`u`&&crypto.randomUUID?crypto.randomUUID():`dh-`+Date.now()+`-`+Math.random().toString(16).slice(2)}function Ur(e){var t=[`211868`,`211862`,`211855`,`211852`],n=String(e||``);return t.some(function(e){return n.indexOf(e)!==-1})?{crop:{top:0,left:0,width:1080,height:1920},location:{top:65,left:70,width:270,height:480}}:{crop:{top:0,left:0,width:1920,height:1080},location:{top:40,left:-380,width:1056,height:594}}}function Wr(){Br&&=(clearTimeout(Br),null)}function Gr(){if(Wr(),zr=!1,Rr){try{typeof Rr.destroy==`function`&&Rr.destroy()}catch{}Rr=null}var e=document.getElementById(`ciip-dh-human-wrapper`);e&&(e.innerHTML=``)}window.CIIPDigitalHumanSDK={isReady:function(){return zr&&!!Rr},connect:function(e){e||={},Vr=typeof e.onDisconnect==`function`?e.onDisconnect:null,Gr(),zr=!1;var t=e.wrapperId||`ciip-dh-human-wrapper`,n=document.getElementById(t);if(!n)return e.onError&&e.onError(Error(`SDK wrapper not found`)),Promise.reject(Error(`SDK wrapper not found`));if(n.innerHTML=``,!e.token||!e.figureId||!e.ttsPer){var r=Error(`Missing token, figureId or ttsPer`);return e.onError&&e.onError(r),Promise.reject(r)}var i=Ur(e.figureId),a=e.resolutionWidth==null?400:e.resolutionWidth,o=e.resolutionHeight==null?600:e.resolutionHeight;return new Promise(function(n,r){var s=!1;function c(t){s||(s=!0,Wr(),t?(zr=!1,e.onError&&e.onError(t),r(t)):(zr=!0,e.onReady&&e.onReady(),n()))}try{Rr=new Lr({wrapperId:t,token:e.token,connectParams:{ttsPer:String(e.ttsPer),figureId:String(e.figureId),resolutionHeight:o,resolutionWidth:a,cameraId:1,positionV2:JSON.stringify(i),inactiveDisconnectSec:60,backgroundImageUrl:e.backgroundImageUrl||``},renderParams:{closeLog:!0,autoChromaKey:!0,fullStatus:!0},onDigitalHumanCallback:function(e){var t=e&&e.status,n=e&&e.content;if(n&&n.action===`remotevideoon`||t===`CONNECTED`||t===`READY`){if(Rr&&typeof Rr.unMuteHuman==`function`)try{Rr.unMuteHuman()}catch{}c(null)}n&&n.type===`DISCONNECT_ALERT`&&(zr=!1,Gr(),Vr&&Vr())}}),Rr.createServer(),Br=setTimeout(function(){zr||c(Error(`Digital human connect timeout`))},6e4)}catch(e){c(e)}})},speak:function(e){if(!Rr||!e||!String(e).trim())return Promise.resolve();if(!zr)return Promise.reject(Error(`Digital human not ready`));var t=String(e).match(/[^。!?.!?]+[。!?.!?]?/g)||[String(e)],n=Hr();return t.reduce(function(e,r,i){return e.then(function(){return new Promise(function(e){Rr.textStreamRender({body:JSON.stringify({first:i===0,last:i===t.length-1,text:r}),requestId:n,onCallbackMsg:function(t){(t.action===`FINISHED`||t.action===`RENDER_INTERRUPTED`||t.action===`RENDER_ERROR`)&&e()}}
566),setTimeout(e,300)})})},Promise.resolve())},interrupt:function(){Rr&&typeof Rr.interrupt==`function`&&Rr.interrupt()},mute:function(){if(Rr&&typeof Rr.muteHuman==`function`)return Rr.muteHuman()},unmute:function(){if(Rr&&typeof Rr.unMuteHuman==`function`)return Rr.unMuteHuman()},destroy:function(){Vr=null,Gr()}}})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.