@desivocal/agents-cdn 1.0.20-alpha.1 → 1.0.20-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */n.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var r="18.3.1",a=Symbol.for("react.element"),s=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),p=Symbol.for("react.provider"),v=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),k=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),M=Symbol.for("react.offscreen"),A=Symbol.iterator,U="@@iterator";function V(O){if(O===null||typeof O!="object")return null;var Y=A&&O[A]||O[U];return typeof Y=="function"?Y:null}var j={current:null},I={transition:null},N={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},ne={current:null},X={},se=null;function $(O){se=O}X.setExtraStackFrame=function(O){se=O},X.getCurrentStack=null,X.getStackAddendum=function(){var O="";se&&(O+=se);var Y=X.getCurrentStack;return Y&&(O+=Y()||""),O};var oe=!1,J=!1,xe=!1,ke=!1,Ge=!1,Je={ReactCurrentDispatcher:j,ReactCurrentBatchConfig:I,ReactCurrentOwner:ne};Je.ReactDebugCurrentFrame=X,Je.ReactCurrentActQueue=N;function je(O){{for(var Y=arguments.length,pe=new Array(Y>1?Y-1:0),Te=1;Te<Y;Te++)pe[Te-1]=arguments[Te];He("warn",O,pe)}}function ve(O){{for(var Y=arguments.length,pe=new Array(Y>1?Y-1:0),Te=1;Te<Y;Te++)pe[Te-1]=arguments[Te];He("error",O,pe)}}function He(O,Y,pe){{var Te=Je.ReactDebugCurrentFrame,Ze=Te.getStackAddendum();Ze!==""&&(Y+="%s",pe=pe.concat([Ze]));var Tt=pe.map(function(pt){return String(pt)});Tt.unshift("Warning: "+Y),Function.prototype.apply.call(console[O],console,Tt)}}var z={};function ee(O,Y){{var pe=O.constructor,Te=pe&&(pe.displayName||pe.name)||"ReactClass",Ze=Te+"."+Y;if(z[Ze])return;ve("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",Y,Te),z[Ze]=!0}}var Ce={isMounted:function(O){return!1},enqueueForceUpdate:function(O,Y,pe){ee(O,"forceUpdate")},enqueueReplaceState:function(O,Y,pe,Te){ee(O,"replaceState")},enqueueSetState:function(O,Y,pe,Te){ee(O,"setState")}},H=Object.assign,Ct={};Object.freeze(Ct);function Rt(O,Y,pe){this.props=O,this.context=Y,this.refs=Ct,this.updater=pe||Ce}Rt.prototype.isReactComponent={},Rt.prototype.setState=function(O,Y){if(typeof O!="object"&&typeof O!="function"&&O!=null)throw new Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,O,Y,"setState")},Rt.prototype.forceUpdate=function(O){this.updater.enqueueForceUpdate(this,O,"forceUpdate")};{var ht={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},bt=function(O,Y){Object.defineProperty(Rt.prototype,O,{get:function(){je("%s(...) is deprecated in plain JavaScript React classes. %s",Y[0],Y[1])}})};for(var it in ht)ht.hasOwnProperty(it)&&bt(it,ht[it])}function xt(){}xt.prototype=Rt.prototype;function tn(O,Y,pe){this.props=O,this.context=Y,this.refs=Ct,this.updater=pe||Ce}var qn=tn.prototype=new xt;qn.constructor=tn,H(qn,Rt.prototype),qn.isPureReactComponent=!0;function _r(){var O={current:null};return Object.seal(O),O}var vr=Array.isArray;function Xn(O){return vr(O)}function Nr(O){{var Y=typeof Symbol=="function"&&Symbol.toStringTag,pe=Y&&O[Symbol.toStringTag]||O.constructor.name||"Object";return pe}}function bn(O){try{return Lt(O),!1}catch{return!0}}function Lt(O){return""+O}function Z(O){if(bn(O))return ve("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Nr(O)),Lt(O)}function le(O,Y,pe){var Te=O.displayName;if(Te)return Te;var Ze=Y.displayName||Y.name||"";return Ze!==""?pe+"("+Ze+")":pe}function me(O){return O.displayName||"Context"}function Ve(O){if(O==null)return null;if(typeof O.tag=="number"&&ve("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof O=="function")return O.displayName||O.name||null;if(typeof O=="string")return O;switch(O){case l:return"Fragment";case s:return"Portal";case h:return"Profiler";case c:return"StrictMode";case k:return"Suspense";case T:return"SuspenseList"}if(typeof O=="object")switch(O.$$typeof){case v:var Y=O;return me(Y)+".Consumer";case p:var pe=O;return me(pe._context)+".Provider";case b:return le(O,O.render,"ForwardRef");case E:var Te=O.displayName||null;return Te!==null?Te:Ve(O.type)||"Memo";case R:{var Ze=O,Tt=Ze._payload,pt=Ze._init;try{return Ve(pt(Tt))}catch{return null}}}return null}var ze=Object.prototype.hasOwnProperty,Oe={key:!0,ref:!0,__self:!0,__source:!0},ut,Nt,fe;fe={};function Re(O){if(ze.call(O,"ref")){var Y=Object.getOwnPropertyDescriptor(O,"ref").get;if(Y&&Y.isReactWarning)return!1}return O.ref!==void 0}function vt(O){if(ze.call(O,"key")){var Y=Object.getOwnPropertyDescriptor(O,"key").get;if(Y&&Y.isReactWarning)return!1}return O.key!==void 0}function Ft(O,Y){var pe=function(){ut||(ut=!0,ve("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",Y))};pe.isReactWarning=!0,Object.defineProperty(O,"key",{get:pe,configurable:!0})}function Kt(O,Y){var pe=function(){Nt||(Nt=!0,ve("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",Y))};pe.isReactWarning=!0,Object.defineProperty(O,"ref",{get:pe,configurable:!0})}function Be(O){if(typeof O.ref=="string"&&ne.current&&O.__self&&ne.current.stateNode!==O.__self){var Y=Ve(ne.current.type);fe[Y]||(ve('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',Y,O.ref),fe[Y]=!0)}}var ct=function(O,Y,pe,Te,Ze,Tt,pt){var qt={$$typeof:a,type:O,key:Y,ref:pe,props:pt,_owner:Tt};return qt._store={},Object.defineProperty(qt._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(qt,"_self",{configurable:!1,enumerable:!1,writable:!1,value:Te}),Object.defineProperty(qt,"_source",{configurable:!1,enumerable:!1,writable:!1,value:Ze}),Object.freeze&&(Object.freeze(qt.props),Object.freeze(qt)),qt};function At(O,Y,pe){var Te,Ze={},Tt=null,pt=null,qt=null,dn=null;if(Y!=null){Re(Y)&&(pt=Y.ref,Be(Y)),vt(Y)&&(Z(Y.key),Tt=""+Y.key),qt=Y.__self===void 0?null:Y.__self,dn=Y.__source===void 0?null:Y.__source;for(Te in Y)ze.call(Y,Te)&&!Oe.hasOwnProperty(Te)&&(Ze[Te]=Y[Te])}var Kn=arguments.length-2;if(Kn===1)Ze.children=pe;else if(Kn>1){for(var lr=Array(Kn),ur=0;ur<Kn;ur++)lr[ur]=arguments[ur+2];Object.freeze&&Object.freeze(lr),Ze.children=lr}if(O&&O.defaultProps){var on=O.defaultProps;for(Te in on)Ze[Te]===void 0&&(Ze[Te]=on[Te])}if(Tt||pt){var hr=typeof O=="function"?O.displayName||O.name||"Unknown":O;Tt&&Ft(Ze,hr),pt&&Kt(Ze,hr)}return ct(O,Tt,pt,qt,dn,ne.current,Ze)}function ln(O,Y){var pe=ct(O.type,Y,O.ref,O._self,O._source,O._owner,O.props);return pe}function En(O,Y,pe){if(O==null)throw new Error("React.cloneElement(...): The argument must be a React element, but you passed "+O+".");var Te,Ze=H({},O.props),Tt=O.key,pt=O.ref,qt=O._self,dn=O._source,Kn=O._owner;if(Y!=null){Re(Y)&&(pt=Y.ref,Kn=ne.current),vt(Y)&&(Z(Y.key),Tt=""+Y.key);var lr;O.type&&O.type.defaultProps&&(lr=O.type.defaultProps);for(Te in Y)ze.call(Y,Te)&&!Oe.hasOwnProperty(Te)&&(Y[Te]===void 0&&lr!==void 0?Ze[Te]=lr[Te]:Ze[Te]=Y[Te])}var ur=arguments.length-2;if(ur===1)Ze.children=pe;else if(ur>1){for(var on=Array(ur),hr=0;hr<ur;hr++)on[hr]=arguments[hr+2];Ze.children=on}return ct(O.type,Tt,pt,qt,dn,Kn,Ze)}function un(O){return typeof O=="object"&&O!==null&&O.$$typeof===a}var Dn=".",Wn=":";function Jn(O){var Y=/[=:]/g,pe={"=":"=0",":":"=2"},Te=O.replace(Y,function(Ze){return pe[Ze]});return"$"+Te}var Gn=!1,In=/\/+/g;function Hi(O){return O.replace(In,"$&/")}function Ji(O,Y){return typeof O=="object"&&O!==null&&O.key!=null?(Z(O.key),Jn(""+O.key)):Y.toString(36)}function ea(O,Y,pe,Te,Ze){var Tt=typeof O;(Tt==="undefined"||Tt==="boolean")&&(O=null);var pt=!1;if(O===null)pt=!0;else switch(Tt){case"string":case"number":pt=!0;break;case"object":switch(O.$$typeof){case a:case s:pt=!0}}if(pt){var qt=O,dn=Ze(qt),Kn=Te===""?Dn+Ji(qt,0):Te;if(Xn(dn)){var lr="";Kn!=null&&(lr=Hi(Kn)+"/"),ea(dn,Y,lr,"",function(Lv){return Lv})}else dn!=null&&(un(dn)&&(dn.key&&(!qt||qt.key!==dn.key)&&Z(dn.key),dn=ln(dn,pe+(dn.key&&(!qt||qt.key!==dn.key)?Hi(""+dn.key)+"/":"")+Kn)),Y.push(dn));return 1}var ur,on,hr=0,Wr=Te===""?Dn:Te+Wn;if(Xn(O))for(var Eu=0;Eu<O.length;Eu++)ur=O[Eu],on=Wr+Ji(ur,Eu),hr+=ea(ur,Y,pe,on,Ze);else{var kf=V(O);if(typeof kf=="function"){var Bs=O;kf===Bs.entries&&(Gn||je("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),Gn=!0);for(var Ru=kf.call(Bs),Tf,Mv=0;!(Tf=Ru.next()).done;)ur=Tf.value,on=Wr+Ji(ur,Mv++),hr+=ea(ur,Y,pe,on,Ze)}else if(Tt==="object"){var Pp=String(O);throw new Error("Objects are not valid as a React child (found: "+(Pp==="[object Object]"?"object with keys {"+Object.keys(O).join(", ")+"}":Pp)+"). If you meant to render a collection of children, use an array instead.")}}return hr}function co(O,Y,pe){if(O==null)return O;var Te=[],Ze=0;return ea(O,Te,"","",function(Tt){return Y.call(pe,Tt,Ze++)}),Te}function es(O){var Y=0;return co(O,function(){Y++}),Y}function ts(O,Y,pe){co(O,function(){Y.apply(this,arguments)},pe)}function fo(O){return co(O,function(Y){return Y})||[]}function tt(O){if(!un(O))throw new Error("React.Children.only expected to receive a single React element child.");return O}function Me(O){var Y={$$typeof:v,_currentValue:O,_currentValue2:O,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};Y.Provider={$$typeof:p,_context:Y};var pe=!1,Te=!1,Ze=!1;{var Tt={$$typeof:v,_context:Y};Object.defineProperties(Tt,{Provider:{get:function(){return Te||(Te=!0,ve("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?")),Y.Provider},set:function(pt){Y.Provider=pt}},_currentValue:{get:function(){return Y._currentValue},set:function(pt){Y._currentValue=pt}},_currentValue2:{get:function(){return Y._currentValue2},set:function(pt){Y._currentValue2=pt}},_threadCount:{get:function(){return Y._threadCount},set:function(pt){Y._threadCount=pt}},Consumer:{get:function(){return pe||(pe=!0,ve("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?")),Y.Consumer}},displayName:{get:function(){return Y.displayName},set:function(pt){Ze||(je("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",pt),Ze=!0)}}}),Y.Consumer=Tt}return Y._currentRenderer=null,Y._currentRenderer2=null,Y}var It=-1,Ht=0,Sn=1,jt=2;function Cn(O){if(O._status===It){var Y=O._result,pe=Y();if(pe.then(function(Tt){if(O._status===Ht||O._status===It){var pt=O;pt._status=Sn,pt._result=Tt}},function(Tt){if(O._status===Ht||O._status===It){var pt=O;pt._status=jt,pt._result=Tt}}),O._status===It){var Te=O;Te._status=Ht,Te._result=pe}}if(O._status===Sn){var Ze=O._result;return Ze===void 0&&ve(`lazy: Expected the result of a dynamic import() call. Instead received: %s
17
+ */n.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var r="18.3.1",a=Symbol.for("react.element"),s=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),h=Symbol.for("react.profiler"),p=Symbol.for("react.provider"),v=Symbol.for("react.context"),b=Symbol.for("react.forward_ref"),k=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),E=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),M=Symbol.for("react.offscreen"),A=Symbol.iterator,U="@@iterator";function V(O){if(O===null||typeof O!="object")return null;var Y=A&&O[A]||O[U];return typeof Y=="function"?Y:null}var j={current:null},I={transition:null},N={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},ne={current:null},X={},se=null;function $(O){se=O}X.setExtraStackFrame=function(O){se=O},X.getCurrentStack=null,X.getStackAddendum=function(){var O="";se&&(O+=se);var Y=X.getCurrentStack;return Y&&(O+=Y()||""),O};var oe=!1,J=!1,xe=!1,ke=!1,Ge=!1,Je={ReactCurrentDispatcher:j,ReactCurrentBatchConfig:I,ReactCurrentOwner:ne};Je.ReactDebugCurrentFrame=X,Je.ReactCurrentActQueue=N;function je(O){{for(var Y=arguments.length,pe=new Array(Y>1?Y-1:0),Te=1;Te<Y;Te++)pe[Te-1]=arguments[Te];He("warn",O,pe)}}function ve(O){{for(var Y=arguments.length,pe=new Array(Y>1?Y-1:0),Te=1;Te<Y;Te++)pe[Te-1]=arguments[Te];He("error",O,pe)}}function He(O,Y,pe){{var Te=Je.ReactDebugCurrentFrame,Ze=Te.getStackAddendum();Ze!==""&&(Y+="%s",pe=pe.concat([Ze]));var Tt=pe.map(function(pt){return String(pt)});Tt.unshift("Warning: "+Y),Function.prototype.apply.call(console[O],console,Tt)}}var z={};function ee(O,Y){{var pe=O.constructor,Te=pe&&(pe.displayName||pe.name)||"ReactClass",Ze=Te+"."+Y;if(z[Ze])return;ve("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",Y,Te),z[Ze]=!0}}var Ce={isMounted:function(O){return!1},enqueueForceUpdate:function(O,Y,pe){ee(O,"forceUpdate")},enqueueReplaceState:function(O,Y,pe,Te){ee(O,"replaceState")},enqueueSetState:function(O,Y,pe,Te){ee(O,"setState")}},H=Object.assign,Ct={};Object.freeze(Ct);function Rt(O,Y,pe){this.props=O,this.context=Y,this.refs=Ct,this.updater=pe||Ce}Rt.prototype.isReactComponent={},Rt.prototype.setState=function(O,Y){if(typeof O!="object"&&typeof O!="function"&&O!=null)throw new Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,O,Y,"setState")},Rt.prototype.forceUpdate=function(O){this.updater.enqueueForceUpdate(this,O,"forceUpdate")};{var ht={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},bt=function(O,Y){Object.defineProperty(Rt.prototype,O,{get:function(){je("%s(...) is deprecated in plain JavaScript React classes. %s",Y[0],Y[1])}})};for(var it in ht)ht.hasOwnProperty(it)&&bt(it,ht[it])}function xt(){}xt.prototype=Rt.prototype;function tn(O,Y,pe){this.props=O,this.context=Y,this.refs=Ct,this.updater=pe||Ce}var qn=tn.prototype=new xt;qn.constructor=tn,H(qn,Rt.prototype),qn.isPureReactComponent=!0;function _r(){var O={current:null};return Object.seal(O),O}var vr=Array.isArray;function Xn(O){return vr(O)}function Nr(O){{var Y=typeof Symbol=="function"&&Symbol.toStringTag,pe=Y&&O[Symbol.toStringTag]||O.constructor.name||"Object";return pe}}function bn(O){try{return Lt(O),!1}catch{return!0}}function Lt(O){return""+O}function Z(O){if(bn(O))return ve("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Nr(O)),Lt(O)}function le(O,Y,pe){var Te=O.displayName;if(Te)return Te;var Ze=Y.displayName||Y.name||"";return Ze!==""?pe+"("+Ze+")":pe}function me(O){return O.displayName||"Context"}function Ve(O){if(O==null)return null;if(typeof O.tag=="number"&&ve("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof O=="function")return O.displayName||O.name||null;if(typeof O=="string")return O;switch(O){case l:return"Fragment";case s:return"Portal";case h:return"Profiler";case c:return"StrictMode";case k:return"Suspense";case T:return"SuspenseList"}if(typeof O=="object")switch(O.$$typeof){case v:var Y=O;return me(Y)+".Consumer";case p:var pe=O;return me(pe._context)+".Provider";case b:return le(O,O.render,"ForwardRef");case E:var Te=O.displayName||null;return Te!==null?Te:Ve(O.type)||"Memo";case R:{var Ze=O,Tt=Ze._payload,pt=Ze._init;try{return Ve(pt(Tt))}catch{return null}}}return null}var ze=Object.prototype.hasOwnProperty,Oe={key:!0,ref:!0,__self:!0,__source:!0},ut,Nt,fe;fe={};function Re(O){if(ze.call(O,"ref")){var Y=Object.getOwnPropertyDescriptor(O,"ref").get;if(Y&&Y.isReactWarning)return!1}return O.ref!==void 0}function vt(O){if(ze.call(O,"key")){var Y=Object.getOwnPropertyDescriptor(O,"key").get;if(Y&&Y.isReactWarning)return!1}return O.key!==void 0}function Ft(O,Y){var pe=function(){ut||(ut=!0,ve("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",Y))};pe.isReactWarning=!0,Object.defineProperty(O,"key",{get:pe,configurable:!0})}function Kt(O,Y){var pe=function(){Nt||(Nt=!0,ve("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",Y))};pe.isReactWarning=!0,Object.defineProperty(O,"ref",{get:pe,configurable:!0})}function Be(O){if(typeof O.ref=="string"&&ne.current&&O.__self&&ne.current.stateNode!==O.__self){var Y=Ve(ne.current.type);fe[Y]||(ve('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',Y,O.ref),fe[Y]=!0)}}var ct=function(O,Y,pe,Te,Ze,Tt,pt){var qt={$$typeof:a,type:O,key:Y,ref:pe,props:pt,_owner:Tt};return qt._store={},Object.defineProperty(qt._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(qt,"_self",{configurable:!1,enumerable:!1,writable:!1,value:Te}),Object.defineProperty(qt,"_source",{configurable:!1,enumerable:!1,writable:!1,value:Ze}),Object.freeze&&(Object.freeze(qt.props),Object.freeze(qt)),qt};function At(O,Y,pe){var Te,Ze={},Tt=null,pt=null,qt=null,dn=null;if(Y!=null){Re(Y)&&(pt=Y.ref,Be(Y)),vt(Y)&&(Z(Y.key),Tt=""+Y.key),qt=Y.__self===void 0?null:Y.__self,dn=Y.__source===void 0?null:Y.__source;for(Te in Y)ze.call(Y,Te)&&!Oe.hasOwnProperty(Te)&&(Ze[Te]=Y[Te])}var Kn=arguments.length-2;if(Kn===1)Ze.children=pe;else if(Kn>1){for(var lr=Array(Kn),ur=0;ur<Kn;ur++)lr[ur]=arguments[ur+2];Object.freeze&&Object.freeze(lr),Ze.children=lr}if(O&&O.defaultProps){var on=O.defaultProps;for(Te in on)Ze[Te]===void 0&&(Ze[Te]=on[Te])}if(Tt||pt){var hr=typeof O=="function"?O.displayName||O.name||"Unknown":O;Tt&&Ft(Ze,hr),pt&&Kt(Ze,hr)}return ct(O,Tt,pt,qt,dn,ne.current,Ze)}function ln(O,Y){var pe=ct(O.type,Y,O.ref,O._self,O._source,O._owner,O.props);return pe}function En(O,Y,pe){if(O==null)throw new Error("React.cloneElement(...): The argument must be a React element, but you passed "+O+".");var Te,Ze=H({},O.props),Tt=O.key,pt=O.ref,qt=O._self,dn=O._source,Kn=O._owner;if(Y!=null){Re(Y)&&(pt=Y.ref,Kn=ne.current),vt(Y)&&(Z(Y.key),Tt=""+Y.key);var lr;O.type&&O.type.defaultProps&&(lr=O.type.defaultProps);for(Te in Y)ze.call(Y,Te)&&!Oe.hasOwnProperty(Te)&&(Y[Te]===void 0&&lr!==void 0?Ze[Te]=lr[Te]:Ze[Te]=Y[Te])}var ur=arguments.length-2;if(ur===1)Ze.children=pe;else if(ur>1){for(var on=Array(ur),hr=0;hr<ur;hr++)on[hr]=arguments[hr+2];Ze.children=on}return ct(O.type,Tt,pt,qt,dn,Kn,Ze)}function un(O){return typeof O=="object"&&O!==null&&O.$$typeof===a}var Dn=".",Wn=":";function Jn(O){var Y=/[=:]/g,pe={"=":"=0",":":"=2"},Te=O.replace(Y,function(Ze){return pe[Ze]});return"$"+Te}var Gn=!1,In=/\/+/g;function Hi(O){return O.replace(In,"$&/")}function Ji(O,Y){return typeof O=="object"&&O!==null&&O.key!=null?(Z(O.key),Jn(""+O.key)):Y.toString(36)}function ea(O,Y,pe,Te,Ze){var Tt=typeof O;(Tt==="undefined"||Tt==="boolean")&&(O=null);var pt=!1;if(O===null)pt=!0;else switch(Tt){case"string":case"number":pt=!0;break;case"object":switch(O.$$typeof){case a:case s:pt=!0}}if(pt){var qt=O,dn=Ze(qt),Kn=Te===""?Dn+Ji(qt,0):Te;if(Xn(dn)){var lr="";Kn!=null&&(lr=Hi(Kn)+"/"),ea(dn,Y,lr,"",function(Lv){return Lv})}else dn!=null&&(un(dn)&&(dn.key&&(!qt||qt.key!==dn.key)&&Z(dn.key),dn=ln(dn,pe+(dn.key&&(!qt||qt.key!==dn.key)?Hi(""+dn.key)+"/":"")+Kn)),Y.push(dn));return 1}var ur,on,hr=0,Wr=Te===""?Dn:Te+Wn;if(Xn(O))for(var Eu=0;Eu<O.length;Eu++)ur=O[Eu],on=Wr+Ji(ur,Eu),hr+=ea(ur,Y,pe,on,Ze);else{var kf=V(O);if(typeof kf=="function"){var Bs=O;kf===Bs.entries&&(Gn||je("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),Gn=!0);for(var Ru=kf.call(Bs),Tf,Mv=0;!(Tf=Ru.next()).done;)ur=Tf.value,on=Wr+Ji(ur,Mv++),hr+=ea(ur,Y,pe,on,Ze)}else if(Tt==="object"){var Pp=String(O);throw new Error("Objects are not valid as a React child (found: "+(Pp==="[object Object]"?"object with keys {"+Object.keys(O).join(", ")+"}":Pp)+"). If you meant to render a collection of children, use an array instead.")}}return hr}function co(O,Y,pe){if(O==null)return O;var Te=[],Ze=0;return ea(O,Te,"","",function(Tt){return Y.call(pe,Tt,Ze++)}),Te}function es(O){var Y=0;return co(O,function(){Y++}),Y}function ts(O,Y,pe){co(O,function(){Y.apply(this,arguments)},pe)}function fo(O){return co(O,function(Y){return Y})||[]}function et(O){if(!un(O))throw new Error("React.Children.only expected to receive a single React element child.");return O}function Me(O){var Y={$$typeof:v,_currentValue:O,_currentValue2:O,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};Y.Provider={$$typeof:p,_context:Y};var pe=!1,Te=!1,Ze=!1;{var Tt={$$typeof:v,_context:Y};Object.defineProperties(Tt,{Provider:{get:function(){return Te||(Te=!0,ve("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?")),Y.Provider},set:function(pt){Y.Provider=pt}},_currentValue:{get:function(){return Y._currentValue},set:function(pt){Y._currentValue=pt}},_currentValue2:{get:function(){return Y._currentValue2},set:function(pt){Y._currentValue2=pt}},_threadCount:{get:function(){return Y._threadCount},set:function(pt){Y._threadCount=pt}},Consumer:{get:function(){return pe||(pe=!0,ve("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?")),Y.Consumer}},displayName:{get:function(){return Y.displayName},set:function(pt){Ze||(je("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",pt),Ze=!0)}}}),Y.Consumer=Tt}return Y._currentRenderer=null,Y._currentRenderer2=null,Y}var It=-1,Ht=0,Sn=1,jt=2;function Cn(O){if(O._status===It){var Y=O._result,pe=Y();if(pe.then(function(Tt){if(O._status===Ht||O._status===It){var pt=O;pt._status=Sn,pt._result=Tt}},function(Tt){if(O._status===Ht||O._status===It){var pt=O;pt._status=jt,pt._result=Tt}}),O._status===It){var Te=O;Te._status=Ht,Te._result=pe}}if(O._status===Sn){var Ze=O._result;return Ze===void 0&&ve(`lazy: Expected the result of a dynamic import() call. Instead received: %s
18
18
 
19
19
  Your code should look like:
20
20
  const MyComponent = lazy(() => import('./MyComponent'))
@@ -36,7 +36,7 @@ Check the render method of \``+O+"`."}return""}function yi(O){if(O!==void 0){var
36
36
 
37
37
  Check your code at `+Y+":"+pe+"."}return""}function Ta(O){return O!=null?yi(O.__source):""}var na={};function as(O){var Y=xu();if(!Y){var pe=typeof O=="string"?O:O.displayName||O.name;pe&&(Y=`
38
38
 
39
- Check the top-level render call using <`+pe+">.")}return Y}function Fr(O,Y){if(!(!O._store||O._store.validated||O.key!=null)){O._store.validated=!0;var pe=as(Y);if(!na[pe]){na[pe]=!0;var Te="";O&&O._owner&&O._owner!==ne.current&&(Te=" It was passed a child from "+Ve(O._owner.type)+"."),is(O),ve('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',pe,Te),is(null)}}}function sr(O,Y){if(typeof O=="object"){if(Xn(O))for(var pe=0;pe<O.length;pe++){var Te=O[pe];un(Te)&&Fr(Te,Y)}else if(un(O))O._store&&(O._store.validated=!0);else if(O){var Ze=V(O);if(typeof Ze=="function"&&Ze!==O.entries)for(var Tt=Ze.call(O),pt;!(pt=Tt.next()).done;)un(pt.value)&&Fr(pt.value,Y)}}}function No(O){{var Y=O.type;if(Y==null||typeof Y=="string")return;var pe;if(typeof Y=="function")pe=Y.propTypes;else if(typeof Y=="object"&&(Y.$$typeof===b||Y.$$typeof===E))pe=Y.propTypes;else return;if(pe){var Te=Ve(Y);Rp(pe,O.props,"prop",Te,O)}else if(Y.PropTypes!==void 0&&!Zt){Zt=!0;var Ze=Ve(Y);ve("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",Ze||"Unknown")}typeof Y.getDefaultProps=="function"&&!Y.getDefaultProps.isReactClassApproved&&ve("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function ho(O){{for(var Y=Object.keys(O.props),pe=0;pe<Y.length;pe++){var Te=Y[pe];if(Te!=="children"&&Te!=="key"){is(O),ve("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",Te),is(null);break}}O.ref!==null&&(is(O),ve("Invalid attribute `ref` supplied to `React.Fragment`."),is(null))}}function qi(O,Y,pe){var Te=Le(O);if(!Te){var Ze="";(O===void 0||typeof O=="object"&&O!==null&&Object.keys(O).length===0)&&(Ze+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Tt=Ta(Y);Tt?Ze+=Tt:Ze+=xu();var pt;O===null?pt="null":Xn(O)?pt="array":O!==void 0&&O.$$typeof===a?(pt="<"+(Ve(O.type)||"Unknown")+" />",Ze=" Did you accidentally export a JSX literal instead of a component?"):pt=typeof O,ve("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",pt,Ze)}var qt=At.apply(this,arguments);if(qt==null)return qt;if(Te)for(var dn=2;dn<arguments.length;dn++)sr(arguments[dn],O);return O===l?ho(qt):No(qt),qt}var ra=!1;function Ov(O){var Y=qi.bind(null,O);return Y.type=O,ra||(ra=!0,je("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.")),Object.defineProperty(Y,"type",{enumerable:!1,get:function(){return je("Factory.type is deprecated. Access the class directly before passing it to createFactory."),Object.defineProperty(this,"type",{value:O}),O}}),Y}function qc(O,Y,pe){for(var Te=En.apply(this,arguments),Ze=2;Ze<arguments.length;Ze++)sr(arguments[Ze],Te.type);return No(Te),Te}function wu(O,Y){var pe=I.transition;I.transition={};var Te=I.transition;I.transition._updatedFibers=new Set;try{O()}finally{if(I.transition=pe,pe===null&&Te._updatedFibers){var Ze=Te._updatedFibers.size;Ze>10&&je("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."),Te._updatedFibers.clear()}}}var Wc=!1,Gc=null;function _u(O){if(Gc===null)try{var Y=("require"+Math.random()).slice(0,7),pe=t&&t[Y];Gc=pe.call(t,"timers").setImmediate}catch{Gc=function(Ze){Wc===!1&&(Wc=!0,typeof MessageChannel>"u"&&ve("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var Tt=new MessageChannel;Tt.port1.onmessage=Ze,Tt.port2.postMessage(void 0)}}return Gc(O)}var po=0,mo=!1;function El(O){{var Y=po;po++,N.current===null&&(N.current=[]);var pe=N.isBatchingLegacy,Te;try{if(N.isBatchingLegacy=!0,Te=O(),!pe&&N.didScheduleLegacyUpdate){var Ze=N.current;Ze!==null&&(N.didScheduleLegacyUpdate=!1,zs(Ze))}}catch(on){throw Vs(Y),on}finally{N.isBatchingLegacy=pe}if(Te!==null&&typeof Te=="object"&&typeof Te.then=="function"){var Tt=Te,pt=!1,qt={then:function(on,hr){pt=!0,Tt.then(function(Wr){Vs(Y),po===0?Yc(Wr,on,hr):on(Wr)},function(Wr){Vs(Y),hr(Wr)})}};return!mo&&typeof Promise<"u"&&Promise.resolve().then(function(){}).then(function(){pt||(mo=!0,ve("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),qt}else{var dn=Te;if(Vs(Y),po===0){var Kn=N.current;Kn!==null&&(zs(Kn),N.current=null);var lr={then:function(on,hr){N.current===null?(N.current=[],Yc(dn,on,hr)):on(dn)}};return lr}else{var ur={then:function(on,hr){on(dn)}};return ur}}}}function Vs(O){O!==po-1&&ve("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "),po=O}function Yc(O,Y,pe){{var Te=N.current;if(Te!==null)try{zs(Te),_u(function(){Te.length===0?(N.current=null,Y(O)):Yc(O,Y,pe)})}catch(Ze){pe(Ze)}else Y(O)}}var Rl=!1;function zs(O){if(!Rl){Rl=!0;var Y=0;try{for(;Y<O.length;Y++){var pe=O[Y];do pe=pe(!0);while(pe!==null)}O.length=0}catch(Te){throw O=O.slice(Y+1),Te}finally{Rl=!1}}}var Kc=qi,Cf=qc,go=Ov,Zc={map:co,forEach:ts,count:es,toArray:fo,only:tt};e.Children=Zc,e.Component=Rt,e.Fragment=l,e.Profiler=h,e.PureComponent=tn,e.StrictMode=c,e.Suspense=k,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Je,e.act=El,e.cloneElement=Cf,e.createContext=Me,e.createElement=Kc,e.createFactory=go,e.createRef=_r,e.forwardRef=Er,e.isValidElement=un,e.lazy=er,e.memo=Xe,e.startTransition=wu,e.unstable_act=El,e.useCallback=$i,e.useContext=gn,e.useDebugValue=Rr,e.useDeferredValue=ns,e.useEffect=qr,e.useId=Is,e.useImperativeHandle=Yn,e.useInsertionEffect=yr,e.useLayoutEffect=Cr,e.useMemo=Lo,e.useReducer=kn,e.useRef=cn,e.useState=Jt,e.useSyncExternalStore=wp,e.useTransition=rn,e.version=r,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()}(gg,gg.exports)),gg.exports}var qj={};qj.NODE_ENV==="production"?C1.exports=Hj():C1.exports=$j();var G=C1.exports;const ir=WP(G);/**
39
+ Check the top-level render call using <`+pe+">.")}return Y}function Fr(O,Y){if(!(!O._store||O._store.validated||O.key!=null)){O._store.validated=!0;var pe=as(Y);if(!na[pe]){na[pe]=!0;var Te="";O&&O._owner&&O._owner!==ne.current&&(Te=" It was passed a child from "+Ve(O._owner.type)+"."),is(O),ve('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',pe,Te),is(null)}}}function sr(O,Y){if(typeof O=="object"){if(Xn(O))for(var pe=0;pe<O.length;pe++){var Te=O[pe];un(Te)&&Fr(Te,Y)}else if(un(O))O._store&&(O._store.validated=!0);else if(O){var Ze=V(O);if(typeof Ze=="function"&&Ze!==O.entries)for(var Tt=Ze.call(O),pt;!(pt=Tt.next()).done;)un(pt.value)&&Fr(pt.value,Y)}}}function No(O){{var Y=O.type;if(Y==null||typeof Y=="string")return;var pe;if(typeof Y=="function")pe=Y.propTypes;else if(typeof Y=="object"&&(Y.$$typeof===b||Y.$$typeof===E))pe=Y.propTypes;else return;if(pe){var Te=Ve(Y);Rp(pe,O.props,"prop",Te,O)}else if(Y.PropTypes!==void 0&&!Zt){Zt=!0;var Ze=Ve(Y);ve("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",Ze||"Unknown")}typeof Y.getDefaultProps=="function"&&!Y.getDefaultProps.isReactClassApproved&&ve("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function ho(O){{for(var Y=Object.keys(O.props),pe=0;pe<Y.length;pe++){var Te=Y[pe];if(Te!=="children"&&Te!=="key"){is(O),ve("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",Te),is(null);break}}O.ref!==null&&(is(O),ve("Invalid attribute `ref` supplied to `React.Fragment`."),is(null))}}function qi(O,Y,pe){var Te=Le(O);if(!Te){var Ze="";(O===void 0||typeof O=="object"&&O!==null&&Object.keys(O).length===0)&&(Ze+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Tt=Ta(Y);Tt?Ze+=Tt:Ze+=xu();var pt;O===null?pt="null":Xn(O)?pt="array":O!==void 0&&O.$$typeof===a?(pt="<"+(Ve(O.type)||"Unknown")+" />",Ze=" Did you accidentally export a JSX literal instead of a component?"):pt=typeof O,ve("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",pt,Ze)}var qt=At.apply(this,arguments);if(qt==null)return qt;if(Te)for(var dn=2;dn<arguments.length;dn++)sr(arguments[dn],O);return O===l?ho(qt):No(qt),qt}var ra=!1;function Ov(O){var Y=qi.bind(null,O);return Y.type=O,ra||(ra=!0,je("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.")),Object.defineProperty(Y,"type",{enumerable:!1,get:function(){return je("Factory.type is deprecated. Access the class directly before passing it to createFactory."),Object.defineProperty(this,"type",{value:O}),O}}),Y}function qc(O,Y,pe){for(var Te=En.apply(this,arguments),Ze=2;Ze<arguments.length;Ze++)sr(arguments[Ze],Te.type);return No(Te),Te}function wu(O,Y){var pe=I.transition;I.transition={};var Te=I.transition;I.transition._updatedFibers=new Set;try{O()}finally{if(I.transition=pe,pe===null&&Te._updatedFibers){var Ze=Te._updatedFibers.size;Ze>10&&je("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."),Te._updatedFibers.clear()}}}var Wc=!1,Gc=null;function _u(O){if(Gc===null)try{var Y=("require"+Math.random()).slice(0,7),pe=t&&t[Y];Gc=pe.call(t,"timers").setImmediate}catch{Gc=function(Ze){Wc===!1&&(Wc=!0,typeof MessageChannel>"u"&&ve("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var Tt=new MessageChannel;Tt.port1.onmessage=Ze,Tt.port2.postMessage(void 0)}}return Gc(O)}var po=0,mo=!1;function El(O){{var Y=po;po++,N.current===null&&(N.current=[]);var pe=N.isBatchingLegacy,Te;try{if(N.isBatchingLegacy=!0,Te=O(),!pe&&N.didScheduleLegacyUpdate){var Ze=N.current;Ze!==null&&(N.didScheduleLegacyUpdate=!1,zs(Ze))}}catch(on){throw Vs(Y),on}finally{N.isBatchingLegacy=pe}if(Te!==null&&typeof Te=="object"&&typeof Te.then=="function"){var Tt=Te,pt=!1,qt={then:function(on,hr){pt=!0,Tt.then(function(Wr){Vs(Y),po===0?Yc(Wr,on,hr):on(Wr)},function(Wr){Vs(Y),hr(Wr)})}};return!mo&&typeof Promise<"u"&&Promise.resolve().then(function(){}).then(function(){pt||(mo=!0,ve("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),qt}else{var dn=Te;if(Vs(Y),po===0){var Kn=N.current;Kn!==null&&(zs(Kn),N.current=null);var lr={then:function(on,hr){N.current===null?(N.current=[],Yc(dn,on,hr)):on(dn)}};return lr}else{var ur={then:function(on,hr){on(dn)}};return ur}}}}function Vs(O){O!==po-1&&ve("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "),po=O}function Yc(O,Y,pe){{var Te=N.current;if(Te!==null)try{zs(Te),_u(function(){Te.length===0?(N.current=null,Y(O)):Yc(O,Y,pe)})}catch(Ze){pe(Ze)}else Y(O)}}var Rl=!1;function zs(O){if(!Rl){Rl=!0;var Y=0;try{for(;Y<O.length;Y++){var pe=O[Y];do pe=pe(!0);while(pe!==null)}O.length=0}catch(Te){throw O=O.slice(Y+1),Te}finally{Rl=!1}}}var Kc=qi,Cf=qc,go=Ov,Zc={map:co,forEach:ts,count:es,toArray:fo,only:et};e.Children=Zc,e.Component=Rt,e.Fragment=l,e.Profiler=h,e.PureComponent=tn,e.StrictMode=c,e.Suspense=k,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Je,e.act=El,e.cloneElement=Cf,e.createContext=Me,e.createElement=Kc,e.createFactory=go,e.createRef=_r,e.forwardRef=Er,e.isValidElement=un,e.lazy=er,e.memo=Xe,e.startTransition=wu,e.unstable_act=El,e.useCallback=$i,e.useContext=gn,e.useDebugValue=Rr,e.useDeferredValue=ns,e.useEffect=qr,e.useId=Is,e.useImperativeHandle=Yn,e.useInsertionEffect=yr,e.useLayoutEffect=Cr,e.useMemo=Lo,e.useReducer=kn,e.useRef=cn,e.useState=Jt,e.useSyncExternalStore=wp,e.useTransition=rn,e.version=r,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()}(gg,gg.exports)),gg.exports}var qj={};qj.NODE_ENV==="production"?C1.exports=Hj():C1.exports=$j();var G=C1.exports;const ir=WP(G);/**
40
40
  * @license React
41
41
  * react-jsx-runtime.production.min.js
42
42
  *
@@ -60,7 +60,7 @@ Check the top-level render call using <`+pe+">.")}return Y}function Fr(O,Y){if(!
60
60
 
61
61
  Check the render method of \``+K+"`."}return""}}function co(K){return""}var es={};function ts(K){{var Le=ea();if(!Le){var Xe=typeof K=="string"?K:K.displayName||K.name;Xe&&(Le=`
62
62
 
63
- Check the top-level render call using <`+Xe+">.")}return Le}}function fo(K,Le){{if(!K._store||K._store.validated||K.key!=null)return;K._store.validated=!0;var Xe=ts(Le);if(es[Xe])return;es[Xe]=!0;var ot="";K&&K._owner&&K._owner!==Jn.current&&(ot=" It was passed a child from "+ke(K._owner.type)+"."),In(K),V('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',Xe,ot),In(null)}}function tt(K,Le){{if(typeof K!="object")return;if(Oe(K))for(var Xe=0;Xe<K.length;Xe++){var ot=K[Xe];Ji(ot)&&fo(ot,Le)}else if(Ji(K))K._store&&(K._store.validated=!0);else if(K){var gn=A(K);if(typeof gn=="function"&&gn!==K.entries)for(var Jt=gn.call(K),kn;!(kn=Jt.next()).done;)Ji(kn.value)&&fo(kn.value,Le)}}}function Me(K){{var Le=K.type;if(Le==null||typeof Le=="string")return;var Xe;if(typeof Le=="function")Xe=Le.propTypes;else if(typeof Le=="object"&&(Le.$$typeof===p||Le.$$typeof===k))Xe=Le.propTypes;else return;if(Xe){var ot=ke(Le);Ve(Xe,K.props,"prop",ot,K)}else if(Le.PropTypes!==void 0&&!Hi){Hi=!0;var gn=ke(Le);V("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",gn||"Unknown")}typeof Le.getDefaultProps=="function"&&!Le.getDefaultProps.isReactClassApproved&&V("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function It(K){{for(var Le=Object.keys(K.props),Xe=0;Xe<Le.length;Xe++){var ot=Le[Xe];if(ot!=="children"&&ot!=="key"){In(K),V("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",ot),In(null);break}}K.ref!==null&&(In(K),V("Invalid attribute `ref` supplied to `React.Fragment`."),In(null))}}var Ht={};function Sn(K,Le,Xe,ot,gn,Jt){{var kn=oe(K);if(!kn){var cn="";(K===void 0||typeof K=="object"&&K!==null&&Object.keys(K).length===0)&&(cn+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var qr=co();qr?cn+=qr:cn+=ea();var yr;K===null?yr="null":Oe(K)?yr="array":K!==void 0&&K.$$typeof===n?(yr="<"+(ke(K.type)||"Unknown")+" />",cn=" Did you accidentally export a JSX literal instead of a component?"):yr=typeof K,V("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",yr,cn)}var Cr=Wn(K,Le,Xe,gn,Jt);if(Cr==null)return Cr;if(kn){var $i=Le.children;if($i!==void 0)if(ot)if(Oe($i)){for(var Lo=0;Lo<$i.length;Lo++)tt($i[Lo],K);Object.freeze&&Object.freeze($i)}else V("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else tt($i,K)}if(Lt.call(Le,"key")){var Yn=ke(K),Rr=Object.keys(Le).filter(function(Is){return Is!=="key"}),rn=Rr.length>0?"{key: someKey, "+Rr.join(": ..., ")+": ...}":"{key: someKey}";if(!Ht[Yn+rn]){var ns=Rr.length>0?"{"+Rr.join(": ..., ")+": ...}":"{}";V(`A props object containing a "key" prop is being spread into JSX:
63
+ Check the top-level render call using <`+Xe+">.")}return Le}}function fo(K,Le){{if(!K._store||K._store.validated||K.key!=null)return;K._store.validated=!0;var Xe=ts(Le);if(es[Xe])return;es[Xe]=!0;var ot="";K&&K._owner&&K._owner!==Jn.current&&(ot=" It was passed a child from "+ke(K._owner.type)+"."),In(K),V('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',Xe,ot),In(null)}}function et(K,Le){{if(typeof K!="object")return;if(Oe(K))for(var Xe=0;Xe<K.length;Xe++){var ot=K[Xe];Ji(ot)&&fo(ot,Le)}else if(Ji(K))K._store&&(K._store.validated=!0);else if(K){var gn=A(K);if(typeof gn=="function"&&gn!==K.entries)for(var Jt=gn.call(K),kn;!(kn=Jt.next()).done;)Ji(kn.value)&&fo(kn.value,Le)}}}function Me(K){{var Le=K.type;if(Le==null||typeof Le=="string")return;var Xe;if(typeof Le=="function")Xe=Le.propTypes;else if(typeof Le=="object"&&(Le.$$typeof===p||Le.$$typeof===k))Xe=Le.propTypes;else return;if(Xe){var ot=ke(Le);Ve(Xe,K.props,"prop",ot,K)}else if(Le.PropTypes!==void 0&&!Hi){Hi=!0;var gn=ke(Le);V("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",gn||"Unknown")}typeof Le.getDefaultProps=="function"&&!Le.getDefaultProps.isReactClassApproved&&V("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function It(K){{for(var Le=Object.keys(K.props),Xe=0;Xe<Le.length;Xe++){var ot=Le[Xe];if(ot!=="children"&&ot!=="key"){In(K),V("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",ot),In(null);break}}K.ref!==null&&(In(K),V("Invalid attribute `ref` supplied to `React.Fragment`."),In(null))}}var Ht={};function Sn(K,Le,Xe,ot,gn,Jt){{var kn=oe(K);if(!kn){var cn="";(K===void 0||typeof K=="object"&&K!==null&&Object.keys(K).length===0)&&(cn+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var qr=co();qr?cn+=qr:cn+=ea();var yr;K===null?yr="null":Oe(K)?yr="array":K!==void 0&&K.$$typeof===n?(yr="<"+(ke(K.type)||"Unknown")+" />",cn=" Did you accidentally export a JSX literal instead of a component?"):yr=typeof K,V("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",yr,cn)}var Cr=Wn(K,Le,Xe,gn,Jt);if(Cr==null)return Cr;if(kn){var $i=Le.children;if($i!==void 0)if(ot)if(Oe($i)){for(var Lo=0;Lo<$i.length;Lo++)et($i[Lo],K);Object.freeze&&Object.freeze($i)}else V("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else et($i,K)}if(Lt.call(Le,"key")){var Yn=ke(K),Rr=Object.keys(Le).filter(function(Is){return Is!=="key"}),rn=Rr.length>0?"{key: someKey, "+Rr.join(": ..., ")+": ...}":"{key: someKey}";if(!Ht[Yn+rn]){var ns=Rr.length>0?"{"+Rr.join(": ..., ")+": ...}":"{}";V(`A props object containing a "key" prop is being spread into JSX:
64
64
  let props = %s;
65
65
  <%s {...props} />
66
66
  React keys must be passed directly to JSX without using spread:
@@ -93,7 +93,7 @@ React keys must be passed directly to JSX without using spread:
93
93
  `+ee+u}var H=!1;function Ct(u,d){if(!u||H)return"";H=!0;var g=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(d)if(d=function(){throw Error()},Object.defineProperty(d.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(d,[])}catch(ye){var S=ye}Reflect.construct(u,[],d)}else{try{d.call()}catch(ye){S=ye}u.call(d.prototype)}else{try{throw Error()}catch(ye){S=ye}u()}}catch(ye){if(ye&&S&&typeof ye.stack=="string"){for(var x=ye.stack.split(`
94
94
  `),_=S.stack.split(`
95
95
  `),L=x.length-1,q=_.length-1;1<=L&&0<=q&&x[L]!==_[q];)q--;for(;1<=L&&0<=q;L--,q--)if(x[L]!==_[q]){if(L!==1||q!==1)do if(L--,q--,0>q||x[L]!==_[q]){var te=`
96
- `+x[L].replace(" at new "," at ");return u.displayName&&te.includes("<anonymous>")&&(te=te.replace("<anonymous>",u.displayName)),te}while(1<=L&&0<=q);break}}}finally{H=!1,Error.prepareStackTrace=g}return(u=u?u.displayName||u.name:"")?Ce(u):""}function Rt(u){switch(u.tag){case 5:return Ce(u.type);case 16:return Ce("Lazy");case 13:return Ce("Suspense");case 19:return Ce("SuspenseList");case 0:case 2:case 15:return u=Ct(u.type,!1),u;case 11:return u=Ct(u.type.render,!1),u;case 1:return u=Ct(u.type,!0),u;default:return""}}function ht(u){if(u==null)return null;if(typeof u=="function")return u.displayName||u.name||null;if(typeof u=="string")return u;switch(u){case ne:return"Fragment";case N:return"Portal";case se:return"Profiler";case X:return"StrictMode";case xe:return"Suspense";case ke:return"SuspenseList"}if(typeof u=="object")switch(u.$$typeof){case oe:return(u.displayName||"Context")+".Consumer";case $:return(u._context.displayName||"Context")+".Provider";case J:var d=u.render;return u=u.displayName,u||(u=d.displayName||d.name||"",u=u!==""?"ForwardRef("+u+")":"ForwardRef"),u;case Ge:return d=u.displayName||null,d!==null?d:ht(u.type)||"Memo";case Je:d=u._payload,u=u._init;try{return ht(u(d))}catch{}}return null}function bt(u){var d=u.type;switch(u.tag){case 24:return"Cache";case 9:return(d.displayName||"Context")+".Consumer";case 10:return(d._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return u=d.render,u=u.displayName||u.name||"",d.displayName||(u!==""?"ForwardRef("+u+")":"ForwardRef");case 7:return"Fragment";case 5:return d;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ht(d);case 8:return d===X?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof d=="function")return d.displayName||d.name||null;if(typeof d=="string")return d}return null}function it(u){switch(typeof u){case"boolean":case"number":case"string":case"undefined":return u;case"object":return u;default:return""}}function xt(u){var d=u.type;return(u=u.nodeName)&&u.toLowerCase()==="input"&&(d==="checkbox"||d==="radio")}function tn(u){var d=xt(u)?"checked":"value",g=Object.getOwnPropertyDescriptor(u.constructor.prototype,d),S=""+u[d];if(!u.hasOwnProperty(d)&&typeof g<"u"&&typeof g.get=="function"&&typeof g.set=="function"){var x=g.get,_=g.set;return Object.defineProperty(u,d,{configurable:!0,get:function(){return x.call(this)},set:function(L){S=""+L,_.call(this,L)}}),Object.defineProperty(u,d,{enumerable:g.enumerable}),{getValue:function(){return S},setValue:function(L){S=""+L},stopTracking:function(){u._valueTracker=null,delete u[d]}}}}function qn(u){u._valueTracker||(u._valueTracker=tn(u))}function _r(u){if(!u)return!1;var d=u._valueTracker;if(!d)return!0;var g=d.getValue(),S="";return u&&(S=xt(u)?u.checked?"true":"false":u.value),u=S,u!==g?(d.setValue(u),!0):!1}function vr(u){if(u=u||(typeof document<"u"?document:void 0),typeof u>"u")return null;try{return u.activeElement||u.body}catch{return u.body}}function Xn(u,d){var g=d.checked;return z({},d,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:g??u._wrapperState.initialChecked})}function Nr(u,d){var g=d.defaultValue==null?"":d.defaultValue,S=d.checked!=null?d.checked:d.defaultChecked;g=it(d.value!=null?d.value:g),u._wrapperState={initialChecked:S,initialValue:g,controlled:d.type==="checkbox"||d.type==="radio"?d.checked!=null:d.value!=null}}function bn(u,d){d=d.checked,d!=null&&V(u,"checked",d,!1)}function Lt(u,d){bn(u,d);var g=it(d.value),S=d.type;if(g!=null)S==="number"?(g===0&&u.value===""||u.value!=g)&&(u.value=""+g):u.value!==""+g&&(u.value=""+g);else if(S==="submit"||S==="reset"){u.removeAttribute("value");return}d.hasOwnProperty("value")?le(u,d.type,g):d.hasOwnProperty("defaultValue")&&le(u,d.type,it(d.defaultValue)),d.checked==null&&d.defaultChecked!=null&&(u.defaultChecked=!!d.defaultChecked)}function Z(u,d,g){if(d.hasOwnProperty("value")||d.hasOwnProperty("defaultValue")){var S=d.type;if(!(S!=="submit"&&S!=="reset"||d.value!==void 0&&d.value!==null))return;d=""+u._wrapperState.initialValue,g||d===u.value||(u.value=d),u.defaultValue=d}g=u.name,g!==""&&(u.name=""),u.defaultChecked=!!u._wrapperState.initialChecked,g!==""&&(u.name=g)}function le(u,d,g){(d!=="number"||vr(u.ownerDocument)!==u)&&(g==null?u.defaultValue=""+u._wrapperState.initialValue:u.defaultValue!==""+g&&(u.defaultValue=""+g))}var me=Array.isArray;function Ve(u,d,g,S){if(u=u.options,d){d={};for(var x=0;x<g.length;x++)d["$"+g[x]]=!0;for(g=0;g<u.length;g++)x=d.hasOwnProperty("$"+u[g].value),u[g].selected!==x&&(u[g].selected=x),x&&S&&(u[g].defaultSelected=!0)}else{for(g=""+it(g),d=null,x=0;x<u.length;x++){if(u[x].value===g){u[x].selected=!0,S&&(u[x].defaultSelected=!0);return}d!==null||u[x].disabled||(d=u[x])}d!==null&&(d.selected=!0)}}function ze(u,d){if(d.dangerouslySetInnerHTML!=null)throw Error(n(91));return z({},d,{value:void 0,defaultValue:void 0,children:""+u._wrapperState.initialValue})}function Oe(u,d){var g=d.value;if(g==null){if(g=d.children,d=d.defaultValue,g!=null){if(d!=null)throw Error(n(92));if(me(g)){if(1<g.length)throw Error(n(93));g=g[0]}d=g}d==null&&(d=""),g=d}u._wrapperState={initialValue:it(g)}}function ut(u,d){var g=it(d.value),S=it(d.defaultValue);g!=null&&(g=""+g,g!==u.value&&(u.value=g),d.defaultValue==null&&u.defaultValue!==g&&(u.defaultValue=g)),S!=null&&(u.defaultValue=""+S)}function Nt(u){var d=u.textContent;d===u._wrapperState.initialValue&&d!==""&&d!==null&&(u.value=d)}function fe(u){switch(u){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Re(u,d){return u==null||u==="http://www.w3.org/1999/xhtml"?fe(d):u==="http://www.w3.org/2000/svg"&&d==="foreignObject"?"http://www.w3.org/1999/xhtml":u}var vt,Ft=function(u){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(d,g,S,x){MSApp.execUnsafeLocalFunction(function(){return u(d,g,S,x)})}:u}(function(u,d){if(u.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in u)u.innerHTML=d;else{for(vt=vt||document.createElement("div"),vt.innerHTML="<svg>"+d.valueOf().toString()+"</svg>",d=vt.firstChild;u.firstChild;)u.removeChild(u.firstChild);for(;d.firstChild;)u.appendChild(d.firstChild)}});function Kt(u,d){if(d){var g=u.firstChild;if(g&&g===u.lastChild&&g.nodeType===3){g.nodeValue=d;return}}u.textContent=d}var Be={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ct=["Webkit","ms","Moz","O"];Object.keys(Be).forEach(function(u){ct.forEach(function(d){d=d+u.charAt(0).toUpperCase()+u.substring(1),Be[d]=Be[u]})});function At(u,d,g){return d==null||typeof d=="boolean"||d===""?"":g||typeof d!="number"||d===0||Be.hasOwnProperty(u)&&Be[u]?(""+d).trim():d+"px"}function ln(u,d){u=u.style;for(var g in d)if(d.hasOwnProperty(g)){var S=g.indexOf("--")===0,x=At(g,d[g],S);g==="float"&&(g="cssFloat"),S?u.setProperty(g,x):u[g]=x}}var En=z({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function un(u,d){if(d){if(En[u]&&(d.children!=null||d.dangerouslySetInnerHTML!=null))throw Error(n(137,u));if(d.dangerouslySetInnerHTML!=null){if(d.children!=null)throw Error(n(60));if(typeof d.dangerouslySetInnerHTML!="object"||!("__html"in d.dangerouslySetInnerHTML))throw Error(n(61))}if(d.style!=null&&typeof d.style!="object")throw Error(n(62))}}function Dn(u,d){if(u.indexOf("-")===-1)return typeof d.is=="string";switch(u){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Wn=null;function Jn(u){return u=u.target||u.srcElement||window,u.correspondingUseElement&&(u=u.correspondingUseElement),u.nodeType===3?u.parentNode:u}var Gn=null,In=null,Hi=null;function Ji(u){if(u=Uf(u)){if(typeof Gn!="function")throw Error(n(280));var d=u.stateNode;d&&(d=Ws(d),Gn(u.stateNode,u.type,d))}}function ea(u){In?Hi?Hi.push(u):Hi=[u]:In=u}function co(){if(In){var u=In,d=Hi;if(Hi=In=null,Ji(u),d)for(u=0;u<d.length;u++)Ji(d[u])}}function es(u,d){return u(d)}function ts(){}var fo=!1;function tt(u,d,g){if(fo)return u(d,g);fo=!0;try{return es(u,d,g)}finally{fo=!1,(In!==null||Hi!==null)&&(ts(),co())}}function Me(u,d){var g=u.stateNode;if(g===null)return null;var S=Ws(g);if(S===null)return null;g=S[d];e:switch(d){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(S=!S.disabled)||(u=u.type,S=!(u==="button"||u==="input"||u==="select"||u==="textarea")),u=!S;break e;default:u=!1}if(u)return null;if(g&&typeof g!="function")throw Error(n(231,d,typeof g));return g}var It=!1;if(c)try{var Ht={};Object.defineProperty(Ht,"passive",{get:function(){It=!0}}),window.addEventListener("test",Ht,Ht),window.removeEventListener("test",Ht,Ht)}catch{It=!1}function Sn(u,d,g,S,x,_,L,q,te){var ye=Array.prototype.slice.call(arguments,3);try{d.apply(g,ye)}catch(Fe){this.onError(Fe)}}var jt=!1,Cn=null,er=!1,Er=null,K={onError:function(u){jt=!0,Cn=u}};function Le(u,d,g,S,x,_,L,q,te){jt=!1,Cn=null,Sn.apply(K,arguments)}function Xe(u,d,g,S,x,_,L,q,te){if(Le.apply(this,arguments),jt){if(jt){var ye=Cn;jt=!1,Cn=null}else throw Error(n(198));er||(er=!0,Er=ye)}}function ot(u){var d=u,g=u;if(u.alternate)for(;d.return;)d=d.return;else{u=d;do d=u,d.flags&4098&&(g=d.return),u=d.return;while(u)}return d.tag===3?g:null}function gn(u){if(u.tag===13){var d=u.memoizedState;if(d===null&&(u=u.alternate,u!==null&&(d=u.memoizedState)),d!==null)return d.dehydrated}return null}function Jt(u){if(ot(u)!==u)throw Error(n(188))}function kn(u){var d=u.alternate;if(!d){if(d=ot(u),d===null)throw Error(n(188));return d!==u?null:u}for(var g=u,S=d;;){var x=g.return;if(x===null)break;var _=x.alternate;if(_===null){if(S=x.return,S!==null){g=S;continue}break}if(x.child===_.child){for(_=x.child;_;){if(_===g)return Jt(x),u;if(_===S)return Jt(x),d;_=_.sibling}throw Error(n(188))}if(g.return!==S.return)g=x,S=_;else{for(var L=!1,q=x.child;q;){if(q===g){L=!0,g=x,S=_;break}if(q===S){L=!0,S=x,g=_;break}q=q.sibling}if(!L){for(q=_.child;q;){if(q===g){L=!0,g=_,S=x;break}if(q===S){L=!0,S=_,g=x;break}q=q.sibling}if(!L)throw Error(n(189))}}if(g.alternate!==S)throw Error(n(190))}if(g.tag!==3)throw Error(n(188));return g.stateNode.current===g?u:d}function cn(u){return u=kn(u),u!==null?qr(u):null}function qr(u){if(u.tag===5||u.tag===6)return u;for(u=u.child;u!==null;){var d=qr(u);if(d!==null)return d;u=u.sibling}return null}var yr=e.unstable_scheduleCallback,Cr=e.unstable_cancelCallback,$i=e.unstable_shouldYield,Lo=e.unstable_requestPaint,Yn=e.unstable_now,Rr=e.unstable_getCurrentPriorityLevel,rn=e.unstable_ImmediatePriority,ns=e.unstable_UserBlockingPriority,Is=e.unstable_NormalPriority,wp=e.unstable_LowPriority,Us=e.unstable_IdlePriority,Tl=null,Ca=null;function gf(u){if(Ca&&typeof Ca.onCommitFiberRoot=="function")try{Ca.onCommitFiberRoot(Tl,u,void 0,(u.current.flags&128)===128)}catch{}}var ta=Math.clz32?Math.clz32:Ep,vf=Math.log,_p=Math.LN2;function Ep(u){return u>>>=0,u===0?32:31-(vf(u)/_p|0)|0}var Fs=64,xl=4194304;function ka(u){switch(u&-u){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return u&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return u&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return u}}function rs(u,d){var g=u.pendingLanes;if(g===0)return 0;var S=0,x=u.suspendedLanes,_=u.pingedLanes,L=g&268435455;if(L!==0){var q=L&~x;q!==0?S=ka(q):(_&=L,_!==0&&(S=ka(_)))}else L=g&~x,L!==0?S=ka(L):_!==0&&(S=ka(_));if(S===0)return 0;if(d!==0&&d!==S&&!(d&x)&&(x=S&-S,_=d&-d,x>=_||x===16&&(_&4194240)!==0))return d;if(S&4&&(S|=g&16),d=u.entangledLanes,d!==0)for(u=u.entanglements,d&=S;0<d;)g=31-ta(d),x=1<<g,S|=u[g],d&=~x;return S}function wl(u,d){switch(u){case 1:case 2:case 4:return d+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return d+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Hc(u,d){for(var g=u.suspendedLanes,S=u.pingedLanes,x=u.expirationTimes,_=u.pendingLanes;0<_;){var L=31-ta(_),q=1<<L,te=x[L];te===-1?(!(q&g)||q&S)&&(x[L]=wl(q,d)):te<=d&&(u.expiredLanes|=q),_&=~q}}function js(u){return u=u.pendingLanes&-1073741825,u!==0?u:u&1073741824?1073741824:0}function ku(){var u=Fs;return Fs<<=1,!(Fs&4194240)&&(Fs=64),u}function Tu(u){for(var d=[],g=0;31>g;g++)d.push(u);return d}function _l(u,d,g){u.pendingLanes|=d,d!==536870912&&(u.suspendedLanes=0,u.pingedLanes=0),u=u.eventTimes,d=31-ta(d),u[d]=g}function yf(u,d){var g=u.pendingLanes&~d;u.pendingLanes=d,u.suspendedLanes=0,u.pingedLanes=0,u.expiredLanes&=d,u.mutableReadLanes&=d,u.entangledLanes&=d,d=u.entanglements;var S=u.eventTimes;for(u=u.expirationTimes;0<g;){var x=31-ta(g),_=1<<x;d[x]=0,S[x]=-1,u[x]=-1,g&=~_}}function bf(u,d){var g=u.entangledLanes|=d;for(u=u.entanglements;g;){var S=31-ta(g),x=1<<S;x&d|u[S]&d&&(u[S]|=d),g&=~x}}var An=0;function Sf(u){return u&=-u,1<u?4<u?u&268435455?16:536870912:4:1}var $c,On,Rp,is,Zt,xu=!1,yi=[],Ta=null,na=null,as=null,Fr=new Map,sr=new Map,No=[],ho="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function qi(u,d){switch(u){case"focusin":case"focusout":Ta=null;break;case"dragenter":case"dragleave":na=null;break;case"mouseover":case"mouseout":as=null;break;case"pointerover":case"pointerout":Fr.delete(d.pointerId);break;case"gotpointercapture":case"lostpointercapture":sr.delete(d.pointerId)}}function ra(u,d,g,S,x,_){return u===null||u.nativeEvent!==_?(u={blockedOn:d,domEventName:g,eventSystemFlags:S,nativeEvent:_,targetContainers:[x]},d!==null&&(d=Uf(d),d!==null&&On(d)),u):(u.eventSystemFlags|=S,d=u.targetContainers,x!==null&&d.indexOf(x)===-1&&d.push(x),u)}function Ov(u,d,g,S,x){switch(d){case"focusin":return Ta=ra(Ta,u,d,g,S,x),!0;case"dragenter":return na=ra(na,u,d,g,S,x),!0;case"mouseover":return as=ra(as,u,d,g,S,x),!0;case"pointerover":var _=x.pointerId;return Fr.set(_,ra(Fr.get(_)||null,u,d,g,S,x)),!0;case"gotpointercapture":return _=x.pointerId,sr.set(_,ra(sr.get(_)||null,u,d,g,S,x)),!0}return!1}function qc(u){var d=Mu(u.target);if(d!==null){var g=ot(d);if(g!==null){if(d=g.tag,d===13){if(d=gn(g),d!==null){u.blockedOn=d,Zt(u.priority,function(){Rp(g)});return}}else if(d===3&&g.stateNode.current.memoizedState.isDehydrated){u.blockedOn=g.tag===3?g.stateNode.containerInfo:null;return}}}u.blockedOn=null}function wu(u){if(u.blockedOn!==null)return!1;for(var d=u.targetContainers;0<d.length;){var g=Kc(u.domEventName,u.eventSystemFlags,d[0],u.nativeEvent);if(g===null){g=u.nativeEvent;var S=new g.constructor(g.type,g);Wn=S,g.target.dispatchEvent(S),Wn=null}else return d=Uf(g),d!==null&&On(d),u.blockedOn=g,!1;d.shift()}return!0}function Wc(u,d,g){wu(u)&&g.delete(d)}function Gc(){xu=!1,Ta!==null&&wu(Ta)&&(Ta=null),na!==null&&wu(na)&&(na=null),as!==null&&wu(as)&&(as=null),Fr.forEach(Wc),sr.forEach(Wc)}function _u(u,d){u.blockedOn===d&&(u.blockedOn=null,xu||(xu=!0,e.unstable_scheduleCallback(e.unstable_NormalPriority,Gc)))}function po(u){function d(x){return _u(x,u)}if(0<yi.length){_u(yi[0],u);for(var g=1;g<yi.length;g++){var S=yi[g];S.blockedOn===u&&(S.blockedOn=null)}}for(Ta!==null&&_u(Ta,u),na!==null&&_u(na,u),as!==null&&_u(as,u),Fr.forEach(d),sr.forEach(d),g=0;g<No.length;g++)S=No[g],S.blockedOn===u&&(S.blockedOn=null);for(;0<No.length&&(g=No[0],g.blockedOn===null);)qc(g),g.blockedOn===null&&No.shift()}var mo=j.ReactCurrentBatchConfig,El=!0;function Vs(u,d,g,S){var x=An,_=mo.transition;mo.transition=null;try{An=1,Rl(u,d,g,S)}finally{An=x,mo.transition=_}}function Yc(u,d,g,S){var x=An,_=mo.transition;mo.transition=null;try{An=4,Rl(u,d,g,S)}finally{An=x,mo.transition=_}}function Rl(u,d,g,S){if(El){var x=Kc(u,d,g,S);if(x===null)qv(u,d,S,zs,g),qi(u,S);else if(Ov(x,u,d,g,S))S.stopPropagation();else if(qi(u,S),d&4&&-1<ho.indexOf(u)){for(;x!==null;){var _=Uf(x);if(_!==null&&$c(_),_=Kc(u,d,g,S),_===null&&qv(u,d,S,zs,g),_===x)break;x=_}x!==null&&S.stopPropagation()}else qv(u,d,S,null,g)}}var zs=null;function Kc(u,d,g,S){if(zs=null,u=Jn(S),u=Mu(u),u!==null)if(d=ot(u),d===null)u=null;else if(g=d.tag,g===13){if(u=gn(d),u!==null)return u;u=null}else if(g===3){if(d.stateNode.current.memoizedState.isDehydrated)return d.tag===3?d.stateNode.containerInfo:null;u=null}else d!==u&&(u=null);return zs=u,null}function Cf(u){switch(u){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Rr()){case rn:return 1;case ns:return 4;case Is:case wp:return 16;case Us:return 536870912;default:return 16}default:return 16}}var go=null,Zc=null,O=null;function Y(){if(O)return O;var u,d=Zc,g=d.length,S,x="value"in go?go.value:go.textContent,_=x.length;for(u=0;u<g&&d[u]===x[u];u++);var L=g-u;for(S=1;S<=L&&d[g-S]===x[_-S];S++);return O=x.slice(u,1<S?1-S:void 0)}function pe(u){var d=u.keyCode;return"charCode"in u?(u=u.charCode,u===0&&d===13&&(u=13)):u=d,u===10&&(u=13),32<=u||u===13?u:0}function Te(){return!0}function Ze(){return!1}function Tt(u){function d(g,S,x,_,L){this._reactName=g,this._targetInst=x,this.type=S,this.nativeEvent=_,this.target=L,this.currentTarget=null;for(var q in u)u.hasOwnProperty(q)&&(g=u[q],this[q]=g?g(_):_[q]);return this.isDefaultPrevented=(_.defaultPrevented!=null?_.defaultPrevented:_.returnValue===!1)?Te:Ze,this.isPropagationStopped=Ze,this}return z(d.prototype,{preventDefault:function(){this.defaultPrevented=!0;var g=this.nativeEvent;g&&(g.preventDefault?g.preventDefault():typeof g.returnValue!="unknown"&&(g.returnValue=!1),this.isDefaultPrevented=Te)},stopPropagation:function(){var g=this.nativeEvent;g&&(g.stopPropagation?g.stopPropagation():typeof g.cancelBubble!="unknown"&&(g.cancelBubble=!0),this.isPropagationStopped=Te)},persist:function(){},isPersistent:Te}),d}var pt={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(u){return u.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},qt=Tt(pt),dn=z({},pt,{view:0,detail:0}),Kn=Tt(dn),lr,ur,on,hr=z({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Io,button:0,buttons:0,relatedTarget:function(u){return u.relatedTarget===void 0?u.fromElement===u.srcElement?u.toElement:u.fromElement:u.relatedTarget},movementX:function(u){return"movementX"in u?u.movementX:(u!==on&&(on&&u.type==="mousemove"?(lr=u.screenX-on.screenX,ur=u.screenY-on.screenY):ur=lr=0,on=u),lr)},movementY:function(u){return"movementY"in u?u.movementY:ur}}),Wr=Tt(hr),Eu=z({},hr,{dataTransfer:0}),kf=Tt(Eu),Bs=z({},dn,{relatedTarget:0}),Ru=Tt(Bs),Tf=z({},pt,{animationName:0,elapsedTime:0,pseudoElement:0}),Mv=Tt(Tf),Pp=z({},pt,{clipboardData:function(u){return"clipboardData"in u?u.clipboardData:window.clipboardData}}),Lv=Tt(Pp),PS=z({},pt,{data:0}),Dp=Tt(PS),DS={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},AS={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},OS={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function P_(u){var d=this.nativeEvent;return d.getModifierState?d.getModifierState(u):(u=OS[u])?!!d[u]:!1}function Io(){return P_}var D_=z({},dn,{key:function(u){if(u.key){var d=DS[u.key]||u.key;if(d!=="Unidentified")return d}return u.type==="keypress"?(u=pe(u),u===13?"Enter":String.fromCharCode(u)):u.type==="keydown"||u.type==="keyup"?AS[u.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Io,charCode:function(u){return u.type==="keypress"?pe(u):0},keyCode:function(u){return u.type==="keydown"||u.type==="keyup"?u.keyCode:0},which:function(u){return u.type==="keypress"?pe(u):u.type==="keydown"||u.type==="keyup"?u.keyCode:0}}),Nv=Tt(D_),Iv=z({},hr,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Ap=Tt(Iv),A_=z({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Io}),Op=Tt(A_),MS=z({},pt,{propertyName:0,elapsedTime:0,pseudoElement:0}),xa=Tt(MS),Hs=z({},hr,{deltaX:function(u){return"deltaX"in u?u.deltaX:"wheelDeltaX"in u?-u.wheelDeltaX:0},deltaY:function(u){return"deltaY"in u?u.deltaY:"wheelDeltaY"in u?-u.wheelDeltaY:"wheelDelta"in u?-u.wheelDelta:0},deltaZ:0,deltaMode:0}),ti=Tt(Hs),$s=[9,13,27,32],xf=c&&"CompositionEvent"in window,Pl=null;c&&"documentMode"in document&&(Pl=document.documentMode);var O_=c&&"TextEvent"in window&&!Pl,Qc=c&&(!xf||Pl&&8<Pl&&11>=Pl),LS=" ",NS=!1;function Mp(u,d){switch(u){case"keyup":return $s.indexOf(d.keyCode)!==-1;case"keydown":return d.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function IS(u){return u=u.detail,typeof u=="object"&&"data"in u?u.data:null}var Xc=!1;function M_(u,d){switch(u){case"compositionend":return IS(d);case"keypress":return d.which!==32?null:(NS=!0,LS);case"textInput":return u=d.data,u===LS&&NS?null:u;default:return null}}function US(u,d){if(Xc)return u==="compositionend"||!xf&&Mp(u,d)?(u=Y(),O=Zc=go=null,Xc=!1,u):null;switch(u){case"paste":return null;case"keypress":if(!(d.ctrlKey||d.altKey||d.metaKey)||d.ctrlKey&&d.altKey){if(d.char&&1<d.char.length)return d.char;if(d.which)return String.fromCharCode(d.which)}return null;case"compositionend":return Qc&&d.locale!=="ko"?null:d.data;default:return null}}var L_={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function FS(u){var d=u&&u.nodeName&&u.nodeName.toLowerCase();return d==="input"?!!L_[u.type]:d==="textarea"}function jS(u,d,g,S){ea(S),d=Lf(d,"onChange"),0<d.length&&(g=new qt("onChange","change",null,g,S),u.push({event:g,listeners:d}))}var Jc=null,os=null;function Uv(u){Up(u,0)}function wf(u){var d=Ot(u);if(_r(d))return u}function VS(u,d){if(u==="change")return d}var zS=!1;if(c){var Fv;if(c){var jv="oninput"in document;if(!jv){var BS=document.createElement("div");BS.setAttribute("oninput","return;"),jv=typeof BS.oninput=="function"}Fv=jv}else Fv=!1;zS=Fv&&(!document.documentMode||9<document.documentMode)}function HS(){Jc&&(Jc.detachEvent("onpropertychange",$S),os=Jc=null)}function $S(u){if(u.propertyName==="value"&&wf(os)){var d=[];jS(d,os,u,Jn(u)),tt(Uv,d)}}function N_(u,d,g){u==="focusin"?(HS(),Jc=d,os=g,Jc.attachEvent("onpropertychange",$S)):u==="focusout"&&HS()}function I_(u){if(u==="selectionchange"||u==="keyup"||u==="keydown")return wf(os)}function qS(u,d){if(u==="click")return wf(d)}function U_(u,d){if(u==="input"||u==="change")return wf(d)}function WS(u,d){return u===d&&(u!==0||1/u===1/d)||u!==u&&d!==d}var Uo=typeof Object.is=="function"?Object.is:WS;function _f(u,d){if(Uo(u,d))return!0;if(typeof u!="object"||u===null||typeof d!="object"||d===null)return!1;var g=Object.keys(u),S=Object.keys(d);if(g.length!==S.length)return!1;for(S=0;S<g.length;S++){var x=g[S];if(!h.call(d,x)||!Uo(u[x],d[x]))return!1}return!0}function GS(u){for(;u&&u.firstChild;)u=u.firstChild;return u}function YS(u,d){var g=GS(u);u=0;for(var S;g;){if(g.nodeType===3){if(S=u+g.textContent.length,u<=d&&S>=d)return{node:g,offset:d-u};u=S}e:{for(;g;){if(g.nextSibling){g=g.nextSibling;break e}g=g.parentNode}g=void 0}g=GS(g)}}function Lp(u,d){return u&&d?u===d?!0:u&&u.nodeType===3?!1:d&&d.nodeType===3?Lp(u,d.parentNode):"contains"in u?u.contains(d):u.compareDocumentPosition?!!(u.compareDocumentPosition(d)&16):!1:!1}function Dl(){for(var u=window,d=vr();d instanceof u.HTMLIFrameElement;){try{var g=typeof d.contentWindow.location.href=="string"}catch{g=!1}if(g)u=d.contentWindow;else break;d=vr(u.document)}return d}function ed(u){var d=u&&u.nodeName&&u.nodeName.toLowerCase();return d&&(d==="input"&&(u.type==="text"||u.type==="search"||u.type==="tel"||u.type==="url"||u.type==="password")||d==="textarea"||u.contentEditable==="true")}function KS(u){var d=Dl(),g=u.focusedElem,S=u.selectionRange;if(d!==g&&g&&g.ownerDocument&&Lp(g.ownerDocument.documentElement,g)){if(S!==null&&ed(g)){if(d=S.start,u=S.end,u===void 0&&(u=d),"selectionStart"in g)g.selectionStart=d,g.selectionEnd=Math.min(u,g.value.length);else if(u=(d=g.ownerDocument||document)&&d.defaultView||window,u.getSelection){u=u.getSelection();var x=g.textContent.length,_=Math.min(S.start,x);S=S.end===void 0?_:Math.min(S.end,x),!u.extend&&_>S&&(x=S,S=_,_=x),x=YS(g,_);var L=YS(g,S);x&&L&&(u.rangeCount!==1||u.anchorNode!==x.node||u.anchorOffset!==x.offset||u.focusNode!==L.node||u.focusOffset!==L.offset)&&(d=d.createRange(),d.setStart(x.node,x.offset),u.removeAllRanges(),_>S?(u.addRange(d),u.extend(L.node,L.offset)):(d.setEnd(L.node,L.offset),u.addRange(d)))}}for(d=[],u=g;u=u.parentNode;)u.nodeType===1&&d.push({element:u,left:u.scrollLeft,top:u.scrollTop});for(typeof g.focus=="function"&&g.focus(),g=0;g<d.length;g++)u=d[g],u.element.scrollLeft=u.left,u.element.scrollTop=u.top}}var td=c&&"documentMode"in document&&11>=document.documentMode,nd=null,Vv=null,Ef=null,zv=!1;function ZS(u,d,g){var S=g.window===g?g.document:g.nodeType===9?g:g.ownerDocument;zv||nd==null||nd!==vr(S)||(S=nd,"selectionStart"in S&&ed(S)?S={start:S.selectionStart,end:S.selectionEnd}:(S=(S.ownerDocument&&S.ownerDocument.defaultView||window).getSelection(),S={anchorNode:S.anchorNode,anchorOffset:S.anchorOffset,focusNode:S.focusNode,focusOffset:S.focusOffset}),Ef&&_f(Ef,S)||(Ef=S,S=Lf(Vv,"onSelect"),0<S.length&&(d=new qt("onSelect","select",null,d,g),u.push({event:d,listeners:S}),d.target=nd)))}function Rf(u,d){var g={};return g[u.toLowerCase()]=d.toLowerCase(),g["Webkit"+u]="webkit"+d,g["Moz"+u]="moz"+d,g}var rd={animationend:Rf("Animation","AnimationEnd"),animationiteration:Rf("Animation","AnimationIteration"),animationstart:Rf("Animation","AnimationStart"),transitionend:Rf("Transition","TransitionEnd")},Np={},Wi={};c&&(Wi=document.createElement("div").style,"AnimationEvent"in window||(delete rd.animationend.animation,delete rd.animationiteration.animation,delete rd.animationstart.animation),"TransitionEvent"in window||delete rd.transitionend.transition);function Pf(u){if(Np[u])return Np[u];if(!rd[u])return u;var d=rd[u],g;for(g in d)if(d.hasOwnProperty(g)&&g in Wi)return Np[u]=d[g];return u}var QS=Pf("animationend"),XS=Pf("animationiteration"),JS=Pf("animationstart"),eC=Pf("transitionend"),tC=new Map,Bv="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function ss(u,d){tC.set(u,d),s(d,[u])}for(var Pu=0;Pu<Bv.length;Pu++){var Hv=Bv[Pu],Df=Hv.toLowerCase(),F_=Hv[0].toUpperCase()+Hv.slice(1);ss(Df,"on"+F_)}ss(QS,"onAnimationEnd"),ss(XS,"onAnimationIteration"),ss(JS,"onAnimationStart"),ss("dblclick","onDoubleClick"),ss("focusin","onFocus"),ss("focusout","onBlur"),ss(eC,"onTransitionEnd"),l("onMouseEnter",["mouseout","mouseover"]),l("onMouseLeave",["mouseout","mouseover"]),l("onPointerEnter",["pointerout","pointerover"]),l("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Af="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),j_=new Set("cancel close invalid load scroll toggle".split(" ").concat(Af));function Ip(u,d,g){var S=u.type||"unknown-event";u.currentTarget=g,Xe(S,d,void 0,u),u.currentTarget=null}function Up(u,d){d=(d&4)!==0;for(var g=0;g<u.length;g++){var S=u[g],x=S.event;S=S.listeners;e:{var _=void 0;if(d)for(var L=S.length-1;0<=L;L--){var q=S[L],te=q.instance,ye=q.currentTarget;if(q=q.listener,te!==_&&x.isPropagationStopped())break e;Ip(x,q,ye),_=te}else for(L=0;L<S.length;L++){if(q=S[L],te=q.instance,ye=q.currentTarget,q=q.listener,te!==_&&x.isPropagationStopped())break e;Ip(x,q,ye),_=te}}}if(er)throw u=Er,er=!1,Er=null,u}function Zn(u,d){var g=d[Wv];g===void 0&&(g=d[Wv]=new Set);var S=u+"__bubble";g.has(S)||($v(d,u,2,!1),g.add(S))}function Al(u,d,g){var S=0;d&&(S|=4),$v(g,u,S,d)}var Of="_reactListening"+Math.random().toString(36).slice(2);function Mf(u){if(!u[Of]){u[Of]=!0,r.forEach(function(g){g!=="selectionchange"&&(j_.has(g)||Al(g,!1,u),Al(g,!0,u))});var d=u.nodeType===9?u:u.ownerDocument;d===null||d[Of]||(d[Of]=!0,Al("selectionchange",!1,d))}}function $v(u,d,g,S){switch(Cf(d)){case 1:var x=Vs;break;case 4:x=Yc;break;default:x=Rl}g=x.bind(null,d,g,u),x=void 0,!It||d!=="touchstart"&&d!=="touchmove"&&d!=="wheel"||(x=!0),S?x!==void 0?u.addEventListener(d,g,{capture:!0,passive:x}):u.addEventListener(d,g,!0):x!==void 0?u.addEventListener(d,g,{passive:x}):u.addEventListener(d,g,!1)}function qv(u,d,g,S,x){var _=S;if(!(d&1)&&!(d&2)&&S!==null)e:for(;;){if(S===null)return;var L=S.tag;if(L===3||L===4){var q=S.stateNode.containerInfo;if(q===x||q.nodeType===8&&q.parentNode===x)break;if(L===4)for(L=S.return;L!==null;){var te=L.tag;if((te===3||te===4)&&(te=L.stateNode.containerInfo,te===x||te.nodeType===8&&te.parentNode===x))return;L=L.return}for(;q!==null;){if(L=Mu(q),L===null)return;if(te=L.tag,te===5||te===6){S=_=L;continue e}q=q.parentNode}}S=S.return}tt(function(){var ye=_,Fe=Jn(g),$e=[];e:{var Ue=tC.get(u);if(Ue!==void 0){var mt=qt,wt=u;switch(u){case"keypress":if(pe(g)===0)break e;case"keydown":case"keyup":mt=Nv;break;case"focusin":wt="focus",mt=Ru;break;case"focusout":wt="blur",mt=Ru;break;case"beforeblur":case"afterblur":mt=Ru;break;case"click":if(g.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":mt=Wr;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":mt=kf;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":mt=Op;break;case QS:case XS:case JS:mt=Mv;break;case eC:mt=xa;break;case"scroll":mt=Kn;break;case"wheel":mt=ti;break;case"copy":case"cut":case"paste":mt=Lv;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":mt=Ap}var Et=(d&4)!==0,Zr=!Et&&u==="scroll",ue=Et?Ue!==null?Ue+"Capture":null:Ue;Et=[];for(var ie=ye,he;ie!==null;){he=ie;var Ke=he.stateNode;if(he.tag===5&&Ke!==null&&(he=Ke,ue!==null&&(Ke=Me(ie,ue),Ke!=null&&Et.push(id(ie,Ke,he)))),Zr)break;ie=ie.return}0<Et.length&&(Ue=new mt(Ue,wt,null,g,Fe),$e.push({event:Ue,listeners:Et}))}}if(!(d&7)){e:{if(Ue=u==="mouseover"||u==="pointerover",mt=u==="mouseout"||u==="pointerout",Ue&&g!==Wn&&(wt=g.relatedTarget||g.fromElement)&&(Mu(wt)||wt[qs]))break e;if((mt||Ue)&&(Ue=Fe.window===Fe?Fe:(Ue=Fe.ownerDocument)?Ue.defaultView||Ue.parentWindow:window,mt?(wt=g.relatedTarget||g.toElement,mt=ye,wt=wt?Mu(wt):null,wt!==null&&(Zr=ot(wt),wt!==Zr||wt.tag!==5&&wt.tag!==6)&&(wt=null)):(mt=null,wt=ye),mt!==wt)){if(Et=Wr,Ke="onMouseLeave",ue="onMouseEnter",ie="mouse",(u==="pointerout"||u==="pointerover")&&(Et=Ap,Ke="onPointerLeave",ue="onPointerEnter",ie="pointer"),Zr=mt==null?Ue:Ot(mt),he=wt==null?Ue:Ot(wt),Ue=new Et(Ke,ie+"leave",mt,g,Fe),Ue.target=Zr,Ue.relatedTarget=he,Ke=null,Mu(Fe)===ye&&(Et=new Et(ue,ie+"enter",wt,g,Fe),Et.target=he,Et.relatedTarget=Zr,Ke=Et),Zr=Ke,mt&&wt)t:{for(Et=mt,ue=wt,ie=0,he=Et;he;he=Du(he))ie++;for(he=0,Ke=ue;Ke;Ke=Du(Ke))he++;for(;0<ie-he;)Et=Du(Et),ie--;for(;0<he-ie;)ue=Du(ue),he--;for(;ie--;){if(Et===ue||ue!==null&&Et===ue.alternate)break t;Et=Du(Et),ue=Du(ue)}Et=null}else Et=null;mt!==null&&Fp($e,Ue,mt,Et,!1),wt!==null&&Zr!==null&&Fp($e,Zr,wt,Et,!0)}}e:{if(Ue=ye?Ot(ye):window,mt=Ue.nodeName&&Ue.nodeName.toLowerCase(),mt==="select"||mt==="input"&&Ue.type==="file")var dt=VS;else if(FS(Ue))if(zS)dt=U_;else{dt=I_;var Ut=N_}else(mt=Ue.nodeName)&&mt.toLowerCase()==="input"&&(Ue.type==="checkbox"||Ue.type==="radio")&&(dt=qS);if(dt&&(dt=dt(u,ye))){jS($e,dt,g,Fe);break e}Ut&&Ut(u,Ue,ye),u==="focusout"&&(Ut=Ue._wrapperState)&&Ut.controlled&&Ue.type==="number"&&le(Ue,"number",Ue.value)}switch(Ut=ye?Ot(ye):window,u){case"focusin":(FS(Ut)||Ut.contentEditable==="true")&&(nd=Ut,Vv=ye,Ef=null);break;case"focusout":Ef=Vv=nd=null;break;case"mousedown":zv=!0;break;case"contextmenu":case"mouseup":case"dragend":zv=!1,ZS($e,g,Fe);break;case"selectionchange":if(td)break;case"keydown":case"keyup":ZS($e,g,Fe)}var zt;if(xf)e:{switch(u){case"compositionstart":var Qt="onCompositionStart";break e;case"compositionend":Qt="onCompositionEnd";break e;case"compositionupdate":Qt="onCompositionUpdate";break e}Qt=void 0}else Xc?Mp(u,g)&&(Qt="onCompositionEnd"):u==="keydown"&&g.keyCode===229&&(Qt="onCompositionStart");Qt&&(Qc&&g.locale!=="ko"&&(Xc||Qt!=="onCompositionStart"?Qt==="onCompositionEnd"&&Xc&&(zt=Y()):(go=Fe,Zc="value"in go?go.value:go.textContent,Xc=!0)),Ut=Lf(ye,Qt),0<Ut.length&&(Qt=new Dp(Qt,u,null,g,Fe),$e.push({event:Qt,listeners:Ut}),zt?Qt.data=zt:(zt=IS(g),zt!==null&&(Qt.data=zt)))),(zt=O_?M_(u,g):US(u,g))&&(ye=Lf(ye,"onBeforeInput"),0<ye.length&&(Fe=new Dp("onBeforeInput","beforeinput",null,g,Fe),$e.push({event:Fe,listeners:ye}),Fe.data=zt))}Up($e,d)})}function id(u,d,g){return{instance:u,listener:d,currentTarget:g}}function Lf(u,d){for(var g=d+"Capture",S=[];u!==null;){var x=u,_=x.stateNode;x.tag===5&&_!==null&&(x=_,_=Me(u,g),_!=null&&S.unshift(id(u,_,x)),_=Me(u,d),_!=null&&S.push(id(u,_,x))),u=u.return}return S}function Du(u){if(u===null)return null;do u=u.return;while(u&&u.tag!==5);return u||null}function Fp(u,d,g,S,x){for(var _=d._reactName,L=[];g!==null&&g!==S;){var q=g,te=q.alternate,ye=q.stateNode;if(te!==null&&te===S)break;q.tag===5&&ye!==null&&(q=ye,x?(te=Me(g,_),te!=null&&L.unshift(id(g,te,q))):x||(te=Me(g,_),te!=null&&L.push(id(g,te,q)))),g=g.return}L.length!==0&&u.push({event:d,listeners:L})}var V_=/\r\n?/g,nC=/\u0000|\uFFFD/g;function rC(u){return(typeof u=="string"?u:""+u).replace(V_,`
96
+ `+x[L].replace(" at new "," at ");return u.displayName&&te.includes("<anonymous>")&&(te=te.replace("<anonymous>",u.displayName)),te}while(1<=L&&0<=q);break}}}finally{H=!1,Error.prepareStackTrace=g}return(u=u?u.displayName||u.name:"")?Ce(u):""}function Rt(u){switch(u.tag){case 5:return Ce(u.type);case 16:return Ce("Lazy");case 13:return Ce("Suspense");case 19:return Ce("SuspenseList");case 0:case 2:case 15:return u=Ct(u.type,!1),u;case 11:return u=Ct(u.type.render,!1),u;case 1:return u=Ct(u.type,!0),u;default:return""}}function ht(u){if(u==null)return null;if(typeof u=="function")return u.displayName||u.name||null;if(typeof u=="string")return u;switch(u){case ne:return"Fragment";case N:return"Portal";case se:return"Profiler";case X:return"StrictMode";case xe:return"Suspense";case ke:return"SuspenseList"}if(typeof u=="object")switch(u.$$typeof){case oe:return(u.displayName||"Context")+".Consumer";case $:return(u._context.displayName||"Context")+".Provider";case J:var d=u.render;return u=u.displayName,u||(u=d.displayName||d.name||"",u=u!==""?"ForwardRef("+u+")":"ForwardRef"),u;case Ge:return d=u.displayName||null,d!==null?d:ht(u.type)||"Memo";case Je:d=u._payload,u=u._init;try{return ht(u(d))}catch{}}return null}function bt(u){var d=u.type;switch(u.tag){case 24:return"Cache";case 9:return(d.displayName||"Context")+".Consumer";case 10:return(d._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return u=d.render,u=u.displayName||u.name||"",d.displayName||(u!==""?"ForwardRef("+u+")":"ForwardRef");case 7:return"Fragment";case 5:return d;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ht(d);case 8:return d===X?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof d=="function")return d.displayName||d.name||null;if(typeof d=="string")return d}return null}function it(u){switch(typeof u){case"boolean":case"number":case"string":case"undefined":return u;case"object":return u;default:return""}}function xt(u){var d=u.type;return(u=u.nodeName)&&u.toLowerCase()==="input"&&(d==="checkbox"||d==="radio")}function tn(u){var d=xt(u)?"checked":"value",g=Object.getOwnPropertyDescriptor(u.constructor.prototype,d),S=""+u[d];if(!u.hasOwnProperty(d)&&typeof g<"u"&&typeof g.get=="function"&&typeof g.set=="function"){var x=g.get,_=g.set;return Object.defineProperty(u,d,{configurable:!0,get:function(){return x.call(this)},set:function(L){S=""+L,_.call(this,L)}}),Object.defineProperty(u,d,{enumerable:g.enumerable}),{getValue:function(){return S},setValue:function(L){S=""+L},stopTracking:function(){u._valueTracker=null,delete u[d]}}}}function qn(u){u._valueTracker||(u._valueTracker=tn(u))}function _r(u){if(!u)return!1;var d=u._valueTracker;if(!d)return!0;var g=d.getValue(),S="";return u&&(S=xt(u)?u.checked?"true":"false":u.value),u=S,u!==g?(d.setValue(u),!0):!1}function vr(u){if(u=u||(typeof document<"u"?document:void 0),typeof u>"u")return null;try{return u.activeElement||u.body}catch{return u.body}}function Xn(u,d){var g=d.checked;return z({},d,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:g??u._wrapperState.initialChecked})}function Nr(u,d){var g=d.defaultValue==null?"":d.defaultValue,S=d.checked!=null?d.checked:d.defaultChecked;g=it(d.value!=null?d.value:g),u._wrapperState={initialChecked:S,initialValue:g,controlled:d.type==="checkbox"||d.type==="radio"?d.checked!=null:d.value!=null}}function bn(u,d){d=d.checked,d!=null&&V(u,"checked",d,!1)}function Lt(u,d){bn(u,d);var g=it(d.value),S=d.type;if(g!=null)S==="number"?(g===0&&u.value===""||u.value!=g)&&(u.value=""+g):u.value!==""+g&&(u.value=""+g);else if(S==="submit"||S==="reset"){u.removeAttribute("value");return}d.hasOwnProperty("value")?le(u,d.type,g):d.hasOwnProperty("defaultValue")&&le(u,d.type,it(d.defaultValue)),d.checked==null&&d.defaultChecked!=null&&(u.defaultChecked=!!d.defaultChecked)}function Z(u,d,g){if(d.hasOwnProperty("value")||d.hasOwnProperty("defaultValue")){var S=d.type;if(!(S!=="submit"&&S!=="reset"||d.value!==void 0&&d.value!==null))return;d=""+u._wrapperState.initialValue,g||d===u.value||(u.value=d),u.defaultValue=d}g=u.name,g!==""&&(u.name=""),u.defaultChecked=!!u._wrapperState.initialChecked,g!==""&&(u.name=g)}function le(u,d,g){(d!=="number"||vr(u.ownerDocument)!==u)&&(g==null?u.defaultValue=""+u._wrapperState.initialValue:u.defaultValue!==""+g&&(u.defaultValue=""+g))}var me=Array.isArray;function Ve(u,d,g,S){if(u=u.options,d){d={};for(var x=0;x<g.length;x++)d["$"+g[x]]=!0;for(g=0;g<u.length;g++)x=d.hasOwnProperty("$"+u[g].value),u[g].selected!==x&&(u[g].selected=x),x&&S&&(u[g].defaultSelected=!0)}else{for(g=""+it(g),d=null,x=0;x<u.length;x++){if(u[x].value===g){u[x].selected=!0,S&&(u[x].defaultSelected=!0);return}d!==null||u[x].disabled||(d=u[x])}d!==null&&(d.selected=!0)}}function ze(u,d){if(d.dangerouslySetInnerHTML!=null)throw Error(n(91));return z({},d,{value:void 0,defaultValue:void 0,children:""+u._wrapperState.initialValue})}function Oe(u,d){var g=d.value;if(g==null){if(g=d.children,d=d.defaultValue,g!=null){if(d!=null)throw Error(n(92));if(me(g)){if(1<g.length)throw Error(n(93));g=g[0]}d=g}d==null&&(d=""),g=d}u._wrapperState={initialValue:it(g)}}function ut(u,d){var g=it(d.value),S=it(d.defaultValue);g!=null&&(g=""+g,g!==u.value&&(u.value=g),d.defaultValue==null&&u.defaultValue!==g&&(u.defaultValue=g)),S!=null&&(u.defaultValue=""+S)}function Nt(u){var d=u.textContent;d===u._wrapperState.initialValue&&d!==""&&d!==null&&(u.value=d)}function fe(u){switch(u){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Re(u,d){return u==null||u==="http://www.w3.org/1999/xhtml"?fe(d):u==="http://www.w3.org/2000/svg"&&d==="foreignObject"?"http://www.w3.org/1999/xhtml":u}var vt,Ft=function(u){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(d,g,S,x){MSApp.execUnsafeLocalFunction(function(){return u(d,g,S,x)})}:u}(function(u,d){if(u.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in u)u.innerHTML=d;else{for(vt=vt||document.createElement("div"),vt.innerHTML="<svg>"+d.valueOf().toString()+"</svg>",d=vt.firstChild;u.firstChild;)u.removeChild(u.firstChild);for(;d.firstChild;)u.appendChild(d.firstChild)}});function Kt(u,d){if(d){var g=u.firstChild;if(g&&g===u.lastChild&&g.nodeType===3){g.nodeValue=d;return}}u.textContent=d}var Be={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ct=["Webkit","ms","Moz","O"];Object.keys(Be).forEach(function(u){ct.forEach(function(d){d=d+u.charAt(0).toUpperCase()+u.substring(1),Be[d]=Be[u]})});function At(u,d,g){return d==null||typeof d=="boolean"||d===""?"":g||typeof d!="number"||d===0||Be.hasOwnProperty(u)&&Be[u]?(""+d).trim():d+"px"}function ln(u,d){u=u.style;for(var g in d)if(d.hasOwnProperty(g)){var S=g.indexOf("--")===0,x=At(g,d[g],S);g==="float"&&(g="cssFloat"),S?u.setProperty(g,x):u[g]=x}}var En=z({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function un(u,d){if(d){if(En[u]&&(d.children!=null||d.dangerouslySetInnerHTML!=null))throw Error(n(137,u));if(d.dangerouslySetInnerHTML!=null){if(d.children!=null)throw Error(n(60));if(typeof d.dangerouslySetInnerHTML!="object"||!("__html"in d.dangerouslySetInnerHTML))throw Error(n(61))}if(d.style!=null&&typeof d.style!="object")throw Error(n(62))}}function Dn(u,d){if(u.indexOf("-")===-1)return typeof d.is=="string";switch(u){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Wn=null;function Jn(u){return u=u.target||u.srcElement||window,u.correspondingUseElement&&(u=u.correspondingUseElement),u.nodeType===3?u.parentNode:u}var Gn=null,In=null,Hi=null;function Ji(u){if(u=Uf(u)){if(typeof Gn!="function")throw Error(n(280));var d=u.stateNode;d&&(d=Ws(d),Gn(u.stateNode,u.type,d))}}function ea(u){In?Hi?Hi.push(u):Hi=[u]:In=u}function co(){if(In){var u=In,d=Hi;if(Hi=In=null,Ji(u),d)for(u=0;u<d.length;u++)Ji(d[u])}}function es(u,d){return u(d)}function ts(){}var fo=!1;function et(u,d,g){if(fo)return u(d,g);fo=!0;try{return es(u,d,g)}finally{fo=!1,(In!==null||Hi!==null)&&(ts(),co())}}function Me(u,d){var g=u.stateNode;if(g===null)return null;var S=Ws(g);if(S===null)return null;g=S[d];e:switch(d){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(S=!S.disabled)||(u=u.type,S=!(u==="button"||u==="input"||u==="select"||u==="textarea")),u=!S;break e;default:u=!1}if(u)return null;if(g&&typeof g!="function")throw Error(n(231,d,typeof g));return g}var It=!1;if(c)try{var Ht={};Object.defineProperty(Ht,"passive",{get:function(){It=!0}}),window.addEventListener("test",Ht,Ht),window.removeEventListener("test",Ht,Ht)}catch{It=!1}function Sn(u,d,g,S,x,_,L,q,te){var ye=Array.prototype.slice.call(arguments,3);try{d.apply(g,ye)}catch(Fe){this.onError(Fe)}}var jt=!1,Cn=null,er=!1,Er=null,K={onError:function(u){jt=!0,Cn=u}};function Le(u,d,g,S,x,_,L,q,te){jt=!1,Cn=null,Sn.apply(K,arguments)}function Xe(u,d,g,S,x,_,L,q,te){if(Le.apply(this,arguments),jt){if(jt){var ye=Cn;jt=!1,Cn=null}else throw Error(n(198));er||(er=!0,Er=ye)}}function ot(u){var d=u,g=u;if(u.alternate)for(;d.return;)d=d.return;else{u=d;do d=u,d.flags&4098&&(g=d.return),u=d.return;while(u)}return d.tag===3?g:null}function gn(u){if(u.tag===13){var d=u.memoizedState;if(d===null&&(u=u.alternate,u!==null&&(d=u.memoizedState)),d!==null)return d.dehydrated}return null}function Jt(u){if(ot(u)!==u)throw Error(n(188))}function kn(u){var d=u.alternate;if(!d){if(d=ot(u),d===null)throw Error(n(188));return d!==u?null:u}for(var g=u,S=d;;){var x=g.return;if(x===null)break;var _=x.alternate;if(_===null){if(S=x.return,S!==null){g=S;continue}break}if(x.child===_.child){for(_=x.child;_;){if(_===g)return Jt(x),u;if(_===S)return Jt(x),d;_=_.sibling}throw Error(n(188))}if(g.return!==S.return)g=x,S=_;else{for(var L=!1,q=x.child;q;){if(q===g){L=!0,g=x,S=_;break}if(q===S){L=!0,S=x,g=_;break}q=q.sibling}if(!L){for(q=_.child;q;){if(q===g){L=!0,g=_,S=x;break}if(q===S){L=!0,S=_,g=x;break}q=q.sibling}if(!L)throw Error(n(189))}}if(g.alternate!==S)throw Error(n(190))}if(g.tag!==3)throw Error(n(188));return g.stateNode.current===g?u:d}function cn(u){return u=kn(u),u!==null?qr(u):null}function qr(u){if(u.tag===5||u.tag===6)return u;for(u=u.child;u!==null;){var d=qr(u);if(d!==null)return d;u=u.sibling}return null}var yr=e.unstable_scheduleCallback,Cr=e.unstable_cancelCallback,$i=e.unstable_shouldYield,Lo=e.unstable_requestPaint,Yn=e.unstable_now,Rr=e.unstable_getCurrentPriorityLevel,rn=e.unstable_ImmediatePriority,ns=e.unstable_UserBlockingPriority,Is=e.unstable_NormalPriority,wp=e.unstable_LowPriority,Us=e.unstable_IdlePriority,Tl=null,Ca=null;function gf(u){if(Ca&&typeof Ca.onCommitFiberRoot=="function")try{Ca.onCommitFiberRoot(Tl,u,void 0,(u.current.flags&128)===128)}catch{}}var ta=Math.clz32?Math.clz32:Ep,vf=Math.log,_p=Math.LN2;function Ep(u){return u>>>=0,u===0?32:31-(vf(u)/_p|0)|0}var Fs=64,xl=4194304;function ka(u){switch(u&-u){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return u&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return u&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return u}}function rs(u,d){var g=u.pendingLanes;if(g===0)return 0;var S=0,x=u.suspendedLanes,_=u.pingedLanes,L=g&268435455;if(L!==0){var q=L&~x;q!==0?S=ka(q):(_&=L,_!==0&&(S=ka(_)))}else L=g&~x,L!==0?S=ka(L):_!==0&&(S=ka(_));if(S===0)return 0;if(d!==0&&d!==S&&!(d&x)&&(x=S&-S,_=d&-d,x>=_||x===16&&(_&4194240)!==0))return d;if(S&4&&(S|=g&16),d=u.entangledLanes,d!==0)for(u=u.entanglements,d&=S;0<d;)g=31-ta(d),x=1<<g,S|=u[g],d&=~x;return S}function wl(u,d){switch(u){case 1:case 2:case 4:return d+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return d+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Hc(u,d){for(var g=u.suspendedLanes,S=u.pingedLanes,x=u.expirationTimes,_=u.pendingLanes;0<_;){var L=31-ta(_),q=1<<L,te=x[L];te===-1?(!(q&g)||q&S)&&(x[L]=wl(q,d)):te<=d&&(u.expiredLanes|=q),_&=~q}}function js(u){return u=u.pendingLanes&-1073741825,u!==0?u:u&1073741824?1073741824:0}function ku(){var u=Fs;return Fs<<=1,!(Fs&4194240)&&(Fs=64),u}function Tu(u){for(var d=[],g=0;31>g;g++)d.push(u);return d}function _l(u,d,g){u.pendingLanes|=d,d!==536870912&&(u.suspendedLanes=0,u.pingedLanes=0),u=u.eventTimes,d=31-ta(d),u[d]=g}function yf(u,d){var g=u.pendingLanes&~d;u.pendingLanes=d,u.suspendedLanes=0,u.pingedLanes=0,u.expiredLanes&=d,u.mutableReadLanes&=d,u.entangledLanes&=d,d=u.entanglements;var S=u.eventTimes;for(u=u.expirationTimes;0<g;){var x=31-ta(g),_=1<<x;d[x]=0,S[x]=-1,u[x]=-1,g&=~_}}function bf(u,d){var g=u.entangledLanes|=d;for(u=u.entanglements;g;){var S=31-ta(g),x=1<<S;x&d|u[S]&d&&(u[S]|=d),g&=~x}}var An=0;function Sf(u){return u&=-u,1<u?4<u?u&268435455?16:536870912:4:1}var $c,On,Rp,is,Zt,xu=!1,yi=[],Ta=null,na=null,as=null,Fr=new Map,sr=new Map,No=[],ho="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function qi(u,d){switch(u){case"focusin":case"focusout":Ta=null;break;case"dragenter":case"dragleave":na=null;break;case"mouseover":case"mouseout":as=null;break;case"pointerover":case"pointerout":Fr.delete(d.pointerId);break;case"gotpointercapture":case"lostpointercapture":sr.delete(d.pointerId)}}function ra(u,d,g,S,x,_){return u===null||u.nativeEvent!==_?(u={blockedOn:d,domEventName:g,eventSystemFlags:S,nativeEvent:_,targetContainers:[x]},d!==null&&(d=Uf(d),d!==null&&On(d)),u):(u.eventSystemFlags|=S,d=u.targetContainers,x!==null&&d.indexOf(x)===-1&&d.push(x),u)}function Ov(u,d,g,S,x){switch(d){case"focusin":return Ta=ra(Ta,u,d,g,S,x),!0;case"dragenter":return na=ra(na,u,d,g,S,x),!0;case"mouseover":return as=ra(as,u,d,g,S,x),!0;case"pointerover":var _=x.pointerId;return Fr.set(_,ra(Fr.get(_)||null,u,d,g,S,x)),!0;case"gotpointercapture":return _=x.pointerId,sr.set(_,ra(sr.get(_)||null,u,d,g,S,x)),!0}return!1}function qc(u){var d=Mu(u.target);if(d!==null){var g=ot(d);if(g!==null){if(d=g.tag,d===13){if(d=gn(g),d!==null){u.blockedOn=d,Zt(u.priority,function(){Rp(g)});return}}else if(d===3&&g.stateNode.current.memoizedState.isDehydrated){u.blockedOn=g.tag===3?g.stateNode.containerInfo:null;return}}}u.blockedOn=null}function wu(u){if(u.blockedOn!==null)return!1;for(var d=u.targetContainers;0<d.length;){var g=Kc(u.domEventName,u.eventSystemFlags,d[0],u.nativeEvent);if(g===null){g=u.nativeEvent;var S=new g.constructor(g.type,g);Wn=S,g.target.dispatchEvent(S),Wn=null}else return d=Uf(g),d!==null&&On(d),u.blockedOn=g,!1;d.shift()}return!0}function Wc(u,d,g){wu(u)&&g.delete(d)}function Gc(){xu=!1,Ta!==null&&wu(Ta)&&(Ta=null),na!==null&&wu(na)&&(na=null),as!==null&&wu(as)&&(as=null),Fr.forEach(Wc),sr.forEach(Wc)}function _u(u,d){u.blockedOn===d&&(u.blockedOn=null,xu||(xu=!0,e.unstable_scheduleCallback(e.unstable_NormalPriority,Gc)))}function po(u){function d(x){return _u(x,u)}if(0<yi.length){_u(yi[0],u);for(var g=1;g<yi.length;g++){var S=yi[g];S.blockedOn===u&&(S.blockedOn=null)}}for(Ta!==null&&_u(Ta,u),na!==null&&_u(na,u),as!==null&&_u(as,u),Fr.forEach(d),sr.forEach(d),g=0;g<No.length;g++)S=No[g],S.blockedOn===u&&(S.blockedOn=null);for(;0<No.length&&(g=No[0],g.blockedOn===null);)qc(g),g.blockedOn===null&&No.shift()}var mo=j.ReactCurrentBatchConfig,El=!0;function Vs(u,d,g,S){var x=An,_=mo.transition;mo.transition=null;try{An=1,Rl(u,d,g,S)}finally{An=x,mo.transition=_}}function Yc(u,d,g,S){var x=An,_=mo.transition;mo.transition=null;try{An=4,Rl(u,d,g,S)}finally{An=x,mo.transition=_}}function Rl(u,d,g,S){if(El){var x=Kc(u,d,g,S);if(x===null)qv(u,d,S,zs,g),qi(u,S);else if(Ov(x,u,d,g,S))S.stopPropagation();else if(qi(u,S),d&4&&-1<ho.indexOf(u)){for(;x!==null;){var _=Uf(x);if(_!==null&&$c(_),_=Kc(u,d,g,S),_===null&&qv(u,d,S,zs,g),_===x)break;x=_}x!==null&&S.stopPropagation()}else qv(u,d,S,null,g)}}var zs=null;function Kc(u,d,g,S){if(zs=null,u=Jn(S),u=Mu(u),u!==null)if(d=ot(u),d===null)u=null;else if(g=d.tag,g===13){if(u=gn(d),u!==null)return u;u=null}else if(g===3){if(d.stateNode.current.memoizedState.isDehydrated)return d.tag===3?d.stateNode.containerInfo:null;u=null}else d!==u&&(u=null);return zs=u,null}function Cf(u){switch(u){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Rr()){case rn:return 1;case ns:return 4;case Is:case wp:return 16;case Us:return 536870912;default:return 16}default:return 16}}var go=null,Zc=null,O=null;function Y(){if(O)return O;var u,d=Zc,g=d.length,S,x="value"in go?go.value:go.textContent,_=x.length;for(u=0;u<g&&d[u]===x[u];u++);var L=g-u;for(S=1;S<=L&&d[g-S]===x[_-S];S++);return O=x.slice(u,1<S?1-S:void 0)}function pe(u){var d=u.keyCode;return"charCode"in u?(u=u.charCode,u===0&&d===13&&(u=13)):u=d,u===10&&(u=13),32<=u||u===13?u:0}function Te(){return!0}function Ze(){return!1}function Tt(u){function d(g,S,x,_,L){this._reactName=g,this._targetInst=x,this.type=S,this.nativeEvent=_,this.target=L,this.currentTarget=null;for(var q in u)u.hasOwnProperty(q)&&(g=u[q],this[q]=g?g(_):_[q]);return this.isDefaultPrevented=(_.defaultPrevented!=null?_.defaultPrevented:_.returnValue===!1)?Te:Ze,this.isPropagationStopped=Ze,this}return z(d.prototype,{preventDefault:function(){this.defaultPrevented=!0;var g=this.nativeEvent;g&&(g.preventDefault?g.preventDefault():typeof g.returnValue!="unknown"&&(g.returnValue=!1),this.isDefaultPrevented=Te)},stopPropagation:function(){var g=this.nativeEvent;g&&(g.stopPropagation?g.stopPropagation():typeof g.cancelBubble!="unknown"&&(g.cancelBubble=!0),this.isPropagationStopped=Te)},persist:function(){},isPersistent:Te}),d}var pt={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(u){return u.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},qt=Tt(pt),dn=z({},pt,{view:0,detail:0}),Kn=Tt(dn),lr,ur,on,hr=z({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Io,button:0,buttons:0,relatedTarget:function(u){return u.relatedTarget===void 0?u.fromElement===u.srcElement?u.toElement:u.fromElement:u.relatedTarget},movementX:function(u){return"movementX"in u?u.movementX:(u!==on&&(on&&u.type==="mousemove"?(lr=u.screenX-on.screenX,ur=u.screenY-on.screenY):ur=lr=0,on=u),lr)},movementY:function(u){return"movementY"in u?u.movementY:ur}}),Wr=Tt(hr),Eu=z({},hr,{dataTransfer:0}),kf=Tt(Eu),Bs=z({},dn,{relatedTarget:0}),Ru=Tt(Bs),Tf=z({},pt,{animationName:0,elapsedTime:0,pseudoElement:0}),Mv=Tt(Tf),Pp=z({},pt,{clipboardData:function(u){return"clipboardData"in u?u.clipboardData:window.clipboardData}}),Lv=Tt(Pp),PS=z({},pt,{data:0}),Dp=Tt(PS),DS={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},AS={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},OS={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function P_(u){var d=this.nativeEvent;return d.getModifierState?d.getModifierState(u):(u=OS[u])?!!d[u]:!1}function Io(){return P_}var D_=z({},dn,{key:function(u){if(u.key){var d=DS[u.key]||u.key;if(d!=="Unidentified")return d}return u.type==="keypress"?(u=pe(u),u===13?"Enter":String.fromCharCode(u)):u.type==="keydown"||u.type==="keyup"?AS[u.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Io,charCode:function(u){return u.type==="keypress"?pe(u):0},keyCode:function(u){return u.type==="keydown"||u.type==="keyup"?u.keyCode:0},which:function(u){return u.type==="keypress"?pe(u):u.type==="keydown"||u.type==="keyup"?u.keyCode:0}}),Nv=Tt(D_),Iv=z({},hr,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Ap=Tt(Iv),A_=z({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Io}),Op=Tt(A_),MS=z({},pt,{propertyName:0,elapsedTime:0,pseudoElement:0}),xa=Tt(MS),Hs=z({},hr,{deltaX:function(u){return"deltaX"in u?u.deltaX:"wheelDeltaX"in u?-u.wheelDeltaX:0},deltaY:function(u){return"deltaY"in u?u.deltaY:"wheelDeltaY"in u?-u.wheelDeltaY:"wheelDelta"in u?-u.wheelDelta:0},deltaZ:0,deltaMode:0}),ti=Tt(Hs),$s=[9,13,27,32],xf=c&&"CompositionEvent"in window,Pl=null;c&&"documentMode"in document&&(Pl=document.documentMode);var O_=c&&"TextEvent"in window&&!Pl,Qc=c&&(!xf||Pl&&8<Pl&&11>=Pl),LS=" ",NS=!1;function Mp(u,d){switch(u){case"keyup":return $s.indexOf(d.keyCode)!==-1;case"keydown":return d.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function IS(u){return u=u.detail,typeof u=="object"&&"data"in u?u.data:null}var Xc=!1;function M_(u,d){switch(u){case"compositionend":return IS(d);case"keypress":return d.which!==32?null:(NS=!0,LS);case"textInput":return u=d.data,u===LS&&NS?null:u;default:return null}}function US(u,d){if(Xc)return u==="compositionend"||!xf&&Mp(u,d)?(u=Y(),O=Zc=go=null,Xc=!1,u):null;switch(u){case"paste":return null;case"keypress":if(!(d.ctrlKey||d.altKey||d.metaKey)||d.ctrlKey&&d.altKey){if(d.char&&1<d.char.length)return d.char;if(d.which)return String.fromCharCode(d.which)}return null;case"compositionend":return Qc&&d.locale!=="ko"?null:d.data;default:return null}}var L_={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function FS(u){var d=u&&u.nodeName&&u.nodeName.toLowerCase();return d==="input"?!!L_[u.type]:d==="textarea"}function jS(u,d,g,S){ea(S),d=Lf(d,"onChange"),0<d.length&&(g=new qt("onChange","change",null,g,S),u.push({event:g,listeners:d}))}var Jc=null,os=null;function Uv(u){Up(u,0)}function wf(u){var d=Ot(u);if(_r(d))return u}function VS(u,d){if(u==="change")return d}var zS=!1;if(c){var Fv;if(c){var jv="oninput"in document;if(!jv){var BS=document.createElement("div");BS.setAttribute("oninput","return;"),jv=typeof BS.oninput=="function"}Fv=jv}else Fv=!1;zS=Fv&&(!document.documentMode||9<document.documentMode)}function HS(){Jc&&(Jc.detachEvent("onpropertychange",$S),os=Jc=null)}function $S(u){if(u.propertyName==="value"&&wf(os)){var d=[];jS(d,os,u,Jn(u)),et(Uv,d)}}function N_(u,d,g){u==="focusin"?(HS(),Jc=d,os=g,Jc.attachEvent("onpropertychange",$S)):u==="focusout"&&HS()}function I_(u){if(u==="selectionchange"||u==="keyup"||u==="keydown")return wf(os)}function qS(u,d){if(u==="click")return wf(d)}function U_(u,d){if(u==="input"||u==="change")return wf(d)}function WS(u,d){return u===d&&(u!==0||1/u===1/d)||u!==u&&d!==d}var Uo=typeof Object.is=="function"?Object.is:WS;function _f(u,d){if(Uo(u,d))return!0;if(typeof u!="object"||u===null||typeof d!="object"||d===null)return!1;var g=Object.keys(u),S=Object.keys(d);if(g.length!==S.length)return!1;for(S=0;S<g.length;S++){var x=g[S];if(!h.call(d,x)||!Uo(u[x],d[x]))return!1}return!0}function GS(u){for(;u&&u.firstChild;)u=u.firstChild;return u}function YS(u,d){var g=GS(u);u=0;for(var S;g;){if(g.nodeType===3){if(S=u+g.textContent.length,u<=d&&S>=d)return{node:g,offset:d-u};u=S}e:{for(;g;){if(g.nextSibling){g=g.nextSibling;break e}g=g.parentNode}g=void 0}g=GS(g)}}function Lp(u,d){return u&&d?u===d?!0:u&&u.nodeType===3?!1:d&&d.nodeType===3?Lp(u,d.parentNode):"contains"in u?u.contains(d):u.compareDocumentPosition?!!(u.compareDocumentPosition(d)&16):!1:!1}function Dl(){for(var u=window,d=vr();d instanceof u.HTMLIFrameElement;){try{var g=typeof d.contentWindow.location.href=="string"}catch{g=!1}if(g)u=d.contentWindow;else break;d=vr(u.document)}return d}function ed(u){var d=u&&u.nodeName&&u.nodeName.toLowerCase();return d&&(d==="input"&&(u.type==="text"||u.type==="search"||u.type==="tel"||u.type==="url"||u.type==="password")||d==="textarea"||u.contentEditable==="true")}function KS(u){var d=Dl(),g=u.focusedElem,S=u.selectionRange;if(d!==g&&g&&g.ownerDocument&&Lp(g.ownerDocument.documentElement,g)){if(S!==null&&ed(g)){if(d=S.start,u=S.end,u===void 0&&(u=d),"selectionStart"in g)g.selectionStart=d,g.selectionEnd=Math.min(u,g.value.length);else if(u=(d=g.ownerDocument||document)&&d.defaultView||window,u.getSelection){u=u.getSelection();var x=g.textContent.length,_=Math.min(S.start,x);S=S.end===void 0?_:Math.min(S.end,x),!u.extend&&_>S&&(x=S,S=_,_=x),x=YS(g,_);var L=YS(g,S);x&&L&&(u.rangeCount!==1||u.anchorNode!==x.node||u.anchorOffset!==x.offset||u.focusNode!==L.node||u.focusOffset!==L.offset)&&(d=d.createRange(),d.setStart(x.node,x.offset),u.removeAllRanges(),_>S?(u.addRange(d),u.extend(L.node,L.offset)):(d.setEnd(L.node,L.offset),u.addRange(d)))}}for(d=[],u=g;u=u.parentNode;)u.nodeType===1&&d.push({element:u,left:u.scrollLeft,top:u.scrollTop});for(typeof g.focus=="function"&&g.focus(),g=0;g<d.length;g++)u=d[g],u.element.scrollLeft=u.left,u.element.scrollTop=u.top}}var td=c&&"documentMode"in document&&11>=document.documentMode,nd=null,Vv=null,Ef=null,zv=!1;function ZS(u,d,g){var S=g.window===g?g.document:g.nodeType===9?g:g.ownerDocument;zv||nd==null||nd!==vr(S)||(S=nd,"selectionStart"in S&&ed(S)?S={start:S.selectionStart,end:S.selectionEnd}:(S=(S.ownerDocument&&S.ownerDocument.defaultView||window).getSelection(),S={anchorNode:S.anchorNode,anchorOffset:S.anchorOffset,focusNode:S.focusNode,focusOffset:S.focusOffset}),Ef&&_f(Ef,S)||(Ef=S,S=Lf(Vv,"onSelect"),0<S.length&&(d=new qt("onSelect","select",null,d,g),u.push({event:d,listeners:S}),d.target=nd)))}function Rf(u,d){var g={};return g[u.toLowerCase()]=d.toLowerCase(),g["Webkit"+u]="webkit"+d,g["Moz"+u]="moz"+d,g}var rd={animationend:Rf("Animation","AnimationEnd"),animationiteration:Rf("Animation","AnimationIteration"),animationstart:Rf("Animation","AnimationStart"),transitionend:Rf("Transition","TransitionEnd")},Np={},Wi={};c&&(Wi=document.createElement("div").style,"AnimationEvent"in window||(delete rd.animationend.animation,delete rd.animationiteration.animation,delete rd.animationstart.animation),"TransitionEvent"in window||delete rd.transitionend.transition);function Pf(u){if(Np[u])return Np[u];if(!rd[u])return u;var d=rd[u],g;for(g in d)if(d.hasOwnProperty(g)&&g in Wi)return Np[u]=d[g];return u}var QS=Pf("animationend"),XS=Pf("animationiteration"),JS=Pf("animationstart"),eC=Pf("transitionend"),tC=new Map,Bv="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function ss(u,d){tC.set(u,d),s(d,[u])}for(var Pu=0;Pu<Bv.length;Pu++){var Hv=Bv[Pu],Df=Hv.toLowerCase(),F_=Hv[0].toUpperCase()+Hv.slice(1);ss(Df,"on"+F_)}ss(QS,"onAnimationEnd"),ss(XS,"onAnimationIteration"),ss(JS,"onAnimationStart"),ss("dblclick","onDoubleClick"),ss("focusin","onFocus"),ss("focusout","onBlur"),ss(eC,"onTransitionEnd"),l("onMouseEnter",["mouseout","mouseover"]),l("onMouseLeave",["mouseout","mouseover"]),l("onPointerEnter",["pointerout","pointerover"]),l("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Af="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),j_=new Set("cancel close invalid load scroll toggle".split(" ").concat(Af));function Ip(u,d,g){var S=u.type||"unknown-event";u.currentTarget=g,Xe(S,d,void 0,u),u.currentTarget=null}function Up(u,d){d=(d&4)!==0;for(var g=0;g<u.length;g++){var S=u[g],x=S.event;S=S.listeners;e:{var _=void 0;if(d)for(var L=S.length-1;0<=L;L--){var q=S[L],te=q.instance,ye=q.currentTarget;if(q=q.listener,te!==_&&x.isPropagationStopped())break e;Ip(x,q,ye),_=te}else for(L=0;L<S.length;L++){if(q=S[L],te=q.instance,ye=q.currentTarget,q=q.listener,te!==_&&x.isPropagationStopped())break e;Ip(x,q,ye),_=te}}}if(er)throw u=Er,er=!1,Er=null,u}function Zn(u,d){var g=d[Wv];g===void 0&&(g=d[Wv]=new Set);var S=u+"__bubble";g.has(S)||($v(d,u,2,!1),g.add(S))}function Al(u,d,g){var S=0;d&&(S|=4),$v(g,u,S,d)}var Of="_reactListening"+Math.random().toString(36).slice(2);function Mf(u){if(!u[Of]){u[Of]=!0,r.forEach(function(g){g!=="selectionchange"&&(j_.has(g)||Al(g,!1,u),Al(g,!0,u))});var d=u.nodeType===9?u:u.ownerDocument;d===null||d[Of]||(d[Of]=!0,Al("selectionchange",!1,d))}}function $v(u,d,g,S){switch(Cf(d)){case 1:var x=Vs;break;case 4:x=Yc;break;default:x=Rl}g=x.bind(null,d,g,u),x=void 0,!It||d!=="touchstart"&&d!=="touchmove"&&d!=="wheel"||(x=!0),S?x!==void 0?u.addEventListener(d,g,{capture:!0,passive:x}):u.addEventListener(d,g,!0):x!==void 0?u.addEventListener(d,g,{passive:x}):u.addEventListener(d,g,!1)}function qv(u,d,g,S,x){var _=S;if(!(d&1)&&!(d&2)&&S!==null)e:for(;;){if(S===null)return;var L=S.tag;if(L===3||L===4){var q=S.stateNode.containerInfo;if(q===x||q.nodeType===8&&q.parentNode===x)break;if(L===4)for(L=S.return;L!==null;){var te=L.tag;if((te===3||te===4)&&(te=L.stateNode.containerInfo,te===x||te.nodeType===8&&te.parentNode===x))return;L=L.return}for(;q!==null;){if(L=Mu(q),L===null)return;if(te=L.tag,te===5||te===6){S=_=L;continue e}q=q.parentNode}}S=S.return}et(function(){var ye=_,Fe=Jn(g),$e=[];e:{var Ue=tC.get(u);if(Ue!==void 0){var mt=qt,wt=u;switch(u){case"keypress":if(pe(g)===0)break e;case"keydown":case"keyup":mt=Nv;break;case"focusin":wt="focus",mt=Ru;break;case"focusout":wt="blur",mt=Ru;break;case"beforeblur":case"afterblur":mt=Ru;break;case"click":if(g.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":mt=Wr;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":mt=kf;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":mt=Op;break;case QS:case XS:case JS:mt=Mv;break;case eC:mt=xa;break;case"scroll":mt=Kn;break;case"wheel":mt=ti;break;case"copy":case"cut":case"paste":mt=Lv;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":mt=Ap}var Et=(d&4)!==0,Zr=!Et&&u==="scroll",ue=Et?Ue!==null?Ue+"Capture":null:Ue;Et=[];for(var ie=ye,he;ie!==null;){he=ie;var Ke=he.stateNode;if(he.tag===5&&Ke!==null&&(he=Ke,ue!==null&&(Ke=Me(ie,ue),Ke!=null&&Et.push(id(ie,Ke,he)))),Zr)break;ie=ie.return}0<Et.length&&(Ue=new mt(Ue,wt,null,g,Fe),$e.push({event:Ue,listeners:Et}))}}if(!(d&7)){e:{if(Ue=u==="mouseover"||u==="pointerover",mt=u==="mouseout"||u==="pointerout",Ue&&g!==Wn&&(wt=g.relatedTarget||g.fromElement)&&(Mu(wt)||wt[qs]))break e;if((mt||Ue)&&(Ue=Fe.window===Fe?Fe:(Ue=Fe.ownerDocument)?Ue.defaultView||Ue.parentWindow:window,mt?(wt=g.relatedTarget||g.toElement,mt=ye,wt=wt?Mu(wt):null,wt!==null&&(Zr=ot(wt),wt!==Zr||wt.tag!==5&&wt.tag!==6)&&(wt=null)):(mt=null,wt=ye),mt!==wt)){if(Et=Wr,Ke="onMouseLeave",ue="onMouseEnter",ie="mouse",(u==="pointerout"||u==="pointerover")&&(Et=Ap,Ke="onPointerLeave",ue="onPointerEnter",ie="pointer"),Zr=mt==null?Ue:Ot(mt),he=wt==null?Ue:Ot(wt),Ue=new Et(Ke,ie+"leave",mt,g,Fe),Ue.target=Zr,Ue.relatedTarget=he,Ke=null,Mu(Fe)===ye&&(Et=new Et(ue,ie+"enter",wt,g,Fe),Et.target=he,Et.relatedTarget=Zr,Ke=Et),Zr=Ke,mt&&wt)t:{for(Et=mt,ue=wt,ie=0,he=Et;he;he=Du(he))ie++;for(he=0,Ke=ue;Ke;Ke=Du(Ke))he++;for(;0<ie-he;)Et=Du(Et),ie--;for(;0<he-ie;)ue=Du(ue),he--;for(;ie--;){if(Et===ue||ue!==null&&Et===ue.alternate)break t;Et=Du(Et),ue=Du(ue)}Et=null}else Et=null;mt!==null&&Fp($e,Ue,mt,Et,!1),wt!==null&&Zr!==null&&Fp($e,Zr,wt,Et,!0)}}e:{if(Ue=ye?Ot(ye):window,mt=Ue.nodeName&&Ue.nodeName.toLowerCase(),mt==="select"||mt==="input"&&Ue.type==="file")var dt=VS;else if(FS(Ue))if(zS)dt=U_;else{dt=I_;var Ut=N_}else(mt=Ue.nodeName)&&mt.toLowerCase()==="input"&&(Ue.type==="checkbox"||Ue.type==="radio")&&(dt=qS);if(dt&&(dt=dt(u,ye))){jS($e,dt,g,Fe);break e}Ut&&Ut(u,Ue,ye),u==="focusout"&&(Ut=Ue._wrapperState)&&Ut.controlled&&Ue.type==="number"&&le(Ue,"number",Ue.value)}switch(Ut=ye?Ot(ye):window,u){case"focusin":(FS(Ut)||Ut.contentEditable==="true")&&(nd=Ut,Vv=ye,Ef=null);break;case"focusout":Ef=Vv=nd=null;break;case"mousedown":zv=!0;break;case"contextmenu":case"mouseup":case"dragend":zv=!1,ZS($e,g,Fe);break;case"selectionchange":if(td)break;case"keydown":case"keyup":ZS($e,g,Fe)}var zt;if(xf)e:{switch(u){case"compositionstart":var Qt="onCompositionStart";break e;case"compositionend":Qt="onCompositionEnd";break e;case"compositionupdate":Qt="onCompositionUpdate";break e}Qt=void 0}else Xc?Mp(u,g)&&(Qt="onCompositionEnd"):u==="keydown"&&g.keyCode===229&&(Qt="onCompositionStart");Qt&&(Qc&&g.locale!=="ko"&&(Xc||Qt!=="onCompositionStart"?Qt==="onCompositionEnd"&&Xc&&(zt=Y()):(go=Fe,Zc="value"in go?go.value:go.textContent,Xc=!0)),Ut=Lf(ye,Qt),0<Ut.length&&(Qt=new Dp(Qt,u,null,g,Fe),$e.push({event:Qt,listeners:Ut}),zt?Qt.data=zt:(zt=IS(g),zt!==null&&(Qt.data=zt)))),(zt=O_?M_(u,g):US(u,g))&&(ye=Lf(ye,"onBeforeInput"),0<ye.length&&(Fe=new Dp("onBeforeInput","beforeinput",null,g,Fe),$e.push({event:Fe,listeners:ye}),Fe.data=zt))}Up($e,d)})}function id(u,d,g){return{instance:u,listener:d,currentTarget:g}}function Lf(u,d){for(var g=d+"Capture",S=[];u!==null;){var x=u,_=x.stateNode;x.tag===5&&_!==null&&(x=_,_=Me(u,g),_!=null&&S.unshift(id(u,_,x)),_=Me(u,d),_!=null&&S.push(id(u,_,x))),u=u.return}return S}function Du(u){if(u===null)return null;do u=u.return;while(u&&u.tag!==5);return u||null}function Fp(u,d,g,S,x){for(var _=d._reactName,L=[];g!==null&&g!==S;){var q=g,te=q.alternate,ye=q.stateNode;if(te!==null&&te===S)break;q.tag===5&&ye!==null&&(q=ye,x?(te=Me(g,_),te!=null&&L.unshift(id(g,te,q))):x||(te=Me(g,_),te!=null&&L.push(id(g,te,q)))),g=g.return}L.length!==0&&u.push({event:d,listeners:L})}var V_=/\r\n?/g,nC=/\u0000|\uFFFD/g;function rC(u){return(typeof u=="string"?u:""+u).replace(V_,`
97
97
  `).replace(nC,"")}function jp(u,d,g){if(d=rC(d),rC(u)!==d&&g)throw Error(n(425))}function Vp(){}var Au=null,Nf=null;function Ou(u,d){return u==="textarea"||u==="noscript"||typeof d.children=="string"||typeof d.children=="number"||typeof d.dangerouslySetInnerHTML=="object"&&d.dangerouslySetInnerHTML!==null&&d.dangerouslySetInnerHTML.__html!=null}var zp=typeof setTimeout=="function"?setTimeout:void 0,iC=typeof clearTimeout=="function"?clearTimeout:void 0,Bp=typeof Promise=="function"?Promise:void 0,z_=typeof queueMicrotask=="function"?queueMicrotask:typeof Bp<"u"?function(u){return Bp.resolve(null).then(u).catch(ad)}:zp;function ad(u){setTimeout(function(){throw u})}function od(u,d){var g=d,S=0;do{var x=g.nextSibling;if(u.removeChild(g),x&&x.nodeType===8)if(g=x.data,g==="/$"){if(S===0){u.removeChild(x),po(d);return}S--}else g!=="$"&&g!=="$?"&&g!=="$!"||S++;g=x}while(g);po(d)}function Fo(u){for(;u!=null;u=u.nextSibling){var d=u.nodeType;if(d===1||d===3)break;if(d===8){if(d=u.data,d==="$"||d==="$!"||d==="$?")break;if(d==="/$")return null}}return u}function Hp(u){u=u.previousSibling;for(var d=0;u;){if(u.nodeType===8){var g=u.data;if(g==="$"||g==="$!"||g==="$?"){if(d===0)return u;d--}else g==="/$"&&d++}u=u.previousSibling}return null}var sd=Math.random().toString(36).slice(2),vo="__reactFiber$"+sd,If="__reactProps$"+sd,qs="__reactContainer$"+sd,Wv="__reactEvents$"+sd,Gv="__reactListeners$"+sd,ld="__reactHandles$"+sd;function Mu(u){var d=u[vo];if(d)return d;for(var g=u.parentNode;g;){if(d=g[qs]||g[vo]){if(g=d.alternate,d.child!==null||g!==null&&g.child!==null)for(u=Hp(u);u!==null;){if(g=u[vo])return g;u=Hp(u)}return d}u=g,g=u.parentNode}return null}function Uf(u){return u=u[vo]||u[qs],!u||u.tag!==5&&u.tag!==6&&u.tag!==13&&u.tag!==3?null:u}function Ot(u){if(u.tag===5||u.tag===6)return u.stateNode;throw Error(n(33))}function Ws(u){return u[If]||null}var jr=[],Tn=-1;function wa(u){return{current:u}}function tr(u){0>Tn||(u.current=jr[Tn],jr[Tn]=null,Tn--)}function pr(u,d){Tn++,jr[Tn]=u.current,u.current=d}var pn={},Pr=wa(pn),ni=wa(!1),yo=pn;function Ba(u,d){var g=u.type.contextTypes;if(!g)return pn;var S=u.stateNode;if(S&&S.__reactInternalMemoizedUnmaskedChildContext===d)return S.__reactInternalMemoizedMaskedChildContext;var x={},_;for(_ in g)x[_]=d[_];return S&&(u=u.stateNode,u.__reactInternalMemoizedUnmaskedChildContext=d,u.__reactInternalMemoizedMaskedChildContext=x),x}function Vr(u){return u=u.childContextTypes,u!=null}function ls(){tr(ni),tr(Pr)}function $p(u,d,g){if(Pr.current!==pn)throw Error(n(168));pr(Pr,d),pr(ni,g)}function aC(u,d,g){var S=u.stateNode;if(d=d.childContextTypes,typeof S.getChildContext!="function")return g;S=S.getChildContext();for(var x in S)if(!(x in d))throw Error(n(108,bt(u)||"Unknown",x));return z({},g,S)}function Lu(u){return u=(u=u.stateNode)&&u.__reactInternalMemoizedMergedChildContext||pn,yo=Pr.current,pr(Pr,u),pr(ni,ni.current),!0}function Gi(u,d,g){var S=u.stateNode;if(!S)throw Error(n(169));g?(u=aC(u,d,yo),S.__reactInternalMemoizedMergedChildContext=u,tr(ni),tr(Pr),pr(Pr,u)):tr(ni),pr(ni,g)}var jo=null,Ff=!1,jf=!1;function Ol(u){jo===null?jo=[u]:jo.push(u)}function Yv(u){Ff=!0,Ol(u)}function ia(){if(!jf&&jo!==null){jf=!0;var u=0,d=An;try{var g=jo;for(An=1;u<g.length;u++){var S=g[u];do S=S(!0);while(S!==null)}jo=null,Ff=!1}catch(x){throw jo!==null&&(jo=jo.slice(u+1)),yr(rn,ia),x}finally{An=d,jf=!1}}return null}var Ml=[],Ll=0,ud=null,Nl=0,Ri=[],ri=0,Nu=null,aa=1,us="";function Il(u,d){Ml[Ll++]=Nl,Ml[Ll++]=ud,ud=u,Nl=d}function oC(u,d,g){Ri[ri++]=aa,Ri[ri++]=us,Ri[ri++]=Nu,Nu=u;var S=aa;u=us;var x=32-ta(S)-1;S&=~(1<<x),g+=1;var _=32-ta(d)+x;if(30<_){var L=x-x%5;_=(S&(1<<L)-1).toString(32),S>>=L,x-=L,aa=1<<32-ta(d)+x|g<<x|S,us=_+u}else aa=1<<_|g<<x|S,us=u}function Kv(u){u.return!==null&&(Il(u,1),oC(u,1,0))}function qp(u){for(;u===ud;)ud=Ml[--Ll],Ml[Ll]=null,Nl=Ml[--Ll],Ml[Ll]=null;for(;u===Nu;)Nu=Ri[--ri],Ri[ri]=null,us=Ri[--ri],Ri[ri]=null,aa=Ri[--ri],Ri[ri]=null}var _a=null,Ea=null,kr=!1,Vo=null;function Zv(u,d){var g=To(5,null,null,0);g.elementType="DELETED",g.stateNode=d,g.return=u,d=u.deletions,d===null?(u.deletions=[g],u.flags|=16):d.push(g)}function Qv(u,d){switch(u.tag){case 5:var g=u.type;return d=d.nodeType!==1||g.toLowerCase()!==d.nodeName.toLowerCase()?null:d,d!==null?(u.stateNode=d,_a=u,Ea=Fo(d.firstChild),!0):!1;case 6:return d=u.pendingProps===""||d.nodeType!==3?null:d,d!==null?(u.stateNode=d,_a=u,Ea=null,!0):!1;case 13:return d=d.nodeType!==8?null:d,d!==null?(g=Nu!==null?{id:aa,overflow:us}:null,u.memoizedState={dehydrated:d,treeContext:g,retryLane:1073741824},g=To(18,null,null,0),g.stateNode=d,g.return=u,u.child=g,_a=u,Ea=null,!0):!1;default:return!1}}function Xv(u){return(u.mode&1)!==0&&(u.flags&128)===0}function Jv(u){if(kr){var d=Ea;if(d){var g=d;if(!Qv(u,d)){if(Xv(u))throw Error(n(418));d=Fo(g.nextSibling);var S=_a;d&&Qv(u,d)?Zv(S,g):(u.flags=u.flags&-4097|2,kr=!1,_a=u)}}else{if(Xv(u))throw Error(n(418));u.flags=u.flags&-4097|2,kr=!1,_a=u}}}function sC(u){for(u=u.return;u!==null&&u.tag!==5&&u.tag!==3&&u.tag!==13;)u=u.return;_a=u}function Gr(u){if(u!==_a)return!1;if(!kr)return sC(u),kr=!0,!1;var d;if((d=u.tag!==3)&&!(d=u.tag!==5)&&(d=u.type,d=d!=="head"&&d!=="body"&&!Ou(u.type,u.memoizedProps)),d&&(d=Ea)){if(Xv(u))throw lC(),Error(n(418));for(;d;)Zv(u,d),d=Fo(d.nextSibling)}if(sC(u),u.tag===13){if(u=u.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(n(317));e:{for(u=u.nextSibling,d=0;u;){if(u.nodeType===8){var g=u.data;if(g==="/$"){if(d===0){Ea=Fo(u.nextSibling);break e}d--}else g!=="$"&&g!=="$!"&&g!=="$?"||d++}u=u.nextSibling}Ea=null}}else Ea=_a?Fo(u.stateNode.nextSibling):null;return!0}function lC(){for(var u=Ea;u;)u=Fo(u.nextSibling)}function Gs(){Ea=_a=null,kr=!1}function Vf(u){Vo===null?Vo=[u]:Vo.push(u)}var Iu=j.ReactCurrentBatchConfig;function zf(u,d,g){if(u=g.ref,u!==null&&typeof u!="function"&&typeof u!="object"){if(g._owner){if(g=g._owner,g){if(g.tag!==1)throw Error(n(309));var S=g.stateNode}if(!S)throw Error(n(147,u));var x=S,_=""+u;return d!==null&&d.ref!==null&&typeof d.ref=="function"&&d.ref._stringRef===_?d.ref:(d=function(L){var q=x.refs;L===null?delete q[_]:q[_]=L},d._stringRef=_,d)}if(typeof u!="string")throw Error(n(284));if(!g._owner)throw Error(n(290,u))}return u}function cd(u,d){throw u=Object.prototype.toString.call(d),Error(n(31,u==="[object Object]"?"object with keys {"+Object.keys(d).join(", ")+"}":u))}function uC(u){var d=u._init;return d(u._payload)}function cC(u){function d(ue,ie){if(u){var he=ue.deletions;he===null?(ue.deletions=[ie],ue.flags|=16):he.push(ie)}}function g(ue,ie){if(!u)return null;for(;ie!==null;)d(ue,ie),ie=ie.sibling;return null}function S(ue,ie){for(ue=new Map;ie!==null;)ie.key!==null?ue.set(ie.key,ie):ue.set(ie.index,ie),ie=ie.sibling;return ue}function x(ue,ie){return ue=Gl(ue,ie),ue.index=0,ue.sibling=null,ue}function _(ue,ie,he){return ue.index=he,u?(he=ue.alternate,he!==null?(he=he.index,he<ie?(ue.flags|=2,ie):he):(ue.flags|=2,ie)):(ue.flags|=1048576,ie)}function L(ue){return u&&ue.alternate===null&&(ue.flags|=2),ue}function q(ue,ie,he,Ke){return ie===null||ie.tag!==6?(ie=Ju(he,ue.mode,Ke),ie.return=ue,ie):(ie=x(ie,he),ie.return=ue,ie)}function te(ue,ie,he,Ke){var dt=he.type;return dt===ne?Fe(ue,ie,he.props.children,Ke,he.key):ie!==null&&(ie.elementType===dt||typeof dt=="object"&&dt!==null&&dt.$$typeof===Je&&uC(dt)===ie.type)?(Ke=x(ie,he.props),Ke.ref=zf(ue,ie,he),Ke.return=ue,Ke):(Ke=Dm(he.type,he.key,he.props,null,ue.mode,Ke),Ke.ref=zf(ue,ie,he),Ke.return=ue,Ke)}function ye(ue,ie,he,Ke){return ie===null||ie.tag!==4||ie.stateNode.containerInfo!==he.containerInfo||ie.stateNode.implementation!==he.implementation?(ie=Dy(he,ue.mode,Ke),ie.return=ue,ie):(ie=x(ie,he.children||[]),ie.return=ue,ie)}function Fe(ue,ie,he,Ke,dt){return ie===null||ie.tag!==7?(ie=Yl(he,ue.mode,Ke,dt),ie.return=ue,ie):(ie=x(ie,he),ie.return=ue,ie)}function $e(ue,ie,he){if(typeof ie=="string"&&ie!==""||typeof ie=="number")return ie=Ju(""+ie,ue.mode,he),ie.return=ue,ie;if(typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case I:return he=Dm(ie.type,ie.key,ie.props,null,ue.mode,he),he.ref=zf(ue,null,ie),he.return=ue,he;case N:return ie=Dy(ie,ue.mode,he),ie.return=ue,ie;case Je:var Ke=ie._init;return $e(ue,Ke(ie._payload),he)}if(me(ie)||He(ie))return ie=Yl(ie,ue.mode,he,null),ie.return=ue,ie;cd(ue,ie)}return null}function Ue(ue,ie,he,Ke){var dt=ie!==null?ie.key:null;if(typeof he=="string"&&he!==""||typeof he=="number")return dt!==null?null:q(ue,ie,""+he,Ke);if(typeof he=="object"&&he!==null){switch(he.$$typeof){case I:return he.key===dt?te(ue,ie,he,Ke):null;case N:return he.key===dt?ye(ue,ie,he,Ke):null;case Je:return dt=he._init,Ue(ue,ie,dt(he._payload),Ke)}if(me(he)||He(he))return dt!==null?null:Fe(ue,ie,he,Ke,null);cd(ue,he)}return null}function mt(ue,ie,he,Ke,dt){if(typeof Ke=="string"&&Ke!==""||typeof Ke=="number")return ue=ue.get(he)||null,q(ie,ue,""+Ke,dt);if(typeof Ke=="object"&&Ke!==null){switch(Ke.$$typeof){case I:return ue=ue.get(Ke.key===null?he:Ke.key)||null,te(ie,ue,Ke,dt);case N:return ue=ue.get(Ke.key===null?he:Ke.key)||null,ye(ie,ue,Ke,dt);case Je:var Ut=Ke._init;return mt(ue,ie,he,Ut(Ke._payload),dt)}if(me(Ke)||He(Ke))return ue=ue.get(he)||null,Fe(ie,ue,Ke,dt,null);cd(ie,Ke)}return null}function wt(ue,ie,he,Ke){for(var dt=null,Ut=null,zt=ie,Qt=ie=0,pi=null;zt!==null&&Qt<he.length;Qt++){zt.index>Qt?(pi=zt,zt=null):pi=zt.sibling;var zn=Ue(ue,zt,he[Qt],Ke);if(zn===null){zt===null&&(zt=pi);break}u&&zt&&zn.alternate===null&&d(ue,zt),ie=_(zn,ie,Qt),Ut===null?dt=zn:Ut.sibling=zn,Ut=zn,zt=pi}if(Qt===he.length)return g(ue,zt),kr&&Il(ue,Qt),dt;if(zt===null){for(;Qt<he.length;Qt++)zt=$e(ue,he[Qt],Ke),zt!==null&&(ie=_(zt,ie,Qt),Ut===null?dt=zt:Ut.sibling=zt,Ut=zt);return kr&&Il(ue,Qt),dt}for(zt=S(ue,zt);Qt<he.length;Qt++)pi=mt(zt,ue,Qt,he[Qt],Ke),pi!==null&&(u&&pi.alternate!==null&&zt.delete(pi.key===null?Qt:pi.key),ie=_(pi,ie,Qt),Ut===null?dt=pi:Ut.sibling=pi,Ut=pi);return u&&zt.forEach(function(Zl){return d(ue,Zl)}),kr&&Il(ue,Qt),dt}function Et(ue,ie,he,Ke){var dt=He(he);if(typeof dt!="function")throw Error(n(150));if(he=dt.call(he),he==null)throw Error(n(151));for(var Ut=dt=null,zt=ie,Qt=ie=0,pi=null,zn=he.next();zt!==null&&!zn.done;Qt++,zn=he.next()){zt.index>Qt?(pi=zt,zt=null):pi=zt.sibling;var Zl=Ue(ue,zt,zn.value,Ke);if(Zl===null){zt===null&&(zt=pi);break}u&&zt&&Zl.alternate===null&&d(ue,zt),ie=_(Zl,ie,Qt),Ut===null?dt=Zl:Ut.sibling=Zl,Ut=Zl,zt=pi}if(zn.done)return g(ue,zt),kr&&Il(ue,Qt),dt;if(zt===null){for(;!zn.done;Qt++,zn=he.next())zn=$e(ue,zn.value,Ke),zn!==null&&(ie=_(zn,ie,Qt),Ut===null?dt=zn:Ut.sibling=zn,Ut=zn);return kr&&Il(ue,Qt),dt}for(zt=S(ue,zt);!zn.done;Qt++,zn=he.next())zn=mt(zt,ue,Qt,zn.value,Ke),zn!==null&&(u&&zn.alternate!==null&&zt.delete(zn.key===null?Qt:zn.key),ie=_(zn,ie,Qt),Ut===null?dt=zn:Ut.sibling=zn,Ut=zn);return u&&zt.forEach(function(tE){return d(ue,tE)}),kr&&Il(ue,Qt),dt}function Zr(ue,ie,he,Ke){if(typeof he=="object"&&he!==null&&he.type===ne&&he.key===null&&(he=he.props.children),typeof he=="object"&&he!==null){switch(he.$$typeof){case I:e:{for(var dt=he.key,Ut=ie;Ut!==null;){if(Ut.key===dt){if(dt=he.type,dt===ne){if(Ut.tag===7){g(ue,Ut.sibling),ie=x(Ut,he.props.children),ie.return=ue,ue=ie;break e}}else if(Ut.elementType===dt||typeof dt=="object"&&dt!==null&&dt.$$typeof===Je&&uC(dt)===Ut.type){g(ue,Ut.sibling),ie=x(Ut,he.props),ie.ref=zf(ue,Ut,he),ie.return=ue,ue=ie;break e}g(ue,Ut);break}else d(ue,Ut);Ut=Ut.sibling}he.type===ne?(ie=Yl(he.props.children,ue.mode,Ke,he.key),ie.return=ue,ue=ie):(Ke=Dm(he.type,he.key,he.props,null,ue.mode,Ke),Ke.ref=zf(ue,ie,he),Ke.return=ue,ue=Ke)}return L(ue);case N:e:{for(Ut=he.key;ie!==null;){if(ie.key===Ut)if(ie.tag===4&&ie.stateNode.containerInfo===he.containerInfo&&ie.stateNode.implementation===he.implementation){g(ue,ie.sibling),ie=x(ie,he.children||[]),ie.return=ue,ue=ie;break e}else{g(ue,ie);break}else d(ue,ie);ie=ie.sibling}ie=Dy(he,ue.mode,Ke),ie.return=ue,ue=ie}return L(ue);case Je:return Ut=he._init,Zr(ue,ie,Ut(he._payload),Ke)}if(me(he))return wt(ue,ie,he,Ke);if(He(he))return Et(ue,ie,he,Ke);cd(ue,he)}return typeof he=="string"&&he!==""||typeof he=="number"?(he=""+he,ie!==null&&ie.tag===6?(g(ue,ie.sibling),ie=x(ie,he),ie.return=ue,ue=ie):(g(ue,ie),ie=Ju(he,ue.mode,Ke),ie.return=ue,ue=ie),L(ue)):g(ue,ie)}return Zr}var zo=cC(!0),Pi=cC(!1),at=wa(null),Ha=null,Yi=null,ey=null;function ty(){ey=Yi=Ha=null}function ny(u){var d=at.current;tr(at),u._currentValue=d}function ry(u,d,g){for(;u!==null;){var S=u.alternate;if((u.childLanes&d)!==d?(u.childLanes|=d,S!==null&&(S.childLanes|=d)):S!==null&&(S.childLanes&d)!==d&&(S.childLanes|=d),u===g)break;u=u.return}}function dd(u,d){Ha=u,ey=Yi=null,u=u.dependencies,u!==null&&u.firstContext!==null&&(u.lanes&d&&(Ci=!0),u.firstContext=null)}function nr(u){var d=u._currentValue;if(ey!==u)if(u={context:u,memoizedValue:d,next:null},Yi===null){if(Ha===null)throw Error(n(308));Yi=u,Ha.dependencies={lanes:0,firstContext:u}}else Yi=Yi.next=u;return d}var Uu=null;function iy(u){Uu===null?Uu=[u]:Uu.push(u)}function dC(u,d,g,S){var x=d.interleaved;return x===null?(g.next=g,iy(d)):(g.next=x.next,x.next=g),d.interleaved=g,cs(u,S)}function cs(u,d){u.lanes|=d;var g=u.alternate;for(g!==null&&(g.lanes|=d),g=u,u=u.return;u!==null;)u.childLanes|=d,g=u.alternate,g!==null&&(g.childLanes|=d),g=u,u=u.return;return g.tag===3?g.stateNode:null}var bo=!1;function Ul(u){u.updateQueue={baseState:u.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function fC(u,d){u=u.updateQueue,d.updateQueue===u&&(d.updateQueue={baseState:u.baseState,firstBaseUpdate:u.firstBaseUpdate,lastBaseUpdate:u.lastBaseUpdate,shared:u.shared,effects:u.effects})}function Ys(u,d){return{eventTime:u,lane:d,tag:0,payload:null,callback:null,next:null}}function Fl(u,d,g){var S=u.updateQueue;if(S===null)return null;if(S=S.shared,xn&2){var x=S.pending;return x===null?d.next=d:(d.next=x.next,x.next=d),S.pending=d,cs(u,g)}return x=S.interleaved,x===null?(d.next=d,iy(S)):(d.next=x.next,x.next=d),S.interleaved=d,cs(u,g)}function Wp(u,d,g){if(d=d.updateQueue,d!==null&&(d=d.shared,(g&4194240)!==0)){var S=d.lanes;S&=u.pendingLanes,g|=S,d.lanes=g,bf(u,g)}}function hC(u,d){var g=u.updateQueue,S=u.alternate;if(S!==null&&(S=S.updateQueue,g===S)){var x=null,_=null;if(g=g.firstBaseUpdate,g!==null){do{var L={eventTime:g.eventTime,lane:g.lane,tag:g.tag,payload:g.payload,callback:g.callback,next:null};_===null?x=_=L:_=_.next=L,g=g.next}while(g!==null);_===null?x=_=d:_=_.next=d}else x=_=d;g={baseState:S.baseState,firstBaseUpdate:x,lastBaseUpdate:_,shared:S.shared,effects:S.effects},u.updateQueue=g;return}u=g.lastBaseUpdate,u===null?g.firstBaseUpdate=d:u.next=d,g.lastBaseUpdate=d}function Gp(u,d,g,S){var x=u.updateQueue;bo=!1;var _=x.firstBaseUpdate,L=x.lastBaseUpdate,q=x.shared.pending;if(q!==null){x.shared.pending=null;var te=q,ye=te.next;te.next=null,L===null?_=ye:L.next=ye,L=te;var Fe=u.alternate;Fe!==null&&(Fe=Fe.updateQueue,q=Fe.lastBaseUpdate,q!==L&&(q===null?Fe.firstBaseUpdate=ye:q.next=ye,Fe.lastBaseUpdate=te))}if(_!==null){var $e=x.baseState;L=0,Fe=ye=te=null,q=_;do{var Ue=q.lane,mt=q.eventTime;if((S&Ue)===Ue){Fe!==null&&(Fe=Fe.next={eventTime:mt,lane:0,tag:q.tag,payload:q.payload,callback:q.callback,next:null});e:{var wt=u,Et=q;switch(Ue=d,mt=g,Et.tag){case 1:if(wt=Et.payload,typeof wt=="function"){$e=wt.call(mt,$e,Ue);break e}$e=wt;break e;case 3:wt.flags=wt.flags&-65537|128;case 0:if(wt=Et.payload,Ue=typeof wt=="function"?wt.call(mt,$e,Ue):wt,Ue==null)break e;$e=z({},$e,Ue);break e;case 2:bo=!0}}q.callback!==null&&q.lane!==0&&(u.flags|=64,Ue=x.effects,Ue===null?x.effects=[q]:Ue.push(q))}else mt={eventTime:mt,lane:Ue,tag:q.tag,payload:q.payload,callback:q.callback,next:null},Fe===null?(ye=Fe=mt,te=$e):Fe=Fe.next=mt,L|=Ue;if(q=q.next,q===null){if(q=x.shared.pending,q===null)break;Ue=q,q=Ue.next,Ue.next=null,x.lastBaseUpdate=Ue,x.shared.pending=null}}while(!0);if(Fe===null&&(te=$e),x.baseState=te,x.firstBaseUpdate=ye,x.lastBaseUpdate=Fe,d=x.shared.interleaved,d!==null){x=d;do L|=x.lane,x=x.next;while(x!==d)}else _===null&&(x.shared.lanes=0);Gu|=L,u.lanes=L,u.memoizedState=$e}}function ay(u,d,g){if(u=d.effects,d.effects=null,u!==null)for(d=0;d<u.length;d++){var S=u[d],x=S.callback;if(x!==null){if(S.callback=null,S=g,typeof x!="function")throw Error(n(191,x));x.call(S)}}}var fd={},ds=wa(fd),Bf=wa(fd),Hf=wa(fd);function Fu(u){if(u===fd)throw Error(n(174));return u}function oy(u,d){switch(pr(Hf,d),pr(Bf,u),pr(ds,fd),u=d.nodeType,u){case 9:case 11:d=(d=d.documentElement)?d.namespaceURI:Re(null,"");break;default:u=u===8?d.parentNode:d,d=u.namespaceURI||null,u=u.tagName,d=Re(d,u)}tr(ds),pr(ds,d)}function hd(){tr(ds),tr(Bf),tr(Hf)}function sy(u){Fu(Hf.current);var d=Fu(ds.current),g=Re(d,u.type);d!==g&&(pr(Bf,u),pr(ds,g))}function ly(u){Bf.current===u&&(tr(ds),tr(Bf))}var Dr=wa(0);function Yp(u){for(var d=u;d!==null;){if(d.tag===13){var g=d.memoizedState;if(g!==null&&(g=g.dehydrated,g===null||g.data==="$?"||g.data==="$!"))return d}else if(d.tag===19&&d.memoizedProps.revealOrder!==void 0){if(d.flags&128)return d}else if(d.child!==null){d.child.return=d,d=d.child;continue}if(d===u)break;for(;d.sibling===null;){if(d.return===null||d.return===u)return null;d=d.return}d.sibling.return=d.return,d=d.sibling}return null}var uy=[];function $f(){for(var u=0;u<uy.length;u++)uy[u]._workInProgressVersionPrimary=null;uy.length=0}var Mt=j.ReactCurrentDispatcher,vn=j.ReactCurrentBatchConfig,Rn=0,an=null,cr=null,di=null,Kp=!1,qf=!1,Wf=0,cy=0;function Pe(){throw Error(n(321))}function ii(u,d){if(d===null)return!1;for(var g=0;g<d.length&&g<u.length;g++)if(!Uo(u[g],d[g]))return!1;return!0}function $t(u,d,g,S,x,_){if(Rn=_,an=d,d.memoizedState=null,d.updateQueue=null,d.lanes=0,Mt.current=u===null||u.memoizedState===null?cm:dm,u=g(S,x),qf){_=0;do{if(qf=!1,Wf=0,25<=_)throw Error(n(301));_+=1,di=cr=null,d.updateQueue=null,Mt.current=Qf,u=g(S,x)}while(qf)}if(Mt.current=rr,d=cr!==null&&cr.next!==null,Rn=0,di=cr=an=null,Kp=!1,d)throw Error(n(300));return u}function jl(){var u=Wf!==0;return Wf=0,u}function bi(){var u={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return di===null?an.memoizedState=di=u:di=di.next=u,di}function Si(){if(cr===null){var u=an.alternate;u=u!==null?u.memoizedState:null}else u=cr.next;var d=di===null?an.memoizedState:di.next;if(d!==null)di=d,cr=u;else{if(u===null)throw Error(n(310));cr=u,u={memoizedState:cr.memoizedState,baseState:cr.baseState,baseQueue:cr.baseQueue,queue:cr.queue,next:null},di===null?an.memoizedState=di=u:di=di.next=u}return di}function Ra(u,d){return typeof d=="function"?d(u):d}function ju(u){var d=Si(),g=d.queue;if(g===null)throw Error(n(311));g.lastRenderedReducer=u;var S=cr,x=S.baseQueue,_=g.pending;if(_!==null){if(x!==null){var L=x.next;x.next=_.next,_.next=L}S.baseQueue=x=_,g.pending=null}if(x!==null){_=x.next,S=S.baseState;var q=L=null,te=null,ye=_;do{var Fe=ye.lane;if((Rn&Fe)===Fe)te!==null&&(te=te.next={lane:0,action:ye.action,hasEagerState:ye.hasEagerState,eagerState:ye.eagerState,next:null}),S=ye.hasEagerState?ye.eagerState:u(S,ye.action);else{var $e={lane:Fe,action:ye.action,hasEagerState:ye.hasEagerState,eagerState:ye.eagerState,next:null};te===null?(q=te=$e,L=S):te=te.next=$e,an.lanes|=Fe,Gu|=Fe}ye=ye.next}while(ye!==null&&ye!==_);te===null?L=S:te.next=q,Uo(S,d.memoizedState)||(Ci=!0),d.memoizedState=S,d.baseState=L,d.baseQueue=te,g.lastRenderedState=S}if(u=g.interleaved,u!==null){x=u;do _=x.lane,an.lanes|=_,Gu|=_,x=x.next;while(x!==u)}else x===null&&(g.lanes=0);return[d.memoizedState,g.dispatch]}function Vl(u){var d=Si(),g=d.queue;if(g===null)throw Error(n(311));g.lastRenderedReducer=u;var S=g.dispatch,x=g.pending,_=d.memoizedState;if(x!==null){g.pending=null;var L=x=x.next;do _=u(_,L.action),L=L.next;while(L!==x);Uo(_,d.memoizedState)||(Ci=!0),d.memoizedState=_,d.baseQueue===null&&(d.baseState=_),g.lastRenderedState=_}return[_,S]}function pd(){}function Zp(u,d){var g=an,S=Si(),x=d(),_=!Uo(S.memoizedState,x);if(_&&(S.memoizedState=x,Ci=!0),S=S.queue,Gf(Jp.bind(null,g,S,u),[u]),S.getSnapshot!==d||_||di!==null&&di.memoizedState.tag&1){if(g.flags|=2048,Vu(9,Xp.bind(null,g,S,x,d),void 0,null),ai===null)throw Error(n(349));Rn&30||Qp(g,d,x)}return x}function Qp(u,d,g){u.flags|=16384,u={getSnapshot:d,value:g},d=an.updateQueue,d===null?(d={lastEffect:null,stores:null},an.updateQueue=d,d.stores=[u]):(g=d.stores,g===null?d.stores=[u]:g.push(u))}function Xp(u,d,g,S){d.value=g,d.getSnapshot=S,em(d)&&tm(u)}function Jp(u,d,g){return g(function(){em(d)&&tm(u)})}function em(u){var d=u.getSnapshot;u=u.value;try{var g=d();return!Uo(u,g)}catch{return!0}}function tm(u){var d=cs(u,1);d!==null&&Ga(d,u,1,-1)}function nm(u){var d=bi();return typeof u=="function"&&(u=u()),d.memoizedState=d.baseState=u,u={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Ra,lastRenderedState:u},d.queue=u,u=u.dispatch=Zf.bind(null,an,u),[d.memoizedState,u]}function Vu(u,d,g,S){return u={tag:u,create:d,destroy:g,deps:S,next:null},d=an.updateQueue,d===null?(d={lastEffect:null,stores:null},an.updateQueue=d,d.lastEffect=u.next=u):(g=d.lastEffect,g===null?d.lastEffect=u.next=u:(S=g.next,g.next=u,u.next=S,d.lastEffect=u)),u}function rm(){return Si().memoizedState}function md(u,d,g,S){var x=bi();an.flags|=u,x.memoizedState=Vu(1|d,g,void 0,S===void 0?null:S)}function gd(u,d,g,S){var x=Si();S=S===void 0?null:S;var _=void 0;if(cr!==null){var L=cr.memoizedState;if(_=L.destroy,S!==null&&ii(S,L.deps)){x.memoizedState=Vu(d,g,_,S);return}}an.flags|=u,x.memoizedState=Vu(1|d,g,_,S)}function im(u,d){return md(8390656,8,u,d)}function Gf(u,d){return gd(2048,8,u,d)}function am(u,d){return gd(4,2,u,d)}function om(u,d){return gd(4,4,u,d)}function Yf(u,d){if(typeof d=="function")return u=u(),d(u),function(){d(null)};if(d!=null)return u=u(),d.current=u,function(){d.current=null}}function zu(u,d,g){return g=g!=null?g.concat([u]):null,gd(4,4,Yf.bind(null,d,u),g)}function Kf(){}function sm(u,d){var g=Si();d=d===void 0?null:d;var S=g.memoizedState;return S!==null&&d!==null&&ii(d,S[1])?S[0]:(g.memoizedState=[u,d],u)}function lm(u,d){var g=Si();d=d===void 0?null:d;var S=g.memoizedState;return S!==null&&d!==null&&ii(d,S[1])?S[0]:(u=u(),g.memoizedState=[u,d],u)}function um(u,d,g){return Rn&21?(Uo(g,d)||(g=ku(),an.lanes|=g,Gu|=g,u.baseState=!0),d):(u.baseState&&(u.baseState=!1,Ci=!0),u.memoizedState=g)}function pC(u,d){var g=An;An=g!==0&&4>g?g:4,u(!0);var S=vn.transition;vn.transition={};try{u(!1),d()}finally{An=g,vn.transition=S}}function vd(){return Si().memoizedState}function mC(u,d,g){var S=Wa(u);if(g={lane:S,action:g,hasEagerState:!1,eagerState:null,next:null},zl(u))Pa(d,g);else if(g=dC(u,d,g,S),g!==null){var x=mr();Ga(g,u,S,x),gC(g,d,S)}}function Zf(u,d,g){var S=Wa(u),x={lane:S,action:g,hasEagerState:!1,eagerState:null,next:null};if(zl(u))Pa(d,x);else{var _=u.alternate;if(u.lanes===0&&(_===null||_.lanes===0)&&(_=d.lastRenderedReducer,_!==null))try{var L=d.lastRenderedState,q=_(L,g);if(x.hasEagerState=!0,x.eagerState=q,Uo(q,L)){var te=d.interleaved;te===null?(x.next=x,iy(d)):(x.next=te.next,te.next=x),d.interleaved=x;return}}catch{}finally{}g=dC(u,d,x,S),g!==null&&(x=mr(),Ga(g,u,S,x),gC(g,d,S))}}function zl(u){var d=u.alternate;return u===an||d!==null&&d===an}function Pa(u,d){qf=Kp=!0;var g=u.pending;g===null?d.next=d:(d.next=g.next,g.next=d),u.pending=d}function gC(u,d,g){if(g&4194240){var S=d.lanes;S&=u.pendingLanes,g|=S,d.lanes=g,bf(u,g)}}var rr={readContext:nr,useCallback:Pe,useContext:Pe,useEffect:Pe,useImperativeHandle:Pe,useInsertionEffect:Pe,useLayoutEffect:Pe,useMemo:Pe,useReducer:Pe,useRef:Pe,useState:Pe,useDebugValue:Pe,useDeferredValue:Pe,useTransition:Pe,useMutableSource:Pe,useSyncExternalStore:Pe,useId:Pe,unstable_isNewReconciler:!1},cm={readContext:nr,useCallback:function(u,d){return bi().memoizedState=[u,d===void 0?null:d],u},useContext:nr,useEffect:im,useImperativeHandle:function(u,d,g){return g=g!=null?g.concat([u]):null,md(4194308,4,Yf.bind(null,d,u),g)},useLayoutEffect:function(u,d){return md(4194308,4,u,d)},useInsertionEffect:function(u,d){return md(4,2,u,d)},useMemo:function(u,d){var g=bi();return d=d===void 0?null:d,u=u(),g.memoizedState=[u,d],u},useReducer:function(u,d,g){var S=bi();return d=g!==void 0?g(d):d,S.memoizedState=S.baseState=d,u={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:u,lastRenderedState:d},S.queue=u,u=u.dispatch=mC.bind(null,an,u),[S.memoizedState,u]},useRef:function(u){var d=bi();return u={current:u},d.memoizedState=u},useState:nm,useDebugValue:Kf,useDeferredValue:function(u){return bi().memoizedState=u},useTransition:function(){var u=nm(!1),d=u[0];return u=pC.bind(null,u[1]),bi().memoizedState=u,[d,u]},useMutableSource:function(){},useSyncExternalStore:function(u,d,g){var S=an,x=bi();if(kr){if(g===void 0)throw Error(n(407));g=g()}else{if(g=d(),ai===null)throw Error(n(349));Rn&30||Qp(S,d,g)}x.memoizedState=g;var _={value:g,getSnapshot:d};return x.queue=_,im(Jp.bind(null,S,_,u),[u]),S.flags|=2048,Vu(9,Xp.bind(null,S,_,g,d),void 0,null),g},useId:function(){var u=bi(),d=ai.identifierPrefix;if(kr){var g=us,S=aa;g=(S&~(1<<32-ta(S)-1)).toString(32)+g,d=":"+d+"R"+g,g=Wf++,0<g&&(d+="H"+g.toString(32)),d+=":"}else g=cy++,d=":"+d+"r"+g.toString(32)+":";return u.memoizedState=d},unstable_isNewReconciler:!1},dm={readContext:nr,useCallback:sm,useContext:nr,useEffect:Gf,useImperativeHandle:zu,useInsertionEffect:am,useLayoutEffect:om,useMemo:lm,useReducer:ju,useRef:rm,useState:function(){return ju(Ra)},useDebugValue:Kf,useDeferredValue:function(u){var d=Si();return um(d,cr.memoizedState,u)},useTransition:function(){var u=ju(Ra)[0],d=Si().memoizedState;return[u,d]},useMutableSource:pd,useSyncExternalStore:Zp,useId:vd,unstable_isNewReconciler:!1},Qf={readContext:nr,useCallback:sm,useContext:nr,useEffect:Gf,useImperativeHandle:zu,useInsertionEffect:am,useLayoutEffect:om,useMemo:lm,useReducer:Vl,useRef:rm,useState:function(){return Vl(Ra)},useDebugValue:Kf,useDeferredValue:function(u){var d=Si();return cr===null?d.memoizedState=u:um(d,cr.memoizedState,u)},useTransition:function(){var u=Vl(Ra)[0],d=Si().memoizedState;return[u,d]},useMutableSource:pd,useSyncExternalStore:Zp,useId:vd,unstable_isNewReconciler:!1};function Da(u,d){if(u&&u.defaultProps){d=z({},d),u=u.defaultProps;for(var g in u)d[g]===void 0&&(d[g]=u[g]);return d}return d}function dy(u,d,g,S){d=u.memoizedState,g=g(S,d),g=g==null?d:z({},d,g),u.memoizedState=g,u.lanes===0&&(u.updateQueue.baseState=g)}var fm={isMounted:function(u){return(u=u._reactInternals)?ot(u)===u:!1},enqueueSetState:function(u,d,g){u=u._reactInternals;var S=mr(),x=Wa(u),_=Ys(S,x);_.payload=d,g!=null&&(_.callback=g),d=Fl(u,_,x),d!==null&&(Ga(d,u,x,S),Wp(d,u,x))},enqueueReplaceState:function(u,d,g){u=u._reactInternals;var S=mr(),x=Wa(u),_=Ys(S,x);_.tag=1,_.payload=d,g!=null&&(_.callback=g),d=Fl(u,_,x),d!==null&&(Ga(d,u,x,S),Wp(d,u,x))},enqueueForceUpdate:function(u,d){u=u._reactInternals;var g=mr(),S=Wa(u),x=Ys(g,S);x.tag=2,d!=null&&(x.callback=d),d=Fl(u,x,S),d!==null&&(Ga(d,u,S,g),Wp(d,u,S))}};function vC(u,d,g,S,x,_,L){return u=u.stateNode,typeof u.shouldComponentUpdate=="function"?u.shouldComponentUpdate(S,_,L):d.prototype&&d.prototype.isPureReactComponent?!_f(g,S)||!_f(x,_):!0}function yC(u,d,g){var S=!1,x=pn,_=d.contextType;return typeof _=="object"&&_!==null?_=nr(_):(x=Vr(d)?yo:Pr.current,S=d.contextTypes,_=(S=S!=null)?Ba(u,x):pn),d=new d(g,_),u.memoizedState=d.state!==null&&d.state!==void 0?d.state:null,d.updater=fm,u.stateNode=d,d._reactInternals=u,S&&(u=u.stateNode,u.__reactInternalMemoizedUnmaskedChildContext=x,u.__reactInternalMemoizedMaskedChildContext=_),d}function hm(u,d,g,S){u=d.state,typeof d.componentWillReceiveProps=="function"&&d.componentWillReceiveProps(g,S),typeof d.UNSAFE_componentWillReceiveProps=="function"&&d.UNSAFE_componentWillReceiveProps(g,S),d.state!==u&&fm.enqueueReplaceState(d,d.state,null)}function fy(u,d,g,S){var x=u.stateNode;x.props=g,x.state=u.memoizedState,x.refs={},Ul(u);var _=d.contextType;typeof _=="object"&&_!==null?x.context=nr(_):(_=Vr(d)?yo:Pr.current,x.context=Ba(u,_)),x.state=u.memoizedState,_=d.getDerivedStateFromProps,typeof _=="function"&&(dy(u,d,_,g),x.state=u.memoizedState),typeof d.getDerivedStateFromProps=="function"||typeof x.getSnapshotBeforeUpdate=="function"||typeof x.UNSAFE_componentWillMount!="function"&&typeof x.componentWillMount!="function"||(d=x.state,typeof x.componentWillMount=="function"&&x.componentWillMount(),typeof x.UNSAFE_componentWillMount=="function"&&x.UNSAFE_componentWillMount(),d!==x.state&&fm.enqueueReplaceState(x,x.state,null),Gp(u,g,x,S),x.state=u.memoizedState),typeof x.componentDidMount=="function"&&(u.flags|=4194308)}function Bl(u,d){try{var g="",S=d;do g+=Rt(S),S=S.return;while(S);var x=g}catch(_){x=`
98
98
  Error generating stack: `+_.message+`
99
99
  `+_.stack}return{value:u,source:d,stack:x,digest:null}}function pm(u,d,g){return{value:u,source:null,stack:g??null,digest:d??null}}function hy(u,d){try{console.error(d.value)}catch(g){setTimeout(function(){throw g})}}var B_=typeof WeakMap=="function"?WeakMap:Map;function Xf(u,d,g){g=Ys(-1,g),g.tag=3,g.payload={element:null};var S=d.value;return g.callback=function(){$l||($l=!0,oh=S),hy(u,d)},g}function bC(u,d,g){g=Ys(-1,g),g.tag=3;var S=u.type.getDerivedStateFromError;if(typeof S=="function"){var x=d.value;g.payload=function(){return S(x)},g.callback=function(){hy(u,d)}}var _=u.stateNode;return _!==null&&typeof _.componentDidCatch=="function"&&(g.callback=function(){hy(u,d),typeof S!="function"&&(ko===null?ko=new Set([this]):ko.add(this));var L=d.stack;this.componentDidCatch(d.value,{componentStack:L!==null?L:""})}),g}function py(u,d,g){var S=u.pingCache;if(S===null){S=u.pingCache=new B_;var x=new Set;S.set(d,x)}else x=S.get(d),x===void 0&&(x=new Set,S.set(d,x));x.has(g)||(x.add(g),u=Ey.bind(null,u,d,g),d.then(u,u))}function my(u){do{var d;if((d=u.tag===13)&&(d=u.memoizedState,d=d!==null?d.dehydrated!==null:!0),d)return u;u=u.return}while(u!==null);return null}function SC(u,d,g,S,x){return u.mode&1?(u.flags|=65536,u.lanes=x,u):(u===d?u.flags|=65536:(u.flags|=128,g.flags|=131072,g.flags&=-52805,g.tag===1&&(g.alternate===null?g.tag=17:(d=Ys(-1,1),d.tag=2,Fl(g,d,1))),g.lanes|=1),u)}var Bu=j.ReactCurrentOwner,Ci=!1;function Yr(u,d,g,S){d.child=u===null?Pi(d,null,g,S):zo(d,u.child,g,S)}function mm(u,d,g,S,x){g=g.render;var _=d.ref;return dd(d,x),S=$t(u,d,g,S,_,x),g=jl(),u!==null&&!Ci?(d.updateQueue=u.updateQueue,d.flags&=-2053,u.lanes&=~x,Di(u,d,x)):(kr&&g&&Kv(d),d.flags|=1,Yr(u,d,S,x),d.child)}function Aa(u,d,g,S,x){if(u===null){var _=g.type;return typeof _=="function"&&!Py(_)&&_.defaultProps===void 0&&g.compare===null&&g.defaultProps===void 0?(d.tag=15,d.type=_,Hu(u,d,_,S,x)):(u=Dm(g.type,null,S,d,d.mode,x),u.ref=d.ref,u.return=d,d.child=u)}if(_=u.child,!(u.lanes&x)){var L=_.memoizedProps;if(g=g.compare,g=g!==null?g:_f,g(L,S)&&u.ref===d.ref)return Di(u,d,x)}return d.flags|=1,u=Gl(_,S),u.ref=d.ref,u.return=d,d.child=u}function Hu(u,d,g,S,x){if(u!==null){var _=u.memoizedProps;if(_f(_,S)&&u.ref===d.ref)if(Ci=!1,d.pendingProps=S=_,(u.lanes&x)!==0)u.flags&131072&&(Ci=!0);else return d.lanes=u.lanes,Di(u,d,x)}return gm(u,d,g,S,x)}function sn(u,d,g){var S=d.pendingProps,x=S.children,_=u!==null?u.memoizedState:null;if(S.mode==="hidden")if(!(d.mode&1))d.memoizedState={baseLanes:0,cachePool:null,transitions:null},pr(Cd,qa),qa|=g;else{if(!(g&1073741824))return u=_!==null?_.baseLanes|g:g,d.lanes=d.childLanes=1073741824,d.memoizedState={baseLanes:u,cachePool:null,transitions:null},d.updateQueue=null,pr(Cd,qa),qa|=u,null;d.memoizedState={baseLanes:0,cachePool:null,transitions:null},S=_!==null?_.baseLanes:g,pr(Cd,qa),qa|=S}else _!==null?(S=_.baseLanes|g,d.memoizedState=null):S=g,pr(Cd,qa),qa|=S;return Yr(u,d,x,g),d.child}function Jf(u,d){var g=d.ref;(u===null&&g!==null||u!==null&&u.ref!==g)&&(d.flags|=512,d.flags|=2097152)}function gm(u,d,g,S,x){var _=Vr(g)?yo:Pr.current;return _=Ba(d,_),dd(d,x),g=$t(u,d,g,S,_,x),S=jl(),u!==null&&!Ci?(d.updateQueue=u.updateQueue,d.flags&=-2053,u.lanes&=~x,Di(u,d,x)):(kr&&S&&Kv(d),d.flags|=1,Yr(u,d,g,x),d.child)}function H_(u,d,g,S,x){if(Vr(g)){var _=!0;Lu(d)}else _=!1;if(dd(d,x),d.stateNode===null)So(u,d),yC(d,g,S),fy(d,g,S,x),S=!0;else if(u===null){var L=d.stateNode,q=d.memoizedProps;L.props=q;var te=L.context,ye=g.contextType;typeof ye=="object"&&ye!==null?ye=nr(ye):(ye=Vr(g)?yo:Pr.current,ye=Ba(d,ye));var Fe=g.getDerivedStateFromProps,$e=typeof Fe=="function"||typeof L.getSnapshotBeforeUpdate=="function";$e||typeof L.UNSAFE_componentWillReceiveProps!="function"&&typeof L.componentWillReceiveProps!="function"||(q!==S||te!==ye)&&hm(d,L,S,ye),bo=!1;var Ue=d.memoizedState;L.state=Ue,Gp(d,S,L,x),te=d.memoizedState,q!==S||Ue!==te||ni.current||bo?(typeof Fe=="function"&&(dy(d,g,Fe,S),te=d.memoizedState),(q=bo||vC(d,g,q,S,Ue,te,ye))?($e||typeof L.UNSAFE_componentWillMount!="function"&&typeof L.componentWillMount!="function"||(typeof L.componentWillMount=="function"&&L.componentWillMount(),typeof L.UNSAFE_componentWillMount=="function"&&L.UNSAFE_componentWillMount()),typeof L.componentDidMount=="function"&&(d.flags|=4194308)):(typeof L.componentDidMount=="function"&&(d.flags|=4194308),d.memoizedProps=S,d.memoizedState=te),L.props=S,L.state=te,L.context=ye,S=q):(typeof L.componentDidMount=="function"&&(d.flags|=4194308),S=!1)}else{L=d.stateNode,fC(u,d),q=d.memoizedProps,ye=d.type===d.elementType?q:Da(d.type,q),L.props=ye,$e=d.pendingProps,Ue=L.context,te=g.contextType,typeof te=="object"&&te!==null?te=nr(te):(te=Vr(g)?yo:Pr.current,te=Ba(d,te));var mt=g.getDerivedStateFromProps;(Fe=typeof mt=="function"||typeof L.getSnapshotBeforeUpdate=="function")||typeof L.UNSAFE_componentWillReceiveProps!="function"&&typeof L.componentWillReceiveProps!="function"||(q!==$e||Ue!==te)&&hm(d,L,S,te),bo=!1,Ue=d.memoizedState,L.state=Ue,Gp(d,S,L,x);var wt=d.memoizedState;q!==$e||Ue!==wt||ni.current||bo?(typeof mt=="function"&&(dy(d,g,mt,S),wt=d.memoizedState),(ye=bo||vC(d,g,ye,S,Ue,wt,te)||!1)?(Fe||typeof L.UNSAFE_componentWillUpdate!="function"&&typeof L.componentWillUpdate!="function"||(typeof L.componentWillUpdate=="function"&&L.componentWillUpdate(S,wt,te),typeof L.UNSAFE_componentWillUpdate=="function"&&L.UNSAFE_componentWillUpdate(S,wt,te)),typeof L.componentDidUpdate=="function"&&(d.flags|=4),typeof L.getSnapshotBeforeUpdate=="function"&&(d.flags|=1024)):(typeof L.componentDidUpdate!="function"||q===u.memoizedProps&&Ue===u.memoizedState||(d.flags|=4),typeof L.getSnapshotBeforeUpdate!="function"||q===u.memoizedProps&&Ue===u.memoizedState||(d.flags|=1024),d.memoizedProps=S,d.memoizedState=wt),L.props=S,L.state=wt,L.context=te,S=ye):(typeof L.componentDidUpdate!="function"||q===u.memoizedProps&&Ue===u.memoizedState||(d.flags|=4),typeof L.getSnapshotBeforeUpdate!="function"||q===u.memoizedProps&&Ue===u.memoizedState||(d.flags|=1024),S=!1)}return gy(u,d,g,S,_,x)}function gy(u,d,g,S,x,_){Jf(u,d);var L=(d.flags&128)!==0;if(!S&&!L)return x&&Gi(d,g,!1),Di(u,d,_);S=d.stateNode,Bu.current=d;var q=L&&typeof g.getDerivedStateFromError!="function"?null:S.render();return d.flags|=1,u!==null&&L?(d.child=zo(d,u.child,null,_),d.child=zo(d,null,q,_)):Yr(u,d,q,_),d.memoizedState=S.state,x&&Gi(d,g,!0),d.child}function vm(u){var d=u.stateNode;d.pendingContext?$p(u,d.pendingContext,d.pendingContext!==d.context):d.context&&$p(u,d.context,!1),oy(u,d.containerInfo)}function yd(u,d,g,S,x){return Gs(),Vf(x),d.flags|=256,Yr(u,d,g,S),d.child}var vy={dehydrated:null,treeContext:null,retryLane:0};function ym(u){return{baseLanes:u,cachePool:null,transitions:null}}function CC(u,d,g){var S=d.pendingProps,x=Dr.current,_=!1,L=(d.flags&128)!==0,q;if((q=L)||(q=u!==null&&u.memoizedState===null?!1:(x&2)!==0),q?(_=!0,d.flags&=-129):(u===null||u.memoizedState!==null)&&(x|=1),pr(Dr,x&1),u===null)return Jv(d),u=d.memoizedState,u!==null&&(u=u.dehydrated,u!==null)?(d.mode&1?u.data==="$!"?d.lanes=8:d.lanes=1073741824:d.lanes=1,null):(L=S.children,u=S.fallback,_?(S=d.mode,_=d.child,L={mode:"hidden",children:L},!(S&1)&&_!==null?(_.childLanes=0,_.pendingProps=L):_=Ed(L,S,0,null),u=Yl(u,S,g,null),_.return=d,u.return=d,_.sibling=u,d.child=_,d.child.memoizedState=ym(g),d.memoizedState=vy,u):eh(d,L));if(x=u.memoizedState,x!==null&&(q=x.dehydrated,q!==null))return kC(u,d,L,S,q,x,g);if(_){_=S.fallback,L=d.mode,x=u.child,q=x.sibling;var te={mode:"hidden",children:S.children};return!(L&1)&&d.child!==x?(S=d.child,S.childLanes=0,S.pendingProps=te,d.deletions=null):(S=Gl(x,te),S.subtreeFlags=x.subtreeFlags&14680064),q!==null?_=Gl(q,_):(_=Yl(_,L,g,null),_.flags|=2),_.return=d,S.return=d,S.sibling=_,d.child=S,S=_,_=d.child,L=u.child.memoizedState,L=L===null?ym(g):{baseLanes:L.baseLanes|g,cachePool:null,transitions:L.transitions},_.memoizedState=L,_.childLanes=u.childLanes&~g,d.memoizedState=vy,S}return _=u.child,u=_.sibling,S=Gl(_,{mode:"visible",children:S.children}),!(d.mode&1)&&(S.lanes=g),S.return=d,S.sibling=null,u!==null&&(g=d.deletions,g===null?(d.deletions=[u],d.flags|=16):g.push(u)),d.child=S,d.memoizedState=null,S}function eh(u,d){return d=Ed({mode:"visible",children:d},u.mode,0,null),d.return=u,u.child=d}function bm(u,d,g,S){return S!==null&&Vf(S),zo(d,u.child,null,g),u=eh(d,d.pendingProps.children),u.flags|=2,d.memoizedState=null,u}function kC(u,d,g,S,x,_,L){if(g)return d.flags&256?(d.flags&=-257,S=pm(Error(n(422))),bm(u,d,L,S)):d.memoizedState!==null?(d.child=u.child,d.flags|=128,null):(_=S.fallback,x=d.mode,S=Ed({mode:"visible",children:S.children},x,0,null),_=Yl(_,x,L,null),_.flags|=2,S.return=d,_.return=d,S.sibling=_,d.child=S,d.mode&1&&zo(d,u.child,null,L),d.child.memoizedState=ym(L),d.memoizedState=vy,_);if(!(d.mode&1))return bm(u,d,L,null);if(x.data==="$!"){if(S=x.nextSibling&&x.nextSibling.dataset,S)var q=S.dgst;return S=q,_=Error(n(419)),S=pm(_,S,void 0),bm(u,d,L,S)}if(q=(L&u.childLanes)!==0,Ci||q){if(S=ai,S!==null){switch(L&-L){case 4:x=2;break;case 16:x=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:x=32;break;case 536870912:x=268435456;break;default:x=0}x=x&(S.suspendedLanes|L)?0:x,x!==0&&x!==_.retryLane&&(_.retryLane=x,cs(u,x),Ga(S,u,x,-1))}return wy(),S=pm(Error(n(421))),bm(u,d,L,S)}return x.data==="$?"?(d.flags|=128,d.child=u.child,d=K_.bind(null,u),x._reactRetry=d,null):(u=_.treeContext,Ea=Fo(x.nextSibling),_a=d,kr=!0,Vo=null,u!==null&&(Ri[ri++]=aa,Ri[ri++]=us,Ri[ri++]=Nu,aa=u.id,us=u.overflow,Nu=d),d=eh(d,S.children),d.flags|=4096,d)}function yy(u,d,g){u.lanes|=d;var S=u.alternate;S!==null&&(S.lanes|=d),ry(u.return,d,g)}function Sm(u,d,g,S,x){var _=u.memoizedState;_===null?u.memoizedState={isBackwards:d,rendering:null,renderingStartTime:0,last:S,tail:g,tailMode:x}:(_.isBackwards=d,_.rendering=null,_.renderingStartTime=0,_.last=S,_.tail=g,_.tailMode=x)}function Oa(u,d,g){var S=d.pendingProps,x=S.revealOrder,_=S.tail;if(Yr(u,d,S.children,g),S=Dr.current,S&2)S=S&1|2,d.flags|=128;else{if(u!==null&&u.flags&128)e:for(u=d.child;u!==null;){if(u.tag===13)u.memoizedState!==null&&yy(u,g,d);else if(u.tag===19)yy(u,g,d);else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===d)break e;for(;u.sibling===null;){if(u.return===null||u.return===d)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}S&=1}if(pr(Dr,S),!(d.mode&1))d.memoizedState=null;else switch(x){case"forwards":for(g=d.child,x=null;g!==null;)u=g.alternate,u!==null&&Yp(u)===null&&(x=g),g=g.sibling;g=x,g===null?(x=d.child,d.child=null):(x=g.sibling,g.sibling=null),Sm(d,!1,x,g,_);break;case"backwards":for(g=null,x=d.child,d.child=null;x!==null;){if(u=x.alternate,u!==null&&Yp(u)===null){d.child=x;break}u=x.sibling,x.sibling=g,g=x,x=u}Sm(d,!0,g,null,_);break;case"together":Sm(d,!1,null,null,void 0);break;default:d.memoizedState=null}return d.child}function So(u,d){!(d.mode&1)&&u!==null&&(u.alternate=null,d.alternate=null,d.flags|=2)}function Di(u,d,g){if(u!==null&&(d.dependencies=u.dependencies),Gu|=d.lanes,!(g&d.childLanes))return null;if(u!==null&&d.child!==u.child)throw Error(n(153));if(d.child!==null){for(u=d.child,g=Gl(u,u.pendingProps),d.child=g,g.return=d;u.sibling!==null;)u=u.sibling,g=g.sibling=Gl(u,u.pendingProps),g.return=d;g.sibling=null}return d.child}function Cm(u,d,g){switch(d.tag){case 3:vm(d),Gs();break;case 5:sy(d);break;case 1:Vr(d.type)&&Lu(d);break;case 4:oy(d,d.stateNode.containerInfo);break;case 10:var S=d.type._context,x=d.memoizedProps.value;pr(at,S._currentValue),S._currentValue=x;break;case 13:if(S=d.memoizedState,S!==null)return S.dehydrated!==null?(pr(Dr,Dr.current&1),d.flags|=128,null):g&d.child.childLanes?CC(u,d,g):(pr(Dr,Dr.current&1),u=Di(u,d,g),u!==null?u.sibling:null);pr(Dr,Dr.current&1);break;case 19:if(S=(g&d.childLanes)!==0,u.flags&128){if(S)return Oa(u,d,g);d.flags|=128}if(x=d.memoizedState,x!==null&&(x.rendering=null,x.tail=null,x.lastEffect=null),pr(Dr,Dr.current),S)break;return null;case 22:case 23:return d.lanes=0,sn(u,d,g)}return Di(u,d,g)}var bd,$a,fi,TC;bd=function(u,d){for(var g=d.child;g!==null;){if(g.tag===5||g.tag===6)u.appendChild(g.stateNode);else if(g.tag!==4&&g.child!==null){g.child.return=g,g=g.child;continue}if(g===d)break;for(;g.sibling===null;){if(g.return===null||g.return===d)return;g=g.return}g.sibling.return=g.return,g=g.sibling}},$a=function(){},fi=function(u,d,g,S){var x=u.memoizedProps;if(x!==S){u=d.stateNode,Fu(ds.current);var _=null;switch(g){case"input":x=Xn(u,x),S=Xn(u,S),_=[];break;case"select":x=z({},x,{value:void 0}),S=z({},S,{value:void 0}),_=[];break;case"textarea":x=ze(u,x),S=ze(u,S),_=[];break;default:typeof x.onClick!="function"&&typeof S.onClick=="function"&&(u.onclick=Vp)}un(g,S);var L;g=null;for(ye in x)if(!S.hasOwnProperty(ye)&&x.hasOwnProperty(ye)&&x[ye]!=null)if(ye==="style"){var q=x[ye];for(L in q)q.hasOwnProperty(L)&&(g||(g={}),g[L]="")}else ye!=="dangerouslySetInnerHTML"&&ye!=="children"&&ye!=="suppressContentEditableWarning"&&ye!=="suppressHydrationWarning"&&ye!=="autoFocus"&&(a.hasOwnProperty(ye)?_||(_=[]):(_=_||[]).push(ye,null));for(ye in S){var te=S[ye];if(q=x!=null?x[ye]:void 0,S.hasOwnProperty(ye)&&te!==q&&(te!=null||q!=null))if(ye==="style")if(q){for(L in q)!q.hasOwnProperty(L)||te&&te.hasOwnProperty(L)||(g||(g={}),g[L]="");for(L in te)te.hasOwnProperty(L)&&q[L]!==te[L]&&(g||(g={}),g[L]=te[L])}else g||(_||(_=[]),_.push(ye,g)),g=te;else ye==="dangerouslySetInnerHTML"?(te=te?te.__html:void 0,q=q?q.__html:void 0,te!=null&&q!==te&&(_=_||[]).push(ye,te)):ye==="children"?typeof te!="string"&&typeof te!="number"||(_=_||[]).push(ye,""+te):ye!=="suppressContentEditableWarning"&&ye!=="suppressHydrationWarning"&&(a.hasOwnProperty(ye)?(te!=null&&ye==="onScroll"&&Zn("scroll",u),_||q===te||(_=[])):(_=_||[]).push(ye,te))}g&&(_=_||[]).push("style",g);var ye=_;(d.updateQueue=ye)&&(d.flags|=4)}},TC=function(u,d,g,S){g!==S&&(d.flags|=4)};function th(u,d){if(!kr)switch(u.tailMode){case"hidden":d=u.tail;for(var g=null;d!==null;)d.alternate!==null&&(g=d),d=d.sibling;g===null?u.tail=null:g.sibling=null;break;case"collapsed":g=u.tail;for(var S=null;g!==null;)g.alternate!==null&&(S=g),g=g.sibling;S===null?d||u.tail===null?u.tail=null:u.tail.sibling=null:S.sibling=null}}function Ki(u){var d=u.alternate!==null&&u.alternate.child===u.child,g=0,S=0;if(d)for(var x=u.child;x!==null;)g|=x.lanes|x.childLanes,S|=x.subtreeFlags&14680064,S|=x.flags&14680064,x.return=u,x=x.sibling;else for(x=u.child;x!==null;)g|=x.lanes|x.childLanes,S|=x.subtreeFlags,S|=x.flags,x.return=u,x=x.sibling;return u.subtreeFlags|=S,u.childLanes=g,d}function by(u,d,g){var S=d.pendingProps;switch(qp(d),d.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ki(d),null;case 1:return Vr(d.type)&&ls(),Ki(d),null;case 3:return S=d.stateNode,hd(),tr(ni),tr(Pr),$f(),S.pendingContext&&(S.context=S.pendingContext,S.pendingContext=null),(u===null||u.child===null)&&(Gr(d)?d.flags|=4:u===null||u.memoizedState.isDehydrated&&!(d.flags&256)||(d.flags|=1024,Vo!==null&&(ch(Vo),Vo=null))),$a(u,d),Ki(d),null;case 5:ly(d);var x=Fu(Hf.current);if(g=d.type,u!==null&&d.stateNode!=null)fi(u,d,g,S,x),u.ref!==d.ref&&(d.flags|=512,d.flags|=2097152);else{if(!S){if(d.stateNode===null)throw Error(n(166));return Ki(d),null}if(u=Fu(ds.current),Gr(d)){S=d.stateNode,g=d.type;var _=d.memoizedProps;switch(S[vo]=d,S[If]=_,u=(d.mode&1)!==0,g){case"dialog":Zn("cancel",S),Zn("close",S);break;case"iframe":case"object":case"embed":Zn("load",S);break;case"video":case"audio":for(x=0;x<Af.length;x++)Zn(Af[x],S);break;case"source":Zn("error",S);break;case"img":case"image":case"link":Zn("error",S),Zn("load",S);break;case"details":Zn("toggle",S);break;case"input":Nr(S,_),Zn("invalid",S);break;case"select":S._wrapperState={wasMultiple:!!_.multiple},Zn("invalid",S);break;case"textarea":Oe(S,_),Zn("invalid",S)}un(g,_),x=null;for(var L in _)if(_.hasOwnProperty(L)){var q=_[L];L==="children"?typeof q=="string"?S.textContent!==q&&(_.suppressHydrationWarning!==!0&&jp(S.textContent,q,u),x=["children",q]):typeof q=="number"&&S.textContent!==""+q&&(_.suppressHydrationWarning!==!0&&jp(S.textContent,q,u),x=["children",""+q]):a.hasOwnProperty(L)&&q!=null&&L==="onScroll"&&Zn("scroll",S)}switch(g){case"input":qn(S),Z(S,_,!0);break;case"textarea":qn(S),Nt(S);break;case"select":case"option":break;default:typeof _.onClick=="function"&&(S.onclick=Vp)}S=x,d.updateQueue=S,S!==null&&(d.flags|=4)}else{L=x.nodeType===9?x:x.ownerDocument,u==="http://www.w3.org/1999/xhtml"&&(u=fe(g)),u==="http://www.w3.org/1999/xhtml"?g==="script"?(u=L.createElement("div"),u.innerHTML="<script><\/script>",u=u.removeChild(u.firstChild)):typeof S.is=="string"?u=L.createElement(g,{is:S.is}):(u=L.createElement(g),g==="select"&&(L=u,S.multiple?L.multiple=!0:S.size&&(L.size=S.size))):u=L.createElementNS(u,g),u[vo]=d,u[If]=S,bd(u,d,!1,!1),d.stateNode=u;e:{switch(L=Dn(g,S),g){case"dialog":Zn("cancel",u),Zn("close",u),x=S;break;case"iframe":case"object":case"embed":Zn("load",u),x=S;break;case"video":case"audio":for(x=0;x<Af.length;x++)Zn(Af[x],u);x=S;break;case"source":Zn("error",u),x=S;break;case"img":case"image":case"link":Zn("error",u),Zn("load",u),x=S;break;case"details":Zn("toggle",u),x=S;break;case"input":Nr(u,S),x=Xn(u,S),Zn("invalid",u);break;case"option":x=S;break;case"select":u._wrapperState={wasMultiple:!!S.multiple},x=z({},S,{value:void 0}),Zn("invalid",u);break;case"textarea":Oe(u,S),x=ze(u,S),Zn("invalid",u);break;default:x=S}un(g,x),q=x;for(_ in q)if(q.hasOwnProperty(_)){var te=q[_];_==="style"?ln(u,te):_==="dangerouslySetInnerHTML"?(te=te?te.__html:void 0,te!=null&&Ft(u,te)):_==="children"?typeof te=="string"?(g!=="textarea"||te!=="")&&Kt(u,te):typeof te=="number"&&Kt(u,""+te):_!=="suppressContentEditableWarning"&&_!=="suppressHydrationWarning"&&_!=="autoFocus"&&(a.hasOwnProperty(_)?te!=null&&_==="onScroll"&&Zn("scroll",u):te!=null&&V(u,_,te,L))}switch(g){case"input":qn(u),Z(u,S,!1);break;case"textarea":qn(u),Nt(u);break;case"option":S.value!=null&&u.setAttribute("value",""+it(S.value));break;case"select":u.multiple=!!S.multiple,_=S.value,_!=null?Ve(u,!!S.multiple,_,!1):S.defaultValue!=null&&Ve(u,!!S.multiple,S.defaultValue,!0);break;default:typeof x.onClick=="function"&&(u.onclick=Vp)}switch(g){case"button":case"input":case"select":case"textarea":S=!!S.autoFocus;break e;case"img":S=!0;break e;default:S=!1}}S&&(d.flags|=4)}d.ref!==null&&(d.flags|=512,d.flags|=2097152)}return Ki(d),null;case 6:if(u&&d.stateNode!=null)TC(u,d,u.memoizedProps,S);else{if(typeof S!="string"&&d.stateNode===null)throw Error(n(166));if(g=Fu(Hf.current),Fu(ds.current),Gr(d)){if(S=d.stateNode,g=d.memoizedProps,S[vo]=d,(_=S.nodeValue!==g)&&(u=_a,u!==null))switch(u.tag){case 3:jp(S.nodeValue,g,(u.mode&1)!==0);break;case 5:u.memoizedProps.suppressHydrationWarning!==!0&&jp(S.nodeValue,g,(u.mode&1)!==0)}_&&(d.flags|=4)}else S=(g.nodeType===9?g:g.ownerDocument).createTextNode(S),S[vo]=d,d.stateNode=S}return Ki(d),null;case 13:if(tr(Dr),S=d.memoizedState,u===null||u.memoizedState!==null&&u.memoizedState.dehydrated!==null){if(kr&&Ea!==null&&d.mode&1&&!(d.flags&128))lC(),Gs(),d.flags|=98560,_=!1;else if(_=Gr(d),S!==null&&S.dehydrated!==null){if(u===null){if(!_)throw Error(n(318));if(_=d.memoizedState,_=_!==null?_.dehydrated:null,!_)throw Error(n(317));_[vo]=d}else Gs(),!(d.flags&128)&&(d.memoizedState=null),d.flags|=4;Ki(d),_=!1}else Vo!==null&&(ch(Vo),Vo=null),_=!0;if(!_)return d.flags&65536?d:null}return d.flags&128?(d.lanes=g,d):(S=S!==null,S!==(u!==null&&u.memoizedState!==null)&&S&&(d.child.flags|=8192,d.mode&1&&(u===null||Dr.current&1?hi===0&&(hi=3):wy())),d.updateQueue!==null&&(d.flags|=4),Ki(d),null);case 4:return hd(),$a(u,d),u===null&&Mf(d.stateNode.containerInfo),Ki(d),null;case 10:return ny(d.type._context),Ki(d),null;case 17:return Vr(d.type)&&ls(),Ki(d),null;case 19:if(tr(Dr),_=d.memoizedState,_===null)return Ki(d),null;if(S=(d.flags&128)!==0,L=_.rendering,L===null)if(S)th(_,!1);else{if(hi!==0||u!==null&&u.flags&128)for(u=d.child;u!==null;){if(L=Yp(u),L!==null){for(d.flags|=128,th(_,!1),S=L.updateQueue,S!==null&&(d.updateQueue=S,d.flags|=4),d.subtreeFlags=0,S=g,g=d.child;g!==null;)_=g,u=S,_.flags&=14680066,L=_.alternate,L===null?(_.childLanes=0,_.lanes=u,_.child=null,_.subtreeFlags=0,_.memoizedProps=null,_.memoizedState=null,_.updateQueue=null,_.dependencies=null,_.stateNode=null):(_.childLanes=L.childLanes,_.lanes=L.lanes,_.child=L.child,_.subtreeFlags=0,_.deletions=null,_.memoizedProps=L.memoizedProps,_.memoizedState=L.memoizedState,_.updateQueue=L.updateQueue,_.type=L.type,u=L.dependencies,_.dependencies=u===null?null:{lanes:u.lanes,firstContext:u.firstContext}),g=g.sibling;return pr(Dr,Dr.current&1|2),d.child}u=u.sibling}_.tail!==null&&Yn()>Td&&(d.flags|=128,S=!0,th(_,!1),d.lanes=4194304)}else{if(!S)if(u=Yp(L),u!==null){if(d.flags|=128,S=!0,g=u.updateQueue,g!==null&&(d.updateQueue=g,d.flags|=4),th(_,!0),_.tail===null&&_.tailMode==="hidden"&&!L.alternate&&!kr)return Ki(d),null}else 2*Yn()-_.renderingStartTime>Td&&g!==1073741824&&(d.flags|=128,S=!0,th(_,!1),d.lanes=4194304);_.isBackwards?(L.sibling=d.child,d.child=L):(g=_.last,g!==null?g.sibling=L:d.child=L,_.last=L)}return _.tail!==null?(d=_.tail,_.rendering=d,_.tail=d.sibling,_.renderingStartTime=Yn(),d.sibling=null,g=Dr.current,pr(Dr,S?g&1|2:g&1),d):(Ki(d),null);case 22:case 23:return xy(),S=d.memoizedState!==null,u!==null&&u.memoizedState!==null!==S&&(d.flags|=8192),S&&d.mode&1?qa&1073741824&&(Ki(d),d.subtreeFlags&6&&(d.flags|=8192)):Ki(d),null;case 24:return null;case 25:return null}throw Error(n(156,d.tag))}function xC(u,d){switch(qp(d),d.tag){case 1:return Vr(d.type)&&ls(),u=d.flags,u&65536?(d.flags=u&-65537|128,d):null;case 3:return hd(),tr(ni),tr(Pr),$f(),u=d.flags,u&65536&&!(u&128)?(d.flags=u&-65537|128,d):null;case 5:return ly(d),null;case 13:if(tr(Dr),u=d.memoizedState,u!==null&&u.dehydrated!==null){if(d.alternate===null)throw Error(n(340));Gs()}return u=d.flags,u&65536?(d.flags=u&-65537|128,d):null;case 19:return tr(Dr),null;case 4:return hd(),null;case 10:return ny(d.type._context),null;case 22:case 23:return xy(),null;case 24:return null;default:return null}}var $u=!1,Ai=!1,$_=typeof WeakSet=="function"?WeakSet:Set,kt=null;function Hl(u,d){var g=u.ref;if(g!==null)if(typeof g=="function")try{g(null)}catch(S){zr(u,d,S)}else g.current=null}function Sy(u,d,g){try{g()}catch(S){zr(u,d,S)}}var Cy=!1;function q_(u,d){if(Au=El,u=Dl(),ed(u)){if("selectionStart"in u)var g={start:u.selectionStart,end:u.selectionEnd};else e:{g=(g=u.ownerDocument)&&g.defaultView||window;var S=g.getSelection&&g.getSelection();if(S&&S.rangeCount!==0){g=S.anchorNode;var x=S.anchorOffset,_=S.focusNode;S=S.focusOffset;try{g.nodeType,_.nodeType}catch{g=null;break e}var L=0,q=-1,te=-1,ye=0,Fe=0,$e=u,Ue=null;t:for(;;){for(var mt;$e!==g||x!==0&&$e.nodeType!==3||(q=L+x),$e!==_||S!==0&&$e.nodeType!==3||(te=L+S),$e.nodeType===3&&(L+=$e.nodeValue.length),(mt=$e.firstChild)!==null;)Ue=$e,$e=mt;for(;;){if($e===u)break t;if(Ue===g&&++ye===x&&(q=L),Ue===_&&++Fe===S&&(te=L),(mt=$e.nextSibling)!==null)break;$e=Ue,Ue=$e.parentNode}$e=mt}g=q===-1||te===-1?null:{start:q,end:te}}else g=null}g=g||{start:0,end:0}}else g=null;for(Nf={focusedElem:u,selectionRange:g},El=!1,kt=d;kt!==null;)if(d=kt,u=d.child,(d.subtreeFlags&1028)!==0&&u!==null)u.return=d,kt=u;else for(;kt!==null;){d=kt;try{var wt=d.alternate;if(d.flags&1024)switch(d.tag){case 0:case 11:case 15:break;case 1:if(wt!==null){var Et=wt.memoizedProps,Zr=wt.memoizedState,ue=d.stateNode,ie=ue.getSnapshotBeforeUpdate(d.elementType===d.type?Et:Da(d.type,Et),Zr);ue.__reactInternalSnapshotBeforeUpdate=ie}break;case 3:var he=d.stateNode.containerInfo;he.nodeType===1?he.textContent="":he.nodeType===9&&he.documentElement&&he.removeChild(he.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(Ke){zr(d,d.return,Ke)}if(u=d.sibling,u!==null){u.return=d.return,kt=u;break}kt=d.return}return wt=Cy,Cy=!1,wt}function Sd(u,d,g){var S=d.updateQueue;if(S=S!==null?S.lastEffect:null,S!==null){var x=S=S.next;do{if((x.tag&u)===u){var _=x.destroy;x.destroy=void 0,_!==void 0&&Sy(d,g,_)}x=x.next}while(x!==S)}}function km(u,d){if(d=d.updateQueue,d=d!==null?d.lastEffect:null,d!==null){var g=d=d.next;do{if((g.tag&u)===u){var S=g.create;g.destroy=S()}g=g.next}while(g!==d)}}function Tm(u){var d=u.ref;if(d!==null){var g=u.stateNode;switch(u.tag){case 5:u=g;break;default:u=g}typeof d=="function"?d(u):d.current=u}}function wC(u){var d=u.alternate;d!==null&&(u.alternate=null,wC(d)),u.child=null,u.deletions=null,u.sibling=null,u.tag===5&&(d=u.stateNode,d!==null&&(delete d[vo],delete d[If],delete d[Wv],delete d[Gv],delete d[ld])),u.stateNode=null,u.return=null,u.dependencies=null,u.memoizedProps=null,u.memoizedState=null,u.pendingProps=null,u.stateNode=null,u.updateQueue=null}function xm(u){return u.tag===5||u.tag===3||u.tag===4}function nh(u){e:for(;;){for(;u.sibling===null;){if(u.return===null||xm(u.return))return null;u=u.return}for(u.sibling.return=u.return,u=u.sibling;u.tag!==5&&u.tag!==6&&u.tag!==18;){if(u.flags&2||u.child===null||u.tag===4)continue e;u.child.return=u,u=u.child}if(!(u.flags&2))return u.stateNode}}function fs(u,d,g){var S=u.tag;if(S===5||S===6)u=u.stateNode,d?g.nodeType===8?g.parentNode.insertBefore(u,d):g.insertBefore(u,d):(g.nodeType===8?(d=g.parentNode,d.insertBefore(u,g)):(d=g,d.appendChild(u)),g=g._reactRootContainer,g!=null||d.onclick!==null||(d.onclick=Vp));else if(S!==4&&(u=u.child,u!==null))for(fs(u,d,g),u=u.sibling;u!==null;)fs(u,d,g),u=u.sibling}function hs(u,d,g){var S=u.tag;if(S===5||S===6)u=u.stateNode,d?g.insertBefore(u,d):g.appendChild(u);else if(S!==4&&(u=u.child,u!==null))for(hs(u,d,g),u=u.sibling;u!==null;)hs(u,d,g),u=u.sibling}var Ar=null,oa=!1;function Co(u,d,g){for(g=g.child;g!==null;)Ks(u,d,g),g=g.sibling}function Ks(u,d,g){if(Ca&&typeof Ca.onCommitFiberUnmount=="function")try{Ca.onCommitFiberUnmount(Tl,g)}catch{}switch(g.tag){case 5:Ai||Hl(g,d);case 6:var S=Ar,x=oa;Ar=null,Co(u,d,g),Ar=S,oa=x,Ar!==null&&(oa?(u=Ar,g=g.stateNode,u.nodeType===8?u.parentNode.removeChild(g):u.removeChild(g)):Ar.removeChild(g.stateNode));break;case 18:Ar!==null&&(oa?(u=Ar,g=g.stateNode,u.nodeType===8?od(u.parentNode,g):u.nodeType===1&&od(u,g),po(u)):od(Ar,g.stateNode));break;case 4:S=Ar,x=oa,Ar=g.stateNode.containerInfo,oa=!0,Co(u,d,g),Ar=S,oa=x;break;case 0:case 11:case 14:case 15:if(!Ai&&(S=g.updateQueue,S!==null&&(S=S.lastEffect,S!==null))){x=S=S.next;do{var _=x,L=_.destroy;_=_.tag,L!==void 0&&(_&2||_&4)&&Sy(g,d,L),x=x.next}while(x!==S)}Co(u,d,g);break;case 1:if(!Ai&&(Hl(g,d),S=g.stateNode,typeof S.componentWillUnmount=="function"))try{S.props=g.memoizedProps,S.state=g.memoizedState,S.componentWillUnmount()}catch(q){zr(g,d,q)}Co(u,d,g);break;case 21:Co(u,d,g);break;case 22:g.mode&1?(Ai=(S=Ai)||g.memoizedState!==null,Co(u,d,g),Ai=S):Co(u,d,g);break;default:Co(u,d,g)}}function _C(u){var d=u.updateQueue;if(d!==null){u.updateQueue=null;var g=u.stateNode;g===null&&(g=u.stateNode=new $_),d.forEach(function(S){var x=Z_.bind(null,u,S);g.has(S)||(g.add(S),S.then(x,x))})}}function Bo(u,d){var g=d.deletions;if(g!==null)for(var S=0;S<g.length;S++){var x=g[S];try{var _=u,L=d,q=L;e:for(;q!==null;){switch(q.tag){case 5:Ar=q.stateNode,oa=!1;break e;case 3:Ar=q.stateNode.containerInfo,oa=!0;break e;case 4:Ar=q.stateNode.containerInfo,oa=!0;break e}q=q.return}if(Ar===null)throw Error(n(160));Ks(_,L,x),Ar=null,oa=!1;var te=x.alternate;te!==null&&(te.return=null),x.return=null}catch(ye){zr(x,d,ye)}}if(d.subtreeFlags&12854)for(d=d.child;d!==null;)EC(d,u),d=d.sibling}function EC(u,d){var g=u.alternate,S=u.flags;switch(u.tag){case 0:case 11:case 14:case 15:if(Bo(d,u),Ho(u),S&4){try{Sd(3,u,u.return),km(3,u)}catch(Et){zr(u,u.return,Et)}try{Sd(5,u,u.return)}catch(Et){zr(u,u.return,Et)}}break;case 1:Bo(d,u),Ho(u),S&512&&g!==null&&Hl(g,g.return);break;case 5:if(Bo(d,u),Ho(u),S&512&&g!==null&&Hl(g,g.return),u.flags&32){var x=u.stateNode;try{Kt(x,"")}catch(Et){zr(u,u.return,Et)}}if(S&4&&(x=u.stateNode,x!=null)){var _=u.memoizedProps,L=g!==null?g.memoizedProps:_,q=u.type,te=u.updateQueue;if(u.updateQueue=null,te!==null)try{q==="input"&&_.type==="radio"&&_.name!=null&&bn(x,_),Dn(q,L);var ye=Dn(q,_);for(L=0;L<te.length;L+=2){var Fe=te[L],$e=te[L+1];Fe==="style"?ln(x,$e):Fe==="dangerouslySetInnerHTML"?Ft(x,$e):Fe==="children"?Kt(x,$e):V(x,Fe,$e,ye)}switch(q){case"input":Lt(x,_);break;case"textarea":ut(x,_);break;case"select":var Ue=x._wrapperState.wasMultiple;x._wrapperState.wasMultiple=!!_.multiple;var mt=_.value;mt!=null?Ve(x,!!_.multiple,mt,!1):Ue!==!!_.multiple&&(_.defaultValue!=null?Ve(x,!!_.multiple,_.defaultValue,!0):Ve(x,!!_.multiple,_.multiple?[]:"",!1))}x[If]=_}catch(Et){zr(u,u.return,Et)}}break;case 6:if(Bo(d,u),Ho(u),S&4){if(u.stateNode===null)throw Error(n(162));x=u.stateNode,_=u.memoizedProps;try{x.nodeValue=_}catch(Et){zr(u,u.return,Et)}}break;case 3:if(Bo(d,u),Ho(u),S&4&&g!==null&&g.memoizedState.isDehydrated)try{po(d.containerInfo)}catch(Et){zr(u,u.return,Et)}break;case 4:Bo(d,u),Ho(u);break;case 13:Bo(d,u),Ho(u),x=u.child,x.flags&8192&&(_=x.memoizedState!==null,x.stateNode.isHidden=_,!_||x.alternate!==null&&x.alternate.memoizedState!==null||(Ty=Yn())),S&4&&_C(u);break;case 22:if(Fe=g!==null&&g.memoizedState!==null,u.mode&1?(Ai=(ye=Ai)||Fe,Bo(d,u),Ai=ye):Bo(d,u),Ho(u),S&8192){if(ye=u.memoizedState!==null,(u.stateNode.isHidden=ye)&&!Fe&&u.mode&1)for(kt=u,Fe=u.child;Fe!==null;){for($e=kt=Fe;kt!==null;){switch(Ue=kt,mt=Ue.child,Ue.tag){case 0:case 11:case 14:case 15:Sd(4,Ue,Ue.return);break;case 1:Hl(Ue,Ue.return);var wt=Ue.stateNode;if(typeof wt.componentWillUnmount=="function"){S=Ue,g=Ue.return;try{d=S,wt.props=d.memoizedProps,wt.state=d.memoizedState,wt.componentWillUnmount()}catch(Et){zr(S,g,Et)}}break;case 5:Hl(Ue,Ue.return);break;case 22:if(Ue.memoizedState!==null){PC($e);continue}}mt!==null?(mt.return=Ue,kt=mt):PC($e)}Fe=Fe.sibling}e:for(Fe=null,$e=u;;){if($e.tag===5){if(Fe===null){Fe=$e;try{x=$e.stateNode,ye?(_=x.style,typeof _.setProperty=="function"?_.setProperty("display","none","important"):_.display="none"):(q=$e.stateNode,te=$e.memoizedProps.style,L=te!=null&&te.hasOwnProperty("display")?te.display:null,q.style.display=At("display",L))}catch(Et){zr(u,u.return,Et)}}}else if($e.tag===6){if(Fe===null)try{$e.stateNode.nodeValue=ye?"":$e.memoizedProps}catch(Et){zr(u,u.return,Et)}}else if(($e.tag!==22&&$e.tag!==23||$e.memoizedState===null||$e===u)&&$e.child!==null){$e.child.return=$e,$e=$e.child;continue}if($e===u)break e;for(;$e.sibling===null;){if($e.return===null||$e.return===u)break e;Fe===$e&&(Fe=null),$e=$e.return}Fe===$e&&(Fe=null),$e.sibling.return=$e.return,$e=$e.sibling}}break;case 19:Bo(d,u),Ho(u),S&4&&_C(u);break;case 21:break;default:Bo(d,u),Ho(u)}}function Ho(u){var d=u.flags;if(d&2){try{e:{for(var g=u.return;g!==null;){if(xm(g)){var S=g;break e}g=g.return}throw Error(n(160))}switch(S.tag){case 5:var x=S.stateNode;S.flags&32&&(Kt(x,""),S.flags&=-33);var _=nh(u);hs(u,_,x);break;case 3:case 4:var L=S.stateNode.containerInfo,q=nh(u);fs(u,q,L);break;default:throw Error(n(161))}}catch(te){zr(u,u.return,te)}u.flags&=-3}d&4096&&(u.flags&=-4097)}function rh(u,d,g){kt=u,RC(u)}function RC(u,d,g){for(var S=(u.mode&1)!==0;kt!==null;){var x=kt,_=x.child;if(x.tag===22&&S){var L=x.memoizedState!==null||$u;if(!L){var q=x.alternate,te=q!==null&&q.memoizedState!==null||Ai;q=$u;var ye=Ai;if($u=L,(Ai=te)&&!ye)for(kt=x;kt!==null;)L=kt,te=L.child,L.tag===22&&L.memoizedState!==null?ih(x):te!==null?(te.return=L,kt=te):ih(x);for(;_!==null;)kt=_,RC(_),_=_.sibling;kt=x,$u=q,Ai=ye}ky(u)}else x.subtreeFlags&8772&&_!==null?(_.return=x,kt=_):ky(u)}}function ky(u){for(;kt!==null;){var d=kt;if(d.flags&8772){var g=d.alternate;try{if(d.flags&8772)switch(d.tag){case 0:case 11:case 15:Ai||km(5,d);break;case 1:var S=d.stateNode;if(d.flags&4&&!Ai)if(g===null)S.componentDidMount();else{var x=d.elementType===d.type?g.memoizedProps:Da(d.type,g.memoizedProps);S.componentDidUpdate(x,g.memoizedState,S.__reactInternalSnapshotBeforeUpdate)}var _=d.updateQueue;_!==null&&ay(d,_,S);break;case 3:var L=d.updateQueue;if(L!==null){if(g=null,d.child!==null)switch(d.child.tag){case 5:g=d.child.stateNode;break;case 1:g=d.child.stateNode}ay(d,L,g)}break;case 5:var q=d.stateNode;if(g===null&&d.flags&4){g=q;var te=d.memoizedProps;switch(d.type){case"button":case"input":case"select":case"textarea":te.autoFocus&&g.focus();break;case"img":te.src&&(g.src=te.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(d.memoizedState===null){var ye=d.alternate;if(ye!==null){var Fe=ye.memoizedState;if(Fe!==null){var $e=Fe.dehydrated;$e!==null&&po($e)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}Ai||d.flags&512&&Tm(d)}catch(Ue){zr(d,d.return,Ue)}}if(d===u){kt=null;break}if(g=d.sibling,g!==null){g.return=d.return,kt=g;break}kt=d.return}}function PC(u){for(;kt!==null;){var d=kt;if(d===u){kt=null;break}var g=d.sibling;if(g!==null){g.return=d.return,kt=g;break}kt=d.return}}function ih(u){for(;kt!==null;){var d=kt;try{switch(d.tag){case 0:case 11:case 15:var g=d.return;try{km(4,d)}catch(te){zr(d,g,te)}break;case 1:var S=d.stateNode;if(typeof S.componentDidMount=="function"){var x=d.return;try{S.componentDidMount()}catch(te){zr(d,x,te)}}var _=d.return;try{Tm(d)}catch(te){zr(d,_,te)}break;case 5:var L=d.return;try{Tm(d)}catch(te){zr(d,L,te)}}}catch(te){zr(d,d.return,te)}if(d===u){kt=null;break}var q=d.sibling;if(q!==null){q.return=d.return,kt=q;break}kt=d.return}}var DC=Math.ceil,wm=j.ReactCurrentDispatcher,qu=j.ReactCurrentOwner,Zi=j.ReactCurrentBatchConfig,xn=0,ai=null,Kr=null,Oi=0,qa=0,Cd=wa(0),hi=0,Wu=null,Gu=0,Yu=0,ah=0,kd=null,Ma=null,Ty=0,Td=1/0,Zs=null,$l=!1,oh=null,ko=null,_m=!1,ql=null,sh=0,xd=0,wd=null,Ku=-1,lh=0;function mr(){return xn&6?Yn():Ku!==-1?Ku:Ku=Yn()}function Wa(u){return u.mode&1?xn&2&&Oi!==0?Oi&-Oi:Iu.transition!==null?(lh===0&&(lh=ku()),lh):(u=An,u!==0||(u=window.event,u=u===void 0?16:Cf(u.type)),u):1}function Ga(u,d,g,S){if(50<xd)throw xd=0,wd=null,Error(n(185));_l(u,g,S),(!(xn&2)||u!==ai)&&(u===ai&&(!(xn&2)&&(Yu|=g),hi===4&&Wl(u,Oi)),ki(u,S),g===1&&xn===0&&!(d.mode&1)&&(Td=Yn()+500,Ff&&ia()))}function ki(u,d){var g=u.callbackNode;Hc(u,d);var S=rs(u,u===ai?Oi:0);if(S===0)g!==null&&Cr(g),u.callbackNode=null,u.callbackPriority=0;else if(d=S&-S,u.callbackPriority!==d){if(g!=null&&Cr(g),d===1)u.tag===0?Yv(fh.bind(null,u)):Ol(fh.bind(null,u)),z_(function(){!(xn&6)&&ia()}),g=null;else{switch(Sf(S)){case 1:g=rn;break;case 4:g=ns;break;case 16:g=Is;break;case 536870912:g=Us;break;default:g=Is}g=IC(g,AC.bind(null,u))}u.callbackPriority=d,u.callbackNode=g}}function AC(u,d){if(Ku=-1,lh=0,xn&6)throw Error(n(327));var g=u.callbackNode;if(_d()&&u.callbackNode!==g)return null;var S=rs(u,u===ai?Oi:0);if(S===0)return null;if(S&30||S&u.expiredLanes||d)d=Pm(u,S);else{d=S;var x=xn;xn|=2;var _=OC();(ai!==u||Oi!==d)&&(Zs=null,Td=Yn()+500,Qu(u,d));do try{G_();break}catch(q){Rm(u,q)}while(!0);ty(),wm.current=_,xn=x,Kr!==null?d=0:(ai=null,Oi=0,d=hi)}if(d!==0){if(d===2&&(x=js(u),x!==0&&(S=x,d=uh(u,x))),d===1)throw g=Wu,Qu(u,0),Wl(u,S),ki(u,Yn()),g;if(d===6)Wl(u,S);else{if(x=u.current.alternate,!(S&30)&&!dh(x)&&(d=Pm(u,S),d===2&&(_=js(u),_!==0&&(S=_,d=uh(u,_))),d===1))throw g=Wu,Qu(u,0),Wl(u,S),ki(u,Yn()),g;switch(u.finishedWork=x,u.finishedLanes=S,d){case 0:case 1:throw Error(n(345));case 2:Xu(u,Ma,Zs);break;case 3:if(Wl(u,S),(S&130023424)===S&&(d=Ty+500-Yn(),10<d)){if(rs(u,0)!==0)break;if(x=u.suspendedLanes,(x&S)!==S){mr(),u.pingedLanes|=u.suspendedLanes&x;break}u.timeoutHandle=zp(Xu.bind(null,u,Ma,Zs),d);break}Xu(u,Ma,Zs);break;case 4:if(Wl(u,S),(S&4194240)===S)break;for(d=u.eventTimes,x=-1;0<S;){var L=31-ta(S);_=1<<L,L=d[L],L>x&&(x=L),S&=~_}if(S=x,S=Yn()-S,S=(120>S?120:480>S?480:1080>S?1080:1920>S?1920:3e3>S?3e3:4320>S?4320:1960*DC(S/1960))-S,10<S){u.timeoutHandle=zp(Xu.bind(null,u,Ma,Zs),S);break}Xu(u,Ma,Zs);break;case 5:Xu(u,Ma,Zs);break;default:throw Error(n(329))}}}return ki(u,Yn()),u.callbackNode===g?AC.bind(null,u):null}function uh(u,d){var g=kd;return u.current.memoizedState.isDehydrated&&(Qu(u,d).flags|=256),u=Pm(u,d),u!==2&&(d=Ma,Ma=g,d!==null&&ch(d)),u}function ch(u){Ma===null?Ma=u:Ma.push.apply(Ma,u)}function dh(u){for(var d=u;;){if(d.flags&16384){var g=d.updateQueue;if(g!==null&&(g=g.stores,g!==null))for(var S=0;S<g.length;S++){var x=g[S],_=x.getSnapshot;x=x.value;try{if(!Uo(_(),x))return!1}catch{return!1}}}if(g=d.child,d.subtreeFlags&16384&&g!==null)g.return=d,d=g;else{if(d===u)break;for(;d.sibling===null;){if(d.return===null||d.return===u)return!0;d=d.return}d.sibling.return=d.return,d=d.sibling}}return!0}function Wl(u,d){for(d&=~ah,d&=~Yu,u.suspendedLanes|=d,u.pingedLanes&=~d,u=u.expirationTimes;0<d;){var g=31-ta(d),S=1<<g;u[g]=-1,d&=~S}}function fh(u){if(xn&6)throw Error(n(327));_d();var d=rs(u,0);if(!(d&1))return ki(u,Yn()),null;var g=Pm(u,d);if(u.tag!==0&&g===2){var S=js(u);S!==0&&(d=S,g=uh(u,S))}if(g===1)throw g=Wu,Qu(u,0),Wl(u,d),ki(u,Yn()),g;if(g===6)throw Error(n(345));return u.finishedWork=u.current.alternate,u.finishedLanes=d,Xu(u,Ma,Zs),ki(u,Yn()),null}function Em(u,d){var g=xn;xn|=1;try{return u(d)}finally{xn=g,xn===0&&(Td=Yn()+500,Ff&&ia())}}function Zu(u){ql!==null&&ql.tag===0&&!(xn&6)&&_d();var d=xn;xn|=1;var g=Zi.transition,S=An;try{if(Zi.transition=null,An=1,u)return u()}finally{An=S,Zi.transition=g,xn=d,!(xn&6)&&ia()}}function xy(){qa=Cd.current,tr(Cd)}function Qu(u,d){u.finishedWork=null,u.finishedLanes=0;var g=u.timeoutHandle;if(g!==-1&&(u.timeoutHandle=-1,iC(g)),Kr!==null)for(g=Kr.return;g!==null;){var S=g;switch(qp(S),S.tag){case 1:S=S.type.childContextTypes,S!=null&&ls();break;case 3:hd(),tr(ni),tr(Pr),$f();break;case 5:ly(S);break;case 4:hd();break;case 13:tr(Dr);break;case 19:tr(Dr);break;case 10:ny(S.type._context);break;case 22:case 23:xy()}g=g.return}if(ai=u,Kr=u=Gl(u.current,null),Oi=qa=d,hi=0,Wu=null,ah=Yu=Gu=0,Ma=kd=null,Uu!==null){for(d=0;d<Uu.length;d++)if(g=Uu[d],S=g.interleaved,S!==null){g.interleaved=null;var x=S.next,_=g.pending;if(_!==null){var L=_.next;_.next=x,S.next=L}g.pending=S}Uu=null}return u}function Rm(u,d){do{var g=Kr;try{if(ty(),Mt.current=rr,Kp){for(var S=an.memoizedState;S!==null;){var x=S.queue;x!==null&&(x.pending=null),S=S.next}Kp=!1}if(Rn=0,di=cr=an=null,qf=!1,Wf=0,qu.current=null,g===null||g.return===null){hi=1,Wu=d,Kr=null;break}e:{var _=u,L=g.return,q=g,te=d;if(d=Oi,q.flags|=32768,te!==null&&typeof te=="object"&&typeof te.then=="function"){var ye=te,Fe=q,$e=Fe.tag;if(!(Fe.mode&1)&&($e===0||$e===11||$e===15)){var Ue=Fe.alternate;Ue?(Fe.updateQueue=Ue.updateQueue,Fe.memoizedState=Ue.memoizedState,Fe.lanes=Ue.lanes):(Fe.updateQueue=null,Fe.memoizedState=null)}var mt=my(L);if(mt!==null){mt.flags&=-257,SC(mt,L,q,_,d),mt.mode&1&&py(_,ye,d),d=mt,te=ye;var wt=d.updateQueue;if(wt===null){var Et=new Set;Et.add(te),d.updateQueue=Et}else wt.add(te);break e}else{if(!(d&1)){py(_,ye,d),wy();break e}te=Error(n(426))}}else if(kr&&q.mode&1){var Zr=my(L);if(Zr!==null){!(Zr.flags&65536)&&(Zr.flags|=256),SC(Zr,L,q,_,d),Vf(Bl(te,q));break e}}_=te=Bl(te,q),hi!==4&&(hi=2),kd===null?kd=[_]:kd.push(_),_=L;do{switch(_.tag){case 3:_.flags|=65536,d&=-d,_.lanes|=d;var ue=Xf(_,te,d);hC(_,ue);break e;case 1:q=te;var ie=_.type,he=_.stateNode;if(!(_.flags&128)&&(typeof ie.getDerivedStateFromError=="function"||he!==null&&typeof he.componentDidCatch=="function"&&(ko===null||!ko.has(he)))){_.flags|=65536,d&=-d,_.lanes|=d;var Ke=bC(_,q,d);hC(_,Ke);break e}}_=_.return}while(_!==null)}MC(g)}catch(dt){d=dt,Kr===g&&g!==null&&(Kr=g=g.return);continue}break}while(!0)}function OC(){var u=wm.current;return wm.current=rr,u===null?rr:u}function wy(){(hi===0||hi===3||hi===2)&&(hi=4),ai===null||!(Gu&268435455)&&!(Yu&268435455)||Wl(ai,Oi)}function Pm(u,d){var g=xn;xn|=2;var S=OC();(ai!==u||Oi!==d)&&(Zs=null,Qu(u,d));do try{W_();break}catch(x){Rm(u,x)}while(!0);if(ty(),xn=g,wm.current=S,Kr!==null)throw Error(n(261));return ai=null,Oi=0,hi}function W_(){for(;Kr!==null;)_y(Kr)}function G_(){for(;Kr!==null&&!$i();)_y(Kr)}function _y(u){var d=Ry(u.alternate,u,qa);u.memoizedProps=u.pendingProps,d===null?MC(u):Kr=d,qu.current=null}function MC(u){var d=u;do{var g=d.alternate;if(u=d.return,d.flags&32768){if(g=xC(g,d),g!==null){g.flags&=32767,Kr=g;return}if(u!==null)u.flags|=32768,u.subtreeFlags=0,u.deletions=null;else{hi=6,Kr=null;return}}else if(g=by(g,d,qa),g!==null){Kr=g;return}if(d=d.sibling,d!==null){Kr=d;return}Kr=d=u}while(d!==null);hi===0&&(hi=5)}function Xu(u,d,g){var S=An,x=Zi.transition;try{Zi.transition=null,An=1,Y_(u,d,g,S)}finally{Zi.transition=x,An=S}return null}function Y_(u,d,g,S){do _d();while(ql!==null);if(xn&6)throw Error(n(327));g=u.finishedWork;var x=u.finishedLanes;if(g===null)return null;if(u.finishedWork=null,u.finishedLanes=0,g===u.current)throw Error(n(177));u.callbackNode=null,u.callbackPriority=0;var _=g.lanes|g.childLanes;if(yf(u,_),u===ai&&(Kr=ai=null,Oi=0),!(g.subtreeFlags&2064)&&!(g.flags&2064)||_m||(_m=!0,IC(Is,function(){return _d(),null})),_=(g.flags&15990)!==0,g.subtreeFlags&15990||_){_=Zi.transition,Zi.transition=null;var L=An;An=1;var q=xn;xn|=4,qu.current=null,q_(u,g),EC(g,u),KS(Nf),El=!!Au,Nf=Au=null,u.current=g,rh(g),Lo(),xn=q,An=L,Zi.transition=_}else u.current=g;if(_m&&(_m=!1,ql=u,sh=x),_=u.pendingLanes,_===0&&(ko=null),gf(g.stateNode),ki(u,Yn()),d!==null)for(S=u.onRecoverableError,g=0;g<d.length;g++)x=d[g],S(x.value,{componentStack:x.stack,digest:x.digest});if($l)throw $l=!1,u=oh,oh=null,u;return sh&1&&u.tag!==0&&_d(),_=u.pendingLanes,_&1?u===wd?xd++:(xd=0,wd=u):xd=0,ia(),null}function _d(){if(ql!==null){var u=Sf(sh),d=Zi.transition,g=An;try{if(Zi.transition=null,An=16>u?16:u,ql===null)var S=!1;else{if(u=ql,ql=null,sh=0,xn&6)throw Error(n(331));var x=xn;for(xn|=4,kt=u.current;kt!==null;){var _=kt,L=_.child;if(kt.flags&16){var q=_.deletions;if(q!==null){for(var te=0;te<q.length;te++){var ye=q[te];for(kt=ye;kt!==null;){var Fe=kt;switch(Fe.tag){case 0:case 11:case 15:Sd(8,Fe,_)}var $e=Fe.child;if($e!==null)$e.return=Fe,kt=$e;else for(;kt!==null;){Fe=kt;var Ue=Fe.sibling,mt=Fe.return;if(wC(Fe),Fe===ye){kt=null;break}if(Ue!==null){Ue.return=mt,kt=Ue;break}kt=mt}}}var wt=_.alternate;if(wt!==null){var Et=wt.child;if(Et!==null){wt.child=null;do{var Zr=Et.sibling;Et.sibling=null,Et=Zr}while(Et!==null)}}kt=_}}if(_.subtreeFlags&2064&&L!==null)L.return=_,kt=L;else e:for(;kt!==null;){if(_=kt,_.flags&2048)switch(_.tag){case 0:case 11:case 15:Sd(9,_,_.return)}var ue=_.sibling;if(ue!==null){ue.return=_.return,kt=ue;break e}kt=_.return}}var ie=u.current;for(kt=ie;kt!==null;){L=kt;var he=L.child;if(L.subtreeFlags&2064&&he!==null)he.return=L,kt=he;else e:for(L=ie;kt!==null;){if(q=kt,q.flags&2048)try{switch(q.tag){case 0:case 11:case 15:km(9,q)}}catch(dt){zr(q,q.return,dt)}if(q===L){kt=null;break e}var Ke=q.sibling;if(Ke!==null){Ke.return=q.return,kt=Ke;break e}kt=q.return}}if(xn=x,ia(),Ca&&typeof Ca.onPostCommitFiberRoot=="function")try{Ca.onPostCommitFiberRoot(Tl,u)}catch{}S=!0}return S}finally{An=g,Zi.transition=d}}return!1}function LC(u,d,g){d=Bl(g,d),d=Xf(u,d,1),u=Fl(u,d,1),d=mr(),u!==null&&(_l(u,1,d),ki(u,d))}function zr(u,d,g){if(u.tag===3)LC(u,u,g);else for(;d!==null;){if(d.tag===3){LC(d,u,g);break}else if(d.tag===1){var S=d.stateNode;if(typeof d.type.getDerivedStateFromError=="function"||typeof S.componentDidCatch=="function"&&(ko===null||!ko.has(S))){u=Bl(g,u),u=bC(d,u,1),d=Fl(d,u,1),u=mr(),d!==null&&(_l(d,1,u),ki(d,u));break}}d=d.return}}function Ey(u,d,g){var S=u.pingCache;S!==null&&S.delete(d),d=mr(),u.pingedLanes|=u.suspendedLanes&g,ai===u&&(Oi&g)===g&&(hi===4||hi===3&&(Oi&130023424)===Oi&&500>Yn()-Ty?Qu(u,0):ah|=g),ki(u,d)}function NC(u,d){d===0&&(u.mode&1?(d=xl,xl<<=1,!(xl&130023424)&&(xl=4194304)):d=1);var g=mr();u=cs(u,d),u!==null&&(_l(u,d,g),ki(u,g))}function K_(u){var d=u.memoizedState,g=0;d!==null&&(g=d.retryLane),NC(u,g)}function Z_(u,d){var g=0;switch(u.tag){case 13:var S=u.stateNode,x=u.memoizedState;x!==null&&(g=x.retryLane);break;case 19:S=u.stateNode;break;default:throw Error(n(314))}S!==null&&S.delete(d),NC(u,g)}var Ry;Ry=function(u,d,g){if(u!==null)if(u.memoizedProps!==d.pendingProps||ni.current)Ci=!0;else{if(!(u.lanes&g)&&!(d.flags&128))return Ci=!1,Cm(u,d,g);Ci=!!(u.flags&131072)}else Ci=!1,kr&&d.flags&1048576&&oC(d,Nl,d.index);switch(d.lanes=0,d.tag){case 2:var S=d.type;So(u,d),u=d.pendingProps;var x=Ba(d,Pr.current);dd(d,g),x=$t(null,d,S,u,x,g);var _=jl();return d.flags|=1,typeof x=="object"&&x!==null&&typeof x.render=="function"&&x.$$typeof===void 0?(d.tag=1,d.memoizedState=null,d.updateQueue=null,Vr(S)?(_=!0,Lu(d)):_=!1,d.memoizedState=x.state!==null&&x.state!==void 0?x.state:null,Ul(d),x.updater=fm,d.stateNode=x,x._reactInternals=d,fy(d,S,u,g),d=gy(null,d,S,!0,_,g)):(d.tag=0,kr&&_&&Kv(d),Yr(null,d,x,g),d=d.child),d;case 16:S=d.elementType;e:{switch(So(u,d),u=d.pendingProps,x=S._init,S=x(S._payload),d.type=S,x=d.tag=X_(S),u=Da(S,u),x){case 0:d=gm(null,d,S,u,g);break e;case 1:d=H_(null,d,S,u,g);break e;case 11:d=mm(null,d,S,u,g);break e;case 14:d=Aa(null,d,S,Da(S.type,u),g);break e}throw Error(n(306,S,""))}return d;case 0:return S=d.type,x=d.pendingProps,x=d.elementType===S?x:Da(S,x),gm(u,d,S,x,g);case 1:return S=d.type,x=d.pendingProps,x=d.elementType===S?x:Da(S,x),H_(u,d,S,x,g);case 3:e:{if(vm(d),u===null)throw Error(n(387));S=d.pendingProps,_=d.memoizedState,x=_.element,fC(u,d),Gp(d,S,null,g);var L=d.memoizedState;if(S=L.element,_.isDehydrated)if(_={element:S,isDehydrated:!1,cache:L.cache,pendingSuspenseBoundaries:L.pendingSuspenseBoundaries,transitions:L.transitions},d.updateQueue.baseState=_,d.memoizedState=_,d.flags&256){x=Bl(Error(n(423)),d),d=yd(u,d,S,g,x);break e}else if(S!==x){x=Bl(Error(n(424)),d),d=yd(u,d,S,g,x);break e}else for(Ea=Fo(d.stateNode.containerInfo.firstChild),_a=d,kr=!0,Vo=null,g=Pi(d,null,S,g),d.child=g;g;)g.flags=g.flags&-3|4096,g=g.sibling;else{if(Gs(),S===x){d=Di(u,d,g);break e}Yr(u,d,S,g)}d=d.child}return d;case 5:return sy(d),u===null&&Jv(d),S=d.type,x=d.pendingProps,_=u!==null?u.memoizedProps:null,L=x.children,Ou(S,x)?L=null:_!==null&&Ou(S,_)&&(d.flags|=32),Jf(u,d),Yr(u,d,L,g),d.child;case 6:return u===null&&Jv(d),null;case 13:return CC(u,d,g);case 4:return oy(d,d.stateNode.containerInfo),S=d.pendingProps,u===null?d.child=zo(d,null,S,g):Yr(u,d,S,g),d.child;case 11:return S=d.type,x=d.pendingProps,x=d.elementType===S?x:Da(S,x),mm(u,d,S,x,g);case 7:return Yr(u,d,d.pendingProps,g),d.child;case 8:return Yr(u,d,d.pendingProps.children,g),d.child;case 12:return Yr(u,d,d.pendingProps.children,g),d.child;case 10:e:{if(S=d.type._context,x=d.pendingProps,_=d.memoizedProps,L=x.value,pr(at,S._currentValue),S._currentValue=L,_!==null)if(Uo(_.value,L)){if(_.children===x.children&&!ni.current){d=Di(u,d,g);break e}}else for(_=d.child,_!==null&&(_.return=d);_!==null;){var q=_.dependencies;if(q!==null){L=_.child;for(var te=q.firstContext;te!==null;){if(te.context===S){if(_.tag===1){te=Ys(-1,g&-g),te.tag=2;var ye=_.updateQueue;if(ye!==null){ye=ye.shared;var Fe=ye.pending;Fe===null?te.next=te:(te.next=Fe.next,Fe.next=te),ye.pending=te}}_.lanes|=g,te=_.alternate,te!==null&&(te.lanes|=g),ry(_.return,g,d),q.lanes|=g;break}te=te.next}}else if(_.tag===10)L=_.type===d.type?null:_.child;else if(_.tag===18){if(L=_.return,L===null)throw Error(n(341));L.lanes|=g,q=L.alternate,q!==null&&(q.lanes|=g),ry(L,g,d),L=_.sibling}else L=_.child;if(L!==null)L.return=_;else for(L=_;L!==null;){if(L===d){L=null;break}if(_=L.sibling,_!==null){_.return=L.return,L=_;break}L=L.return}_=L}Yr(u,d,x.children,g),d=d.child}return d;case 9:return x=d.type,S=d.pendingProps.children,dd(d,g),x=nr(x),S=S(x),d.flags|=1,Yr(u,d,S,g),d.child;case 14:return S=d.type,x=Da(S,d.pendingProps),x=Da(S.type,x),Aa(u,d,S,x,g);case 15:return Hu(u,d,d.type,d.pendingProps,g);case 17:return S=d.type,x=d.pendingProps,x=d.elementType===S?x:Da(S,x),So(u,d),d.tag=1,Vr(S)?(u=!0,Lu(d)):u=!1,dd(d,g),yC(d,S,x),fy(d,S,x,g),gy(null,d,S,!0,u,g);case 19:return Oa(u,d,g);case 22:return sn(u,d,g)}throw Error(n(156,d.tag))};function IC(u,d){return yr(u,d)}function Q_(u,d,g,S){this.tag=u,this.key=g,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=d,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=S,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function To(u,d,g,S){return new Q_(u,d,g,S)}function Py(u){return u=u.prototype,!(!u||!u.isReactComponent)}function X_(u){if(typeof u=="function")return Py(u)?1:0;if(u!=null){if(u=u.$$typeof,u===J)return 11;if(u===Ge)return 14}return 2}function Gl(u,d){var g=u.alternate;return g===null?(g=To(u.tag,d,u.key,u.mode),g.elementType=u.elementType,g.type=u.type,g.stateNode=u.stateNode,g.alternate=u,u.alternate=g):(g.pendingProps=d,g.type=u.type,g.flags=0,g.subtreeFlags=0,g.deletions=null),g.flags=u.flags&14680064,g.childLanes=u.childLanes,g.lanes=u.lanes,g.child=u.child,g.memoizedProps=u.memoizedProps,g.memoizedState=u.memoizedState,g.updateQueue=u.updateQueue,d=u.dependencies,g.dependencies=d===null?null:{lanes:d.lanes,firstContext:d.firstContext},g.sibling=u.sibling,g.index=u.index,g.ref=u.ref,g}function Dm(u,d,g,S,x,_){var L=2;if(S=u,typeof u=="function")Py(u)&&(L=1);else if(typeof u=="string")L=5;else e:switch(u){case ne:return Yl(g.children,x,_,d);case X:L=8,x|=8;break;case se:return u=To(12,g,d,x|2),u.elementType=se,u.lanes=_,u;case xe:return u=To(13,g,d,x),u.elementType=xe,u.lanes=_,u;case ke:return u=To(19,g,d,x),u.elementType=ke,u.lanes=_,u;case je:return Ed(g,x,_,d);default:if(typeof u=="object"&&u!==null)switch(u.$$typeof){case $:L=10;break e;case oe:L=9;break e;case J:L=11;break e;case Ge:L=14;break e;case Je:L=16,S=null;break e}throw Error(n(130,u==null?u:typeof u,""))}return d=To(L,g,d,x),d.elementType=u,d.type=S,d.lanes=_,d}function Yl(u,d,g,S){return u=To(7,u,S,d),u.lanes=g,u}function Ed(u,d,g,S){return u=To(22,u,S,d),u.elementType=je,u.lanes=g,u.stateNode={isHidden:!1},u}function Ju(u,d,g){return u=To(6,u,null,d),u.lanes=g,u}function Dy(u,d,g){return d=To(4,u.children!==null?u.children:[],u.key,d),d.lanes=g,d.stateNode={containerInfo:u.containerInfo,pendingChildren:null,implementation:u.implementation},d}function UC(u,d,g,S,x){this.tag=d,this.containerInfo=u,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Tu(0),this.expirationTimes=Tu(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Tu(0),this.identifierPrefix=S,this.onRecoverableError=x,this.mutableSourceEagerHydrationData=null}function Am(u,d,g,S,x,_,L,q,te){return u=new UC(u,d,g,q,te),d===1?(d=1,_===!0&&(d|=8)):d=0,_=To(3,null,null,d),u.current=_,_.stateNode=u,_.memoizedState={element:S,isDehydrated:g,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ul(_),u}function FC(u,d,g){var S=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:N,key:S==null?null:""+S,children:u,containerInfo:d,implementation:g}}function jC(u){if(!u)return pn;u=u._reactInternals;e:{if(ot(u)!==u||u.tag!==1)throw Error(n(170));var d=u;do{switch(d.tag){case 3:d=d.stateNode.context;break e;case 1:if(Vr(d.type)){d=d.stateNode.__reactInternalMemoizedMergedChildContext;break e}}d=d.return}while(d!==null);throw Error(n(171))}if(u.tag===1){var g=u.type;if(Vr(g))return aC(u,g,d)}return d}function Ay(u,d,g,S,x,_,L,q,te){return u=Am(g,S,!0,u,x,_,L,q,te),u.context=jC(null),g=u.current,S=mr(),x=Wa(g),_=Ys(S,x),_.callback=d??null,Fl(g,_,x),u.current.lanes=x,_l(u,x,S),ki(u,S),u}function Om(u,d,g,S){var x=d.current,_=mr(),L=Wa(x);return g=jC(g),d.context===null?d.context=g:d.pendingContext=g,d=Ys(_,L),d.payload={element:u},S=S===void 0?null:S,S!==null&&(d.callback=S),u=Fl(x,d,L),u!==null&&(Ga(u,x,L,_),Wp(u,x,L)),L}function Mm(u){if(u=u.current,!u.child)return null;switch(u.child.tag){case 5:return u.child.stateNode;default:return u.child.stateNode}}function VC(u,d){if(u=u.memoizedState,u!==null&&u.dehydrated!==null){var g=u.retryLane;u.retryLane=g!==0&&g<d?g:d}}function Lm(u,d){VC(u,d),(u=u.alternate)&&VC(u,d)}function zC(){return null}var Oy=typeof reportError=="function"?reportError:function(u){console.error(u)};function Kl(u){this._internalRoot=u}Nm.prototype.render=Kl.prototype.render=function(u){var d=this._internalRoot;if(d===null)throw Error(n(409));Om(u,d,null,null)},Nm.prototype.unmount=Kl.prototype.unmount=function(){var u=this._internalRoot;if(u!==null){this._internalRoot=null;var d=u.containerInfo;Zu(function(){Om(null,u,null,null)}),d[qs]=null}};function Nm(u){this._internalRoot=u}Nm.prototype.unstable_scheduleHydration=function(u){if(u){var d=is();u={blockedOn:null,target:u,priority:d};for(var g=0;g<No.length&&d!==0&&d<No[g].priority;g++);No.splice(g,0,u),g===0&&qc(u)}};function My(u){return!(!u||u.nodeType!==1&&u.nodeType!==9&&u.nodeType!==11)}function Im(u){return!(!u||u.nodeType!==1&&u.nodeType!==9&&u.nodeType!==11&&(u.nodeType!==8||u.nodeValue!==" react-mount-point-unstable "))}function BC(){}function J_(u,d,g,S,x){if(x){if(typeof S=="function"){var _=S;S=function(){var ye=Mm(L);_.call(ye)}}var L=Ay(d,S,u,0,null,!1,!1,"",BC);return u._reactRootContainer=L,u[qs]=L.current,Mf(u.nodeType===8?u.parentNode:u),Zu(),L}for(;x=u.lastChild;)u.removeChild(x);if(typeof S=="function"){var q=S;S=function(){var ye=Mm(te);q.call(ye)}}var te=Am(u,0,!1,null,null,!1,!1,"",BC);return u._reactRootContainer=te,u[qs]=te.current,Mf(u.nodeType===8?u.parentNode:u),Zu(function(){Om(d,te,g,S)}),te}function Um(u,d,g,S,x){var _=g._reactRootContainer;if(_){var L=_;if(typeof x=="function"){var q=x;x=function(){var te=Mm(L);q.call(te)}}Om(d,L,u,x)}else L=J_(g,d,u,x,S);return Mm(L)}$c=function(u){switch(u.tag){case 3:var d=u.stateNode;if(d.current.memoizedState.isDehydrated){var g=ka(d.pendingLanes);g!==0&&(bf(d,g|1),ki(d,Yn()),!(xn&6)&&(Td=Yn()+500,ia()))}break;case 13:Zu(function(){var S=cs(u,1);if(S!==null){var x=mr();Ga(S,u,1,x)}}),Lm(u,1)}},On=function(u){if(u.tag===13){var d=cs(u,134217728);if(d!==null){var g=mr();Ga(d,u,134217728,g)}Lm(u,134217728)}},Rp=function(u){if(u.tag===13){var d=Wa(u),g=cs(u,d);if(g!==null){var S=mr();Ga(g,u,d,S)}Lm(u,d)}},is=function(){return An},Zt=function(u,d){var g=An;try{return An=u,d()}finally{An=g}},Gn=function(u,d,g){switch(d){case"input":if(Lt(u,g),d=g.name,g.type==="radio"&&d!=null){for(g=u;g.parentNode;)g=g.parentNode;for(g=g.querySelectorAll("input[name="+JSON.stringify(""+d)+'][type="radio"]'),d=0;d<g.length;d++){var S=g[d];if(S!==u&&S.form===u.form){var x=Ws(S);if(!x)throw Error(n(90));_r(S),Lt(S,x)}}}break;case"textarea":ut(u,g);break;case"select":d=g.value,d!=null&&Ve(u,!!g.multiple,d,!1)}},es=Em,ts=Zu;var HC={usingClientEntryPoint:!1,Events:[Uf,Ot,Ws,ea,co,Em]},hh={findFiberByHostInstance:Mu,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},eE={bundleType:hh.bundleType,version:hh.version,rendererPackageName:hh.rendererPackageName,rendererConfig:hh.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:j.ReactCurrentDispatcher,findHostInstanceByFiber:function(u){return u=cn(u),u===null?null:u.stateNode},findFiberByHostInstance:hh.findFiberByHostInstance||zC,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ph=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ph.isDisabled&&ph.supportsFiber)try{Tl=ph.inject(eE),Ca=ph}catch{}}return Ja.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=HC,Ja.createPortal=function(u,d){var g=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!My(d))throw Error(n(200));return FC(u,d,null,g)},Ja.createRoot=function(u,d){if(!My(u))throw Error(n(299));var g=!1,S="",x=Oy;return d!=null&&(d.unstable_strictMode===!0&&(g=!0),d.identifierPrefix!==void 0&&(S=d.identifierPrefix),d.onRecoverableError!==void 0&&(x=d.onRecoverableError)),d=Am(u,1,!1,null,null,g,!1,S,x),u[qs]=d.current,Mf(u.nodeType===8?u.parentNode:u),new Kl(d)},Ja.findDOMNode=function(u){if(u==null)return null;if(u.nodeType===1)return u;var d=u._reactInternals;if(d===void 0)throw typeof u.render=="function"?Error(n(188)):(u=Object.keys(u).join(","),Error(n(268,u)));return u=cn(d),u=u===null?null:u.stateNode,u},Ja.flushSync=function(u){return Zu(u)},Ja.hydrate=function(u,d,g){if(!Im(d))throw Error(n(200));return Um(null,u,d,!0,g)},Ja.hydrateRoot=function(u,d,g){if(!My(u))throw Error(n(405));var S=g!=null&&g.hydratedSources||null,x=!1,_="",L=Oy;if(g!=null&&(g.unstable_strictMode===!0&&(x=!0),g.identifierPrefix!==void 0&&(_=g.identifierPrefix),g.onRecoverableError!==void 0&&(L=g.onRecoverableError)),d=Ay(d,null,u,1,g??null,x,!1,_,L),u[qs]=d.current,Mf(u),S)for(u=0;u<S.length;u++)g=S[u],x=g._getVersion,x=x(g._source),d.mutableSourceEagerHydrationData==null?d.mutableSourceEagerHydrationData=[g,x]:d.mutableSourceEagerHydrationData.push(g,x);return new Nm(d)},Ja.render=function(u,d,g){if(!Im(d))throw Error(n(200));return Um(null,u,d,!1,g)},Ja.unmountComponentAtNode=function(u){if(!Im(u))throw Error(n(40));return u._reactRootContainer?(Zu(function(){Um(null,null,u,!1,function(){u._reactRootContainer=null,u[qs]=null})}),!0):!1},Ja.unstable_batchedUpdates=Em,Ja.unstable_renderSubtreeIntoContainer=function(u,d,g,S){if(!Im(g))throw Error(n(200));if(u==null||u._reactInternals===void 0)throw Error(n(38));return Um(u,d,g,!1,S)},Ja.version="18.3.1-next-f1338f8080-20240426",Ja}var eo={},nD;function Xj(){if(nD)return eo;nD=1;var t={};/**
@@ -104,7 +104,7 @@ Error generating stack: `+_.message+`
104
104
  *
105
105
  * This source code is licensed under the MIT license found in the
106
106
  * LICENSE file in the root directory of this source tree.
107
- */return t.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=G,n=eD(),r=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,a=!1;function s(i){a=i}function l(i){if(!a){for(var o=arguments.length,f=new Array(o>1?o-1:0),m=1;m<o;m++)f[m-1]=arguments[m];h("warn",i,f)}}function c(i){if(!a){for(var o=arguments.length,f=new Array(o>1?o-1:0),m=1;m<o;m++)f[m-1]=arguments[m];h("error",i,f)}}function h(i,o,f){{var m=r.ReactDebugCurrentFrame,y=m.getStackAddendum();y!==""&&(o+="%s",f=f.concat([y]));var C=f.map(function(w){return String(w)});C.unshift("Warning: "+o),Function.prototype.apply.call(console[i],console,C)}}var p=0,v=1,b=2,k=3,T=4,E=5,R=6,M=7,A=8,U=9,V=10,j=11,I=12,N=13,ne=14,X=15,se=16,$=17,oe=18,J=19,xe=21,ke=22,Ge=23,Je=24,je=25,ve=!0,He=!1,z=!1,ee=!1,Ce=!1,H=!0,Ct=!0,Rt=!0,ht=!0,bt=new Set,it={},xt={};function tn(i,o){qn(i,o),qn(i+"Capture",o)}function qn(i,o){it[i]&&c("EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.",i),it[i]=o;{var f=i.toLowerCase();xt[f]=i,i==="onDoubleClick"&&(xt.ondblclick=i)}for(var m=0;m<o.length;m++)bt.add(o[m])}var _r=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",vr=Object.prototype.hasOwnProperty;function Xn(i){{var o=typeof Symbol=="function"&&Symbol.toStringTag,f=o&&i[Symbol.toStringTag]||i.constructor.name||"Object";return f}}function Nr(i){try{return bn(i),!1}catch{return!0}}function bn(i){return""+i}function Lt(i,o){if(Nr(i))return c("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before before using it here.",o,Xn(i)),bn(i)}function Z(i){if(Nr(i))return c("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Xn(i)),bn(i)}function le(i,o){if(Nr(i))return c("The provided `%s` prop is an unsupported type %s. This value must be coerced to a string before before using it here.",o,Xn(i)),bn(i)}function me(i,o){if(Nr(i))return c("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before before using it here.",o,Xn(i)),bn(i)}function Ve(i){if(Nr(i))return c("The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before before using it here.",Xn(i)),bn(i)}function ze(i){if(Nr(i))return c("Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before before using it here.",Xn(i)),bn(i)}var Oe=0,ut=1,Nt=2,fe=3,Re=4,vt=5,Ft=6,Kt=":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",Be=Kt+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",ct=new RegExp("^["+Kt+"]["+Be+"]*$"),At={},ln={};function En(i){return vr.call(ln,i)?!0:vr.call(At,i)?!1:ct.test(i)?(ln[i]=!0,!0):(At[i]=!0,c("Invalid attribute name: `%s`",i),!1)}function un(i,o,f){return o!==null?o.type===Oe:f?!1:i.length>2&&(i[0]==="o"||i[0]==="O")&&(i[1]==="n"||i[1]==="N")}function Dn(i,o,f,m){if(f!==null&&f.type===Oe)return!1;switch(typeof o){case"function":case"symbol":return!0;case"boolean":{if(m)return!1;if(f!==null)return!f.acceptsBooleans;var y=i.toLowerCase().slice(0,5);return y!=="data-"&&y!=="aria-"}default:return!1}}function Wn(i,o,f,m){if(o===null||typeof o>"u"||Dn(i,o,f,m))return!0;if(m)return!1;if(f!==null)switch(f.type){case fe:return!o;case Re:return o===!1;case vt:return isNaN(o);case Ft:return isNaN(o)||o<1}return!1}function Jn(i){return In.hasOwnProperty(i)?In[i]:null}function Gn(i,o,f,m,y,C,w){this.acceptsBooleans=o===Nt||o===fe||o===Re,this.attributeName=m,this.attributeNamespace=y,this.mustUseProperty=f,this.propertyName=i,this.type=o,this.sanitizeURL=C,this.removeEmptyString=w}var In={},Hi=["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"];Hi.forEach(function(i){In[i]=new Gn(i,Oe,!1,i,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(i){var o=i[0],f=i[1];In[o]=new Gn(o,ut,!1,f,null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(i){In[i]=new Gn(i,Nt,!1,i.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(i){In[i]=new Gn(i,Nt,!1,i,null,!1,!1)}),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach(function(i){In[i]=new Gn(i,fe,!1,i.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(i){In[i]=new Gn(i,fe,!0,i,null,!1,!1)}),["capture","download"].forEach(function(i){In[i]=new Gn(i,Re,!1,i,null,!1,!1)}),["cols","rows","size","span"].forEach(function(i){In[i]=new Gn(i,Ft,!1,i,null,!1,!1)}),["rowSpan","start"].forEach(function(i){In[i]=new Gn(i,vt,!1,i.toLowerCase(),null,!1,!1)});var Ji=/[\-\:]([a-z])/g,ea=function(i){return i[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach(function(i){var o=i.replace(Ji,ea);In[o]=new Gn(o,ut,!1,i,null,!1,!1)}),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach(function(i){var o=i.replace(Ji,ea);In[o]=new Gn(o,ut,!1,i,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(i){var o=i.replace(Ji,ea);In[o]=new Gn(o,ut,!1,i,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(i){In[i]=new Gn(i,ut,!1,i.toLowerCase(),null,!1,!1)});var co="xlinkHref";In[co]=new Gn("xlinkHref",ut,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(i){In[i]=new Gn(i,ut,!1,i.toLowerCase(),null,!0,!0)});var es=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,ts=!1;function fo(i){!ts&&es.test(i)&&(ts=!0,c("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",JSON.stringify(i)))}function tt(i,o,f,m){if(m.mustUseProperty){var y=m.propertyName;return i[y]}else{Lt(f,o),m.sanitizeURL&&fo(""+f);var C=m.attributeName,w=null;if(m.type===Re){if(i.hasAttribute(C)){var P=i.getAttribute(C);return P===""?!0:Wn(o,f,m,!1)?P:P===""+f?f:P}}else if(i.hasAttribute(C)){if(Wn(o,f,m,!1))return i.getAttribute(C);if(m.type===fe)return f;w=i.getAttribute(C)}return Wn(o,f,m,!1)?w===null?f:w:w===""+f?f:w}}function Me(i,o,f,m){{if(!En(o))return;if(!i.hasAttribute(o))return f===void 0?void 0:null;var y=i.getAttribute(o);return Lt(f,o),y===""+f?f:y}}function It(i,o,f,m){var y=Jn(o);if(!un(o,y,m)){if(Wn(o,f,y,m)&&(f=null),m||y===null){if(En(o)){var C=o;f===null?i.removeAttribute(C):(Lt(f,o),i.setAttribute(C,""+f))}return}var w=y.mustUseProperty;if(w){var P=y.propertyName;if(f===null){var D=y.type;i[P]=D===fe?!1:""}else i[P]=f;return}var F=y.attributeName,B=y.attributeNamespace;if(f===null)i.removeAttribute(F);else{var ae=y.type,re;ae===fe||ae===Re&&f===!0?re="":(Lt(f,F),re=""+f,y.sanitizeURL&&fo(re.toString())),B?i.setAttributeNS(B,F,re):i.setAttribute(F,re)}}}var Ht=Symbol.for("react.element"),Sn=Symbol.for("react.portal"),jt=Symbol.for("react.fragment"),Cn=Symbol.for("react.strict_mode"),er=Symbol.for("react.profiler"),Er=Symbol.for("react.provider"),K=Symbol.for("react.context"),Le=Symbol.for("react.forward_ref"),Xe=Symbol.for("react.suspense"),ot=Symbol.for("react.suspense_list"),gn=Symbol.for("react.memo"),Jt=Symbol.for("react.lazy"),kn=Symbol.for("react.scope"),cn=Symbol.for("react.debug_trace_mode"),qr=Symbol.for("react.offscreen"),yr=Symbol.for("react.legacy_hidden"),Cr=Symbol.for("react.cache"),$i=Symbol.for("react.tracing_marker"),Lo=Symbol.iterator,Yn="@@iterator";function Rr(i){if(i===null||typeof i!="object")return null;var o=Lo&&i[Lo]||i[Yn];return typeof o=="function"?o:null}var rn=Object.assign,ns=0,Is,wp,Us,Tl,Ca,gf,ta;function vf(){}vf.__reactDisabledLog=!0;function _p(){{if(ns===0){Is=console.log,wp=console.info,Us=console.warn,Tl=console.error,Ca=console.group,gf=console.groupCollapsed,ta=console.groupEnd;var i={configurable:!0,enumerable:!0,value:vf,writable:!0};Object.defineProperties(console,{info:i,log:i,warn:i,error:i,group:i,groupCollapsed:i,groupEnd:i})}ns++}}function Ep(){{if(ns--,ns===0){var i={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:rn({},i,{value:Is}),info:rn({},i,{value:wp}),warn:rn({},i,{value:Us}),error:rn({},i,{value:Tl}),group:rn({},i,{value:Ca}),groupCollapsed:rn({},i,{value:gf}),groupEnd:rn({},i,{value:ta})})}ns<0&&c("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Fs=r.ReactCurrentDispatcher,xl;function ka(i,o,f){{if(xl===void 0)try{throw Error()}catch(y){var m=y.stack.trim().match(/\n( *(at )?)/);xl=m&&m[1]||""}return`
107
+ */return t.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=G,n=eD(),r=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,a=!1;function s(i){a=i}function l(i){if(!a){for(var o=arguments.length,f=new Array(o>1?o-1:0),m=1;m<o;m++)f[m-1]=arguments[m];h("warn",i,f)}}function c(i){if(!a){for(var o=arguments.length,f=new Array(o>1?o-1:0),m=1;m<o;m++)f[m-1]=arguments[m];h("error",i,f)}}function h(i,o,f){{var m=r.ReactDebugCurrentFrame,y=m.getStackAddendum();y!==""&&(o+="%s",f=f.concat([y]));var C=f.map(function(w){return String(w)});C.unshift("Warning: "+o),Function.prototype.apply.call(console[i],console,C)}}var p=0,v=1,b=2,k=3,T=4,E=5,R=6,M=7,A=8,U=9,V=10,j=11,I=12,N=13,ne=14,X=15,se=16,$=17,oe=18,J=19,xe=21,ke=22,Ge=23,Je=24,je=25,ve=!0,He=!1,z=!1,ee=!1,Ce=!1,H=!0,Ct=!0,Rt=!0,ht=!0,bt=new Set,it={},xt={};function tn(i,o){qn(i,o),qn(i+"Capture",o)}function qn(i,o){it[i]&&c("EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.",i),it[i]=o;{var f=i.toLowerCase();xt[f]=i,i==="onDoubleClick"&&(xt.ondblclick=i)}for(var m=0;m<o.length;m++)bt.add(o[m])}var _r=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",vr=Object.prototype.hasOwnProperty;function Xn(i){{var o=typeof Symbol=="function"&&Symbol.toStringTag,f=o&&i[Symbol.toStringTag]||i.constructor.name||"Object";return f}}function Nr(i){try{return bn(i),!1}catch{return!0}}function bn(i){return""+i}function Lt(i,o){if(Nr(i))return c("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before before using it here.",o,Xn(i)),bn(i)}function Z(i){if(Nr(i))return c("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Xn(i)),bn(i)}function le(i,o){if(Nr(i))return c("The provided `%s` prop is an unsupported type %s. This value must be coerced to a string before before using it here.",o,Xn(i)),bn(i)}function me(i,o){if(Nr(i))return c("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before before using it here.",o,Xn(i)),bn(i)}function Ve(i){if(Nr(i))return c("The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before before using it here.",Xn(i)),bn(i)}function ze(i){if(Nr(i))return c("Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before before using it here.",Xn(i)),bn(i)}var Oe=0,ut=1,Nt=2,fe=3,Re=4,vt=5,Ft=6,Kt=":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",Be=Kt+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",ct=new RegExp("^["+Kt+"]["+Be+"]*$"),At={},ln={};function En(i){return vr.call(ln,i)?!0:vr.call(At,i)?!1:ct.test(i)?(ln[i]=!0,!0):(At[i]=!0,c("Invalid attribute name: `%s`",i),!1)}function un(i,o,f){return o!==null?o.type===Oe:f?!1:i.length>2&&(i[0]==="o"||i[0]==="O")&&(i[1]==="n"||i[1]==="N")}function Dn(i,o,f,m){if(f!==null&&f.type===Oe)return!1;switch(typeof o){case"function":case"symbol":return!0;case"boolean":{if(m)return!1;if(f!==null)return!f.acceptsBooleans;var y=i.toLowerCase().slice(0,5);return y!=="data-"&&y!=="aria-"}default:return!1}}function Wn(i,o,f,m){if(o===null||typeof o>"u"||Dn(i,o,f,m))return!0;if(m)return!1;if(f!==null)switch(f.type){case fe:return!o;case Re:return o===!1;case vt:return isNaN(o);case Ft:return isNaN(o)||o<1}return!1}function Jn(i){return In.hasOwnProperty(i)?In[i]:null}function Gn(i,o,f,m,y,C,w){this.acceptsBooleans=o===Nt||o===fe||o===Re,this.attributeName=m,this.attributeNamespace=y,this.mustUseProperty=f,this.propertyName=i,this.type=o,this.sanitizeURL=C,this.removeEmptyString=w}var In={},Hi=["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"];Hi.forEach(function(i){In[i]=new Gn(i,Oe,!1,i,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(i){var o=i[0],f=i[1];In[o]=new Gn(o,ut,!1,f,null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(i){In[i]=new Gn(i,Nt,!1,i.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(i){In[i]=new Gn(i,Nt,!1,i,null,!1,!1)}),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach(function(i){In[i]=new Gn(i,fe,!1,i.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(i){In[i]=new Gn(i,fe,!0,i,null,!1,!1)}),["capture","download"].forEach(function(i){In[i]=new Gn(i,Re,!1,i,null,!1,!1)}),["cols","rows","size","span"].forEach(function(i){In[i]=new Gn(i,Ft,!1,i,null,!1,!1)}),["rowSpan","start"].forEach(function(i){In[i]=new Gn(i,vt,!1,i.toLowerCase(),null,!1,!1)});var Ji=/[\-\:]([a-z])/g,ea=function(i){return i[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach(function(i){var o=i.replace(Ji,ea);In[o]=new Gn(o,ut,!1,i,null,!1,!1)}),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach(function(i){var o=i.replace(Ji,ea);In[o]=new Gn(o,ut,!1,i,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(i){var o=i.replace(Ji,ea);In[o]=new Gn(o,ut,!1,i,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(i){In[i]=new Gn(i,ut,!1,i.toLowerCase(),null,!1,!1)});var co="xlinkHref";In[co]=new Gn("xlinkHref",ut,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(i){In[i]=new Gn(i,ut,!1,i.toLowerCase(),null,!0,!0)});var es=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,ts=!1;function fo(i){!ts&&es.test(i)&&(ts=!0,c("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",JSON.stringify(i)))}function et(i,o,f,m){if(m.mustUseProperty){var y=m.propertyName;return i[y]}else{Lt(f,o),m.sanitizeURL&&fo(""+f);var C=m.attributeName,w=null;if(m.type===Re){if(i.hasAttribute(C)){var P=i.getAttribute(C);return P===""?!0:Wn(o,f,m,!1)?P:P===""+f?f:P}}else if(i.hasAttribute(C)){if(Wn(o,f,m,!1))return i.getAttribute(C);if(m.type===fe)return f;w=i.getAttribute(C)}return Wn(o,f,m,!1)?w===null?f:w:w===""+f?f:w}}function Me(i,o,f,m){{if(!En(o))return;if(!i.hasAttribute(o))return f===void 0?void 0:null;var y=i.getAttribute(o);return Lt(f,o),y===""+f?f:y}}function It(i,o,f,m){var y=Jn(o);if(!un(o,y,m)){if(Wn(o,f,y,m)&&(f=null),m||y===null){if(En(o)){var C=o;f===null?i.removeAttribute(C):(Lt(f,o),i.setAttribute(C,""+f))}return}var w=y.mustUseProperty;if(w){var P=y.propertyName;if(f===null){var D=y.type;i[P]=D===fe?!1:""}else i[P]=f;return}var F=y.attributeName,B=y.attributeNamespace;if(f===null)i.removeAttribute(F);else{var ae=y.type,re;ae===fe||ae===Re&&f===!0?re="":(Lt(f,F),re=""+f,y.sanitizeURL&&fo(re.toString())),B?i.setAttributeNS(B,F,re):i.setAttribute(F,re)}}}var Ht=Symbol.for("react.element"),Sn=Symbol.for("react.portal"),jt=Symbol.for("react.fragment"),Cn=Symbol.for("react.strict_mode"),er=Symbol.for("react.profiler"),Er=Symbol.for("react.provider"),K=Symbol.for("react.context"),Le=Symbol.for("react.forward_ref"),Xe=Symbol.for("react.suspense"),ot=Symbol.for("react.suspense_list"),gn=Symbol.for("react.memo"),Jt=Symbol.for("react.lazy"),kn=Symbol.for("react.scope"),cn=Symbol.for("react.debug_trace_mode"),qr=Symbol.for("react.offscreen"),yr=Symbol.for("react.legacy_hidden"),Cr=Symbol.for("react.cache"),$i=Symbol.for("react.tracing_marker"),Lo=Symbol.iterator,Yn="@@iterator";function Rr(i){if(i===null||typeof i!="object")return null;var o=Lo&&i[Lo]||i[Yn];return typeof o=="function"?o:null}var rn=Object.assign,ns=0,Is,wp,Us,Tl,Ca,gf,ta;function vf(){}vf.__reactDisabledLog=!0;function _p(){{if(ns===0){Is=console.log,wp=console.info,Us=console.warn,Tl=console.error,Ca=console.group,gf=console.groupCollapsed,ta=console.groupEnd;var i={configurable:!0,enumerable:!0,value:vf,writable:!0};Object.defineProperties(console,{info:i,log:i,warn:i,error:i,group:i,groupCollapsed:i,groupEnd:i})}ns++}}function Ep(){{if(ns--,ns===0){var i={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:rn({},i,{value:Is}),info:rn({},i,{value:wp}),warn:rn({},i,{value:Us}),error:rn({},i,{value:Tl}),group:rn({},i,{value:Ca}),groupCollapsed:rn({},i,{value:gf}),groupEnd:rn({},i,{value:ta})})}ns<0&&c("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Fs=r.ReactCurrentDispatcher,xl;function ka(i,o,f){{if(xl===void 0)try{throw Error()}catch(y){var m=y.stack.trim().match(/\n( *(at )?)/);xl=m&&m[1]||""}return`
108
108
  `+xl+i}}var rs=!1,wl;{var Hc=typeof WeakMap=="function"?WeakMap:Map;wl=new Hc}function js(i,o){if(!i||rs)return"";{var f=wl.get(i);if(f!==void 0)return f}var m;rs=!0;var y=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var C;C=Fs.current,Fs.current=null,_p();try{if(o){var w=function(){throw Error()};if(Object.defineProperty(w.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(w,[])}catch(be){m=be}Reflect.construct(i,[],w)}else{try{w.call()}catch(be){m=be}i.call(w.prototype)}}else{try{throw Error()}catch(be){m=be}i()}}catch(be){if(be&&m&&typeof be.stack=="string"){for(var P=be.stack.split(`
109
109
  `),D=m.stack.split(`
110
110
  `),F=P.length-1,B=D.length-1;F>=1&&B>=0&&P[F]!==D[B];)B--;for(;F>=1&&B>=0;F--,B--)if(P[F]!==D[B]){if(F!==1||B!==1)do if(F--,B--,B<0||P[F]!==D[B]){var ae=`
@@ -125,7 +125,7 @@ Check the render method of \``+i+"`.":""}var Eu=["value","defaultValue"];functio
125
125
  * @internal
126
126
  * @license Modernizr 3.0.0pre (Custom Build) | MIT
127
127
  */function hh(i){if(!_r)return!1;var o="on"+i,f=o in document;if(!f){var m=document.createElement("div");m.setAttribute(o,"return;"),f=typeof m[o]=="function"}return f}function eE(){tn("onChange",["change","click","focusin","focusout","input","keydown","keyup","selectionchange"])}function ph(i,o,f,m){$v(m);var y=GC(o,"onChange");if(y.length>0){var C=new Ga("onChange","change",null,f,m);i.push({event:C,listeners:y})}}var u=null,d=null;function g(i){var o=i.nodeName&&i.nodeName.toLowerCase();return o==="select"||o==="input"&&i.type==="file"}function S(i){var o=[];ph(o,d,i,Ip(i)),nC(x,o)}function x(i){SU(i,0)}function _(i){var o=Hm(i);if(El(o))return i}function L(i,o){if(i==="change")return o}var q=!1;_r&&(q=hh("input")&&(!document.documentMode||document.documentMode>9));function te(i,o){u=i,d=o,u.attachEvent("onpropertychange",Fe)}function ye(){u&&(u.detachEvent("onpropertychange",Fe),u=null,d=null)}function Fe(i){i.propertyName==="value"&&_(d)&&S(i)}function $e(i,o,f){i==="focusin"?(ye(),te(o,f)):i==="focusout"&&ye()}function Ue(i,o){if(i==="selectionchange"||i==="keyup"||i==="keydown")return _(d)}function mt(i){var o=i.nodeName;return o&&o.toLowerCase()==="input"&&(i.type==="checkbox"||i.type==="radio")}function wt(i,o){if(i==="click")return _(o)}function Et(i,o){if(i==="input"||i==="change")return _(o)}function Zr(i){var o=i._wrapperState;!o||!o.controlled||i.type!=="number"||Tt(i,"number",i.value)}function ue(i,o,f,m,y,C,w){var P=f?Hm(f):window,D,F;if(g(P)?D=L:HC(P)?q?D=Et:(D=Ue,F=$e):mt(P)&&(D=wt),D){var B=D(o,f);if(B){ph(i,B,m,y);return}}F&&F(o,P,f),o==="focusout"&&Zr(P)}function ie(){qn("onMouseEnter",["mouseout","mouseover"]),qn("onMouseLeave",["mouseout","mouseover"]),qn("onPointerEnter",["pointerout","pointerover"]),qn("onPointerLeave",["pointerout","pointerover"])}function he(i,o,f,m,y,C,w){var P=o==="mouseover"||o==="pointerover",D=o==="mouseout"||o==="pointerout";if(P&&!j_(m)){var F=m.relatedTarget||m.fromElement;if(F&&(vh(F)||Gy(F)))return}if(!(!D&&!P)){var B;if(y.window===y)B=y;else{var ae=y.ownerDocument;ae?B=ae.defaultView||ae.parentWindow:B=window}var re,ge;if(D){var be=m.relatedTarget||m.toElement;if(re=f,ge=be?vh(be):null,ge!==null){var we=aa(ge);(ge!==we||ge.tag!==E&&ge.tag!==R)&&(ge=null)}}else re=null,ge=f;if(re!==ge){var st=Em,Vt="onMouseLeave",Pt="onMouseEnter",Ln="mouse";(o==="pointerout"||o==="pointerover")&&(st=Ry,Vt="onPointerLeave",Pt="onPointerEnter",Ln="pointer");var wn=re==null?B:Hm(re),ce=ge==null?B:Hm(ge),_e=new st(Vt,Ln+"leave",re,m,y);_e.target=wn,_e.relatedTarget=ce;var de=null,qe=vh(y);if(qe===f){var yt=new st(Pt,Ln+"enter",ge,m,y);yt.target=ce,yt.relatedTarget=wn,de=yt}sne(i,_e,de,re,ge)}}}function Ke(i,o){return i===o&&(i!==0||1/i===1/o)||i!==i&&o!==o}var dt=typeof Object.is=="function"?Object.is:Ke;function Ut(i,o){if(dt(i,o))return!0;if(typeof i!="object"||i===null||typeof o!="object"||o===null)return!1;var f=Object.keys(i),m=Object.keys(o);if(f.length!==m.length)return!1;for(var y=0;y<f.length;y++){var C=f[y];if(!vr.call(o,C)||!dt(i[C],o[C]))return!1}return!0}function zt(i){for(;i&&i.firstChild;)i=i.firstChild;return i}function Qt(i){for(;i;){if(i.nextSibling)return i.nextSibling;i=i.parentNode}}function pi(i,o){for(var f=zt(i),m=0,y=0;f;){if(f.nodeType===Hs){if(y=m+f.textContent.length,m<=o&&y>=o)return{node:f,offset:o-m};m=y}f=zt(Qt(f))}}function zn(i){var o=i.ownerDocument,f=o&&o.defaultView||window,m=f.getSelection&&f.getSelection();if(!m||m.rangeCount===0)return null;var y=m.anchorNode,C=m.anchorOffset,w=m.focusNode,P=m.focusOffset;try{y.nodeType,w.nodeType}catch{return null}return Zl(i,y,C,w,P)}function Zl(i,o,f,m,y){var C=0,w=-1,P=-1,D=0,F=0,B=i,ae=null;e:for(;;){for(var re=null;B===o&&(f===0||B.nodeType===Hs)&&(w=C+f),B===m&&(y===0||B.nodeType===Hs)&&(P=C+y),B.nodeType===Hs&&(C+=B.nodeValue.length),(re=B.firstChild)!==null;)ae=B,B=re;for(;;){if(B===i)break e;if(ae===o&&++D===f&&(w=C),ae===m&&++F===y&&(P=C),(re=B.nextSibling)!==null)break;B=ae,ae=B.parentNode}B=re}return w===-1||P===-1?null:{start:w,end:P}}function tE(i,o){var f=i.ownerDocument||document,m=f&&f.defaultView||window;if(m.getSelection){var y=m.getSelection(),C=i.textContent.length,w=Math.min(o.start,C),P=o.end===void 0?w:Math.min(o.end,C);if(!y.extend&&w>P){var D=P;P=w,w=D}var F=pi(i,w),B=pi(i,P);if(F&&B){if(y.rangeCount===1&&y.anchorNode===F.node&&y.anchorOffset===F.offset&&y.focusNode===B.node&&y.focusOffset===B.offset)return;var ae=f.createRange();ae.setStart(F.node,F.offset),y.removeAllRanges(),w>P?(y.addRange(ae),y.extend(B.node,B.offset)):(ae.setEnd(B.node,B.offset),y.addRange(ae))}}}function lU(i){return i&&i.nodeType===Hs}function uU(i,o){return!i||!o?!1:i===o?!0:lU(i)?!1:lU(o)?uU(i,o.parentNode):"contains"in i?i.contains(o):i.compareDocumentPosition?!!(i.compareDocumentPosition(o)&16):!1}function Hte(i){return i&&i.ownerDocument&&uU(i.ownerDocument.documentElement,i)}function $te(i){try{return typeof i.contentWindow.location.href=="string"}catch{return!1}}function cU(){for(var i=window,o=Vs();o instanceof i.HTMLIFrameElement;){if($te(o))i=o.contentWindow;else return o;o=Vs(i.document)}return o}function nE(i){var o=i&&i.nodeName&&i.nodeName.toLowerCase();return o&&(o==="input"&&(i.type==="text"||i.type==="search"||i.type==="tel"||i.type==="url"||i.type==="password")||o==="textarea"||i.contentEditable==="true")}function qte(){var i=cU();return{focusedElem:i,selectionRange:nE(i)?Gte(i):null}}function Wte(i){var o=cU(),f=i.focusedElem,m=i.selectionRange;if(o!==f&&Hte(f)){m!==null&&nE(f)&&Yte(f,m);for(var y=[],C=f;C=C.parentNode;)C.nodeType===xa&&y.push({element:C,left:C.scrollLeft,top:C.scrollTop});typeof f.focus=="function"&&f.focus();for(var w=0;w<y.length;w++){var P=y[w];P.element.scrollLeft=P.left,P.element.scrollTop=P.top}}}function Gte(i){var o;return"selectionStart"in i?o={start:i.selectionStart,end:i.selectionEnd}:o=zn(i),o||{start:0,end:0}}function Yte(i,o){var f=o.start,m=o.end;m===void 0&&(m=f),"selectionStart"in i?(i.selectionStart=f,i.selectionEnd=Math.min(m,i.value.length)):tE(i,o)}var Kte=_r&&"documentMode"in document&&document.documentMode<=11;function Zte(){tn("onSelect",["focusout","contextmenu","dragend","focusin","keydown","keyup","mousedown","mouseup","selectionchange"])}var Fm=null,rE=null,Ly=null,iE=!1;function Qte(i){if("selectionStart"in i&&nE(i))return{start:i.selectionStart,end:i.selectionEnd};var o=i.ownerDocument&&i.ownerDocument.defaultView||window,f=o.getSelection();return{anchorNode:f.anchorNode,anchorOffset:f.anchorOffset,focusNode:f.focusNode,focusOffset:f.focusOffset}}function Xte(i){return i.window===i?i.document:i.nodeType===$s?i:i.ownerDocument}function dU(i,o,f){var m=Xte(f);if(!(iE||Fm==null||Fm!==Vs(m))){var y=Qte(Fm);if(!Ly||!Ut(Ly,y)){Ly=y;var C=GC(rE,"onSelect");if(C.length>0){var w=new Ga("onSelect","select",null,o,f);i.push({event:w,listeners:C}),w.target=Fm}}}}function Jte(i,o,f,m,y,C,w){var P=f?Hm(f):window;switch(o){case"focusin":(HC(P)||P.contentEditable==="true")&&(Fm=P,rE=f,Ly=null);break;case"focusout":Fm=null,rE=null,Ly=null;break;case"mousedown":iE=!0;break;case"contextmenu":case"mouseup":case"dragend":iE=!1,dU(i,m,y);break;case"selectionchange":if(Kte)break;case"keydown":case"keyup":dU(i,m,y)}}function $C(i,o){var f={};return f[i.toLowerCase()]=o.toLowerCase(),f["Webkit"+i]="webkit"+o,f["Moz"+i]="moz"+o,f}var jm={animationend:$C("Animation","AnimationEnd"),animationiteration:$C("Animation","AnimationIteration"),animationstart:$C("Animation","AnimationStart"),transitionend:$C("Transition","TransitionEnd")},aE={},fU={};_r&&(fU=document.createElement("div").style,"AnimationEvent"in window||(delete jm.animationend.animation,delete jm.animationiteration.animation,delete jm.animationstart.animation),"TransitionEvent"in window||delete jm.transitionend.transition);function qC(i){if(aE[i])return aE[i];if(!jm[i])return i;var o=jm[i];for(var f in o)if(o.hasOwnProperty(f)&&f in fU)return aE[i]=o[f];return i}var hU=qC("animationend"),pU=qC("animationiteration"),mU=qC("animationstart"),gU=qC("transitionend"),vU=new Map,yU=["abort","auxClick","cancel","canPlay","canPlayThrough","click","close","contextMenu","copy","cut","drag","dragEnd","dragEnter","dragExit","dragLeave","dragOver","dragStart","drop","durationChange","emptied","encrypted","ended","error","gotPointerCapture","input","invalid","keyDown","keyPress","keyUp","load","loadedData","loadedMetadata","loadStart","lostPointerCapture","mouseDown","mouseMove","mouseOut","mouseOver","mouseUp","paste","pause","play","playing","pointerCancel","pointerDown","pointerMove","pointerOut","pointerOver","pointerUp","progress","rateChange","reset","resize","seeked","seeking","stalled","submit","suspend","timeUpdate","touchCancel","touchEnd","touchStart","volumeChange","scroll","toggle","touchMove","waiting","wheel"];function Rd(i,o){vU.set(i,o),tn(o,[i])}function ene(){for(var i=0;i<yU.length;i++){var o=yU[i],f=o.toLowerCase(),m=o[0].toUpperCase()+o.slice(1);Rd(f,"on"+m)}Rd(hU,"onAnimationEnd"),Rd(pU,"onAnimationIteration"),Rd(mU,"onAnimationStart"),Rd("dblclick","onDoubleClick"),Rd("focusin","onFocus"),Rd("focusout","onBlur"),Rd(gU,"onTransitionEnd")}function tne(i,o,f,m,y,C,w){var P=vU.get(o);if(P!==void 0){var D=Ga,F=o;switch(o){case"keypress":if(wd(m)===0)return;case"keydown":case"keyup":D=K_;break;case"focusin":F="focus",D=Rm;break;case"focusout":F="blur",D=Rm;break;case"beforeblur":case"afterblur":D=Rm;break;case"click":if(m.button===2)return;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":D=Em;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":D=xy;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":D=Q_;break;case hU:case pU:case mU:D=wy;break;case gU:D=Py;break;case"scroll":D=AC;break;case"wheel":D=Gl;break;case"copy":case"cut":case"paste":D=W_;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":D=Ry;break}var B=(C&Pu)!==0;{var ae=!B&&o==="scroll",re=ane(f,P,m.type,B,ae);if(re.length>0){var ge=new D(P,F,null,m,y);i.push({event:ge,listeners:re})}}}}ene(),ie(),eE(),Zte(),jC();function nne(i,o,f,m,y,C,w){tne(i,o,f,m,y,C);var P=(C&Hv)===0;P&&(he(i,o,f,m,y),ue(i,o,f,m,y),Jte(i,o,f,m,y),J_(i,o,f,m,y))}var Ny=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","resize","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting"],oE=new Set(["cancel","close","invalid","load","scroll","toggle"].concat(Ny));function bU(i,o,f){var m=i.type||"unknown-event";i.currentTarget=f,If(m,o,void 0,i),i.currentTarget=null}function rne(i,o,f){var m;if(f)for(var y=o.length-1;y>=0;y--){var C=o[y],w=C.instance,P=C.currentTarget,D=C.listener;if(w!==m&&i.isPropagationStopped())return;bU(i,D,P),m=w}else for(var F=0;F<o.length;F++){var B=o[F],ae=B.instance,re=B.currentTarget,ge=B.listener;if(ae!==m&&i.isPropagationStopped())return;bU(i,ge,re),m=ae}}function SU(i,o){for(var f=(o&Pu)!==0,m=0;m<i.length;m++){var y=i[m],C=y.event,w=y.listeners;rne(C,w,f)}qs()}function ine(i,o,f,m,y){var C=Ip(f),w=[];nne(w,i,m,f,C,o),SU(w,o)}function Ir(i,o){oE.has(i)||c('Did not expect a listenToNonDelegatedEvent() call for "%s". This is a bug in React. Please file an issue.',i);var f=!1,m=Lre(o),y=lne(i);m.has(y)||(CU(o,i,ss,f),m.add(y))}function sE(i,o,f){oE.has(i)&&!o&&c('Did not expect a listenToNativeEvent() call for "%s" in the bubble phase. This is a bug in React. Please file an issue.',i);var m=0;o&&(m|=Pu),CU(f,i,m,o)}var WC="_reactListening"+Math.random().toString(36).slice(2);function Iy(i){if(!i[WC]){i[WC]=!0,bt.forEach(function(f){f!=="selectionchange"&&(oE.has(f)||sE(f,!1,i),sE(f,!0,i))});var o=i.nodeType===$s?i:i.ownerDocument;o!==null&&(o[WC]||(o[WC]=!0,sE("selectionchange",!1,o)))}}function CU(i,o,f,m,y){var C=qa(i,o,f),w=void 0;Nf&&(o==="touchstart"||o==="touchmove"||o==="wheel")&&(w=!0),i=i,m?w!==void 0?Td(i,o,C,w):Ty(i,o,C):w!==void 0?Zs(i,o,C,w):Ma(i,o,C)}function kU(i,o){return i===o||i.nodeType===ti&&i.parentNode===o}function lE(i,o,f,m,y){var C=m;if(!(o&Bv)&&!(o&ss)){var w=y;if(m!==null){var P=m;e:for(;;){if(P===null)return;var D=P.tag;if(D===k||D===T){var F=P.stateNode.containerInfo;if(kU(F,w))break;if(D===T)for(var B=P.return;B!==null;){var ae=B.tag;if(ae===k||ae===T){var re=B.stateNode.containerInfo;if(kU(re,w))return}B=B.return}for(;F!==null;){var ge=vh(F);if(ge===null)return;var be=ge.tag;if(be===E||be===R){P=C=ge;continue e}F=F.parentNode}}P=P.return}}}nC(function(){return ine(i,o,f,C)})}function Uy(i,o,f){return{instance:i,listener:o,currentTarget:f}}function ane(i,o,f,m,y,C){for(var w=o!==null?o+"Capture":null,P=m?w:o,D=[],F=i,B=null;F!==null;){var ae=F,re=ae.stateNode,ge=ae.tag;if(ge===E&&re!==null&&(B=re,P!==null)){var be=Au(F,P);be!=null&&D.push(Uy(F,be,B))}if(y)break;F=F.return}return D}function GC(i,o){for(var f=o+"Capture",m=[],y=i;y!==null;){var C=y,w=C.stateNode,P=C.tag;if(P===E&&w!==null){var D=w,F=Au(y,f);F!=null&&m.unshift(Uy(y,F,D));var B=Au(y,o);B!=null&&m.push(Uy(y,B,D))}y=y.return}return m}function Vm(i){if(i===null)return null;do i=i.return;while(i&&i.tag!==E);return i||null}function one(i,o){for(var f=i,m=o,y=0,C=f;C;C=Vm(C))y++;for(var w=0,P=m;P;P=Vm(P))w++;for(;y-w>0;)f=Vm(f),y--;for(;w-y>0;)m=Vm(m),w--;for(var D=y;D--;){if(f===m||m!==null&&f===m.alternate)return f;f=Vm(f),m=Vm(m)}return null}function TU(i,o,f,m,y){for(var C=o._reactName,w=[],P=f;P!==null&&P!==m;){var D=P,F=D.alternate,B=D.stateNode,ae=D.tag;if(F!==null&&F===m)break;if(ae===E&&B!==null){var re=B;if(y){var ge=Au(P,C);ge!=null&&w.unshift(Uy(P,ge,re))}else if(!y){var be=Au(P,C);be!=null&&w.push(Uy(P,be,re))}}P=P.return}w.length!==0&&i.push({event:o,listeners:w})}function sne(i,o,f,m,y){var C=m&&y?one(m,y):null;m!==null&&TU(i,o,m,C,!1),y!==null&&f!==null&&TU(i,f,y,C,!0)}function lne(i,o){return i+"__bubble"}var xo=!1,Fy="dangerouslySetInnerHTML",YC="suppressContentEditableWarning",Pd="suppressHydrationWarning",xU="autoFocus",mh="children",gh="style",KC="__html",uE,ZC,jy,wU,QC,_U,EU;uE={dialog:!0,webview:!0},ZC=function(i,o){ZS(i,o),rd(i,o),tC(i,o,{registrationNameDependencies:it,possibleRegistrationNames:xt})},_U=_r&&!document.documentMode,jy=function(i,o,f){if(!xo){var m=XC(f),y=XC(o);y!==m&&(xo=!0,c("Prop `%s` did not match. Server: %s Client: %s",i,JSON.stringify(y),JSON.stringify(m)))}},wU=function(i){if(!xo){xo=!0;var o=[];i.forEach(function(f){o.push(f)}),c("Extra attributes from the server: %s",o)}},QC=function(i,o){o===!1?c("Expected `%s` listener to be a function, instead got `false`.\n\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.",i,i,i):c("Expected `%s` listener to be a function, instead got a value of `%s` type.",i,typeof o)},EU=function(i,o){var f=i.namespaceURI===Io?i.ownerDocument.createElement(i.tagName):i.ownerDocument.createElementNS(i.namespaceURI,i.tagName);return f.innerHTML=o,f.innerHTML};var une=/\r\n?/g,cne=/\u0000|\uFFFD/g;function XC(i){Ve(i);var o=typeof i=="string"?i:""+i;return o.replace(une,`
128
- `).replace(cne,"")}function JC(i,o,f,m){var y=XC(o),C=XC(i);if(C!==y&&(m&&(xo||(xo=!0,c('Text content did not match. Server: "%s" Client: "%s"',C,y))),f&&ve))throw new Error("Text content does not match server-rendered HTML.")}function RU(i){return i.nodeType===$s?i:i.ownerDocument}function dne(){}function ek(i){i.onclick=dne}function fne(i,o,f,m,y){for(var C in m)if(m.hasOwnProperty(C)){var w=m[C];if(C===gh)w&&Object.freeze(w),qS(o,w);else if(C===Fy){var P=w?w[KC]:void 0;P!=null&&MS(o,P)}else if(C===mh)if(typeof w=="string"){var D=i!=="textarea"||w!=="";D&&Pl(o,w)}else typeof w=="number"&&Pl(o,""+w);else C===YC||C===Pd||C===xU||(it.hasOwnProperty(C)?w!=null&&(typeof w!="function"&&QC(C,w),C==="onScroll"&&Ir("scroll",o)):w!=null&&It(o,C,w,y))}}function hne(i,o,f,m){for(var y=0;y<o.length;y+=2){var C=o[y],w=o[y+1];C===gh?qS(i,w):C===Fy?MS(i,w):C===mh?Pl(i,w):It(i,C,w,m)}}function pne(i,o,f,m){var y,C=RU(f),w,P=m;if(P===Io&&(P=Iv(i)),P===Io){if(y=Dl(i,o),!y&&i!==i.toLowerCase()&&c("<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",i),i==="script"){var D=C.createElement("div");D.innerHTML="<script><\/script>";var F=D.firstChild;w=D.removeChild(F)}else if(typeof o.is=="string")w=C.createElement(i,{is:o.is});else if(w=C.createElement(i),i==="select"){var B=w;o.multiple?B.multiple=!0:o.size&&(B.size=o.size)}}else w=C.createElementNS(P,i);return P===Io&&!y&&Object.prototype.toString.call(w)==="[object HTMLUnknownElement]"&&!vr.call(uE,i)&&(uE[i]=!0,c("The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.",i)),w}function mne(i,o){return RU(o).createTextNode(i)}function gne(i,o,f,m){var y=Dl(o,f);ZC(o,f);var C;switch(o){case"dialog":Ir("cancel",i),Ir("close",i),C=f;break;case"iframe":case"object":case"embed":Ir("load",i),C=f;break;case"video":case"audio":for(var w=0;w<Ny.length;w++)Ir(Ny[w],i);C=f;break;case"source":Ir("error",i),C=f;break;case"img":case"image":case"link":Ir("error",i),Ir("load",i),C=f;break;case"details":Ir("toggle",i),C=f;break;case"input":Zc(i,f),C=go(i,f),Ir("invalid",i);break;case"option":Kn(i,f),C=f;break;case"select":Tf(i,f),C=Ru(i,f),Ir("invalid",i);break;case"textarea":DS(i,f),C=Dp(i,f),Ir("invalid",i);break;default:C=f}switch(Lp(o,C),fne(o,i,m,C,y),o){case"input":mo(i),pe(i,f,!1);break;case"textarea":mo(i),OS(i);break;case"option":lr(i,f);break;case"select":Mv(i,f);break;default:typeof C.onClick=="function"&&ek(i);break}}function vne(i,o,f,m,y){ZC(o,m);var C=null,w,P;switch(o){case"input":w=go(i,f),P=go(i,m),C=[];break;case"select":w=Ru(i,f),P=Ru(i,m),C=[];break;case"textarea":w=Dp(i,f),P=Dp(i,m),C=[];break;default:w=f,P=m,typeof w.onClick!="function"&&typeof P.onClick=="function"&&ek(i);break}Lp(o,P);var D,F,B=null;for(D in w)if(!(P.hasOwnProperty(D)||!w.hasOwnProperty(D)||w[D]==null))if(D===gh){var ae=w[D];for(F in ae)ae.hasOwnProperty(F)&&(B||(B={}),B[F]="")}else D===Fy||D===mh||D===YC||D===Pd||D===xU||(it.hasOwnProperty(D)?C||(C=[]):(C=C||[]).push(D,null));for(D in P){var re=P[D],ge=w!=null?w[D]:void 0;if(!(!P.hasOwnProperty(D)||re===ge||re==null&&ge==null))if(D===gh)if(re&&Object.freeze(re),ge){for(F in ge)ge.hasOwnProperty(F)&&(!re||!re.hasOwnProperty(F))&&(B||(B={}),B[F]="");for(F in re)re.hasOwnProperty(F)&&ge[F]!==re[F]&&(B||(B={}),B[F]=re[F])}else B||(C||(C=[]),C.push(D,B)),B=re;else if(D===Fy){var be=re?re[KC]:void 0,we=ge?ge[KC]:void 0;be!=null&&we!==be&&(C=C||[]).push(D,be)}else D===mh?(typeof re=="string"||typeof re=="number")&&(C=C||[]).push(D,""+re):D===YC||D===Pd||(it.hasOwnProperty(D)?(re!=null&&(typeof re!="function"&&QC(D,re),D==="onScroll"&&Ir("scroll",i)),!C&&ge!==re&&(C=[])):(C=C||[]).push(D,re))}return B&&(Uo(B,P[gh]),(C=C||[]).push(gh,B)),C}function yne(i,o,f,m,y){f==="input"&&y.type==="radio"&&y.name!=null&&O(i,y);var C=Dl(f,m),w=Dl(f,y);switch(hne(i,o,C,w),f){case"input":Y(i,y);break;case"textarea":AS(i,y);break;case"select":Pp(i,y);break}}function bne(i){{var o=i.toLowerCase();return ed.hasOwnProperty(o)&&ed[o]||null}}function Sne(i,o,f,m,y,C,w){var P,D;switch(P=Dl(o,f),ZC(o,f),o){case"dialog":Ir("cancel",i),Ir("close",i);break;case"iframe":case"object":case"embed":Ir("load",i);break;case"video":case"audio":for(var F=0;F<Ny.length;F++)Ir(Ny[F],i);break;case"source":Ir("error",i);break;case"img":case"image":case"link":Ir("error",i),Ir("load",i);break;case"details":Ir("toggle",i);break;case"input":Zc(i,f),Ir("invalid",i);break;case"option":Kn(i,f);break;case"select":Tf(i,f),Ir("invalid",i);break;case"textarea":DS(i,f),Ir("invalid",i);break}Lp(o,f);{D=new Set;for(var B=i.attributes,ae=0;ae<B.length;ae++){var re=B[ae].name.toLowerCase();switch(re){case"value":break;case"checked":break;case"selected":break;default:D.add(B[ae].name)}}}var ge=null;for(var be in f)if(f.hasOwnProperty(be)){var we=f[be];if(be===mh)typeof we=="string"?i.textContent!==we&&(f[Pd]!==!0&&JC(i.textContent,we,C,w),ge=[mh,we]):typeof we=="number"&&i.textContent!==""+we&&(f[Pd]!==!0&&JC(i.textContent,we,C,w),ge=[mh,""+we]);else if(it.hasOwnProperty(be))we!=null&&(typeof we!="function"&&QC(be,we),be==="onScroll"&&Ir("scroll",i));else if(w&&typeof P=="boolean"){var st=void 0,Vt=Jn(be);if(f[Pd]!==!0){if(!(be===YC||be===Pd||be==="value"||be==="checked"||be==="selected")){if(be===Fy){var Pt=i.innerHTML,Ln=we?we[KC]:void 0;if(Ln!=null){var wn=EU(i,Ln);wn!==Pt&&jy(be,Pt,wn)}}else if(be===gh){if(D.delete(be),_U){var ce=I_(we);st=i.getAttribute("style"),ce!==st&&jy(be,st,ce)}}else if(P&&!Ce)D.delete(be.toLowerCase()),st=Me(i,be,we),we!==st&&jy(be,st,we);else if(!un(be,Vt,P)&&!Wn(be,we,Vt,P)){var _e=!1;if(Vt!==null)D.delete(Vt.attributeName),st=tt(i,be,we,Vt);else{var de=m;if(de===Io&&(de=Iv(o)),de===Io)D.delete(be.toLowerCase());else{var qe=bne(be);qe!==null&&qe!==be&&(_e=!0,D.delete(qe)),D.delete(be)}st=Me(i,be,we)}var yt=Ce;!yt&&we!==st&&!_e&&jy(be,st,we)}}}}}switch(w&&D.size>0&&f[Pd]!==!0&&wU(D),o){case"input":mo(i),pe(i,f,!0);break;case"textarea":mo(i),OS(i);break;case"select":case"option":break;default:typeof f.onClick=="function"&&ek(i);break}return ge}function Cne(i,o,f){var m=i.nodeValue!==o;return m}function cE(i,o){{if(xo)return;xo=!0,c("Did not expect server HTML to contain a <%s> in <%s>.",o.nodeName.toLowerCase(),i.nodeName.toLowerCase())}}function dE(i,o){{if(xo)return;xo=!0,c('Did not expect server HTML to contain the text node "%s" in <%s>.',o.nodeValue,i.nodeName.toLowerCase())}}function fE(i,o,f){{if(xo)return;xo=!0,c("Expected server HTML to contain a matching <%s> in <%s>.",o,i.nodeName.toLowerCase())}}function hE(i,o){{if(o===""||xo)return;xo=!0,c('Expected server HTML to contain a matching text node for "%s" in <%s>.',o,i.nodeName.toLowerCase())}}function kne(i,o,f){switch(o){case"input":Te(i,f);return;case"textarea":P_(i,f);return;case"select":Lv(i,f);return}}var Vy=function(){},zy=function(){};{var Tne=["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","template","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],PU=["applet","caption","html","table","td","th","marquee","object","template","foreignObject","desc","title"],xne=PU.concat(["button"]),wne=["dd","dt","li","option","optgroup","p","rp","rt"],DU={current:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null};zy=function(i,o){var f=rn({},i||DU),m={tag:o};return PU.indexOf(o)!==-1&&(f.aTagInScope=null,f.buttonTagInScope=null,f.nobrTagInScope=null),xne.indexOf(o)!==-1&&(f.pTagInButtonScope=null),Tne.indexOf(o)!==-1&&o!=="address"&&o!=="div"&&o!=="p"&&(f.listItemTagAutoclosing=null,f.dlItemTagAutoclosing=null),f.current=m,o==="form"&&(f.formTag=m),o==="a"&&(f.aTagInScope=m),o==="button"&&(f.buttonTagInScope=m),o==="nobr"&&(f.nobrTagInScope=m),o==="p"&&(f.pTagInButtonScope=m),o==="li"&&(f.listItemTagAutoclosing=m),(o==="dd"||o==="dt")&&(f.dlItemTagAutoclosing=m),f};var _ne=function(i,o){switch(o){case"select":return i==="option"||i==="optgroup"||i==="#text";case"optgroup":return i==="option"||i==="#text";case"option":return i==="#text";case"tr":return i==="th"||i==="td"||i==="style"||i==="script"||i==="template";case"tbody":case"thead":case"tfoot":return i==="tr"||i==="style"||i==="script"||i==="template";case"colgroup":return i==="col"||i==="template";case"table":return i==="caption"||i==="colgroup"||i==="tbody"||i==="tfoot"||i==="thead"||i==="style"||i==="script"||i==="template";case"head":return i==="base"||i==="basefont"||i==="bgsound"||i==="link"||i==="meta"||i==="title"||i==="noscript"||i==="noframes"||i==="style"||i==="script"||i==="template";case"html":return i==="head"||i==="body"||i==="frameset";case"frameset":return i==="frame";case"#document":return i==="html"}switch(i){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return o!=="h1"&&o!=="h2"&&o!=="h3"&&o!=="h4"&&o!=="h5"&&o!=="h6";case"rp":case"rt":return wne.indexOf(o)===-1;case"body":case"caption":case"col":case"colgroup":case"frameset":case"frame":case"head":case"html":case"tbody":case"td":case"tfoot":case"th":case"thead":case"tr":return o==null}return!0},Ene=function(i,o){switch(i){case"address":case"article":case"aside":case"blockquote":case"center":case"details":case"dialog":case"dir":case"div":case"dl":case"fieldset":case"figcaption":case"figure":case"footer":case"header":case"hgroup":case"main":case"menu":case"nav":case"ol":case"p":case"section":case"summary":case"ul":case"pre":case"listing":case"table":case"hr":case"xmp":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return o.pTagInButtonScope;case"form":return o.formTag||o.pTagInButtonScope;case"li":return o.listItemTagAutoclosing;case"dd":case"dt":return o.dlItemTagAutoclosing;case"button":return o.buttonTagInScope;case"a":return o.aTagInScope;case"nobr":return o.nobrTagInScope}return null},AU={};Vy=function(i,o,f){f=f||DU;var m=f.current,y=m&&m.tag;o!=null&&(i!=null&&c("validateDOMNesting: when childText is passed, childTag should be null"),i="#text");var C=_ne(i,y)?null:m,w=C?null:Ene(i,f),P=C||w;if(P){var D=P.tag,F=!!C+"|"+i+"|"+D;if(!AU[F]){AU[F]=!0;var B=i,ae="";if(i==="#text"?/\S/.test(o)?B="Text nodes":(B="Whitespace text nodes",ae=" Make sure you don't have any extra whitespace between tags on each line of your source code."):B="<"+i+">",C){var re="";D==="table"&&i==="tr"&&(re+=" Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser."),c("validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s",B,D,ae,re)}else c("validateDOMNesting(...): %s cannot appear as a descendant of <%s>.",B,D)}}}}var tk="suppressHydrationWarning",nk="$",rk="/$",By="$?",Hy="$!",Rne="style",pE=null,mE=null;function Pne(i){var o,f,m=i.nodeType;switch(m){case $s:case xf:{o=m===$s?"#document":"#fragment";var y=i.documentElement;f=y?y.namespaceURI:Ap(null,"");break}default:{var C=m===ti?i.parentNode:i,w=C.namespaceURI||null;o=C.tagName,f=Ap(w,o);break}}{var P=o.toLowerCase(),D=zy(null,P);return{namespace:f,ancestorInfo:D}}}function Dne(i,o,f){{var m=i,y=Ap(m.namespace,o),C=zy(m.ancestorInfo,o);return{namespace:y,ancestorInfo:C}}}function Jse(i){return i}function Ane(i){pE=Oi(),mE=qte();var o=null;return Kr(!1),o}function One(i){Wte(mE),Kr(pE),pE=null,mE=null}function Mne(i,o,f,m,y){var C;{var w=m;if(Vy(i,null,w.ancestorInfo),typeof o.children=="string"||typeof o.children=="number"){var P=""+o.children,D=zy(w.ancestorInfo,i);Vy(null,P,D)}C=w.namespace}var F=pne(i,o,f,C);return Wy(y,F),TE(F,o),F}function Lne(i,o){i.appendChild(o)}function Nne(i,o,f,m,y){switch(gne(i,o,f,m),o){case"button":case"input":case"select":case"textarea":return!!f.autoFocus;case"img":return!0;default:return!1}}function Ine(i,o,f,m,y,C){{var w=C;if(typeof m.children!=typeof f.children&&(typeof m.children=="string"||typeof m.children=="number")){var P=""+m.children,D=zy(w.ancestorInfo,o);Vy(null,P,D)}}return vne(i,o,f,m)}function gE(i,o){return i==="textarea"||i==="noscript"||typeof o.children=="string"||typeof o.children=="number"||typeof o.dangerouslySetInnerHTML=="object"&&o.dangerouslySetInnerHTML!==null&&o.dangerouslySetInnerHTML.__html!=null}function Une(i,o,f,m){{var y=f;Vy(null,i,y.ancestorInfo)}var C=mne(i,o);return Wy(m,C),C}function Fne(){var i=window.event;return i===void 0?Di:kd(i.type)}var vE=typeof setTimeout=="function"?setTimeout:void 0,jne=typeof clearTimeout=="function"?clearTimeout:void 0,yE=-1,OU=typeof Promise=="function"?Promise:void 0,Vne=typeof queueMicrotask=="function"?queueMicrotask:typeof OU<"u"?function(i){return OU.resolve(null).then(i).catch(zne)}:vE;function zne(i){setTimeout(function(){throw i})}function Bne(i,o,f,m){switch(o){case"button":case"input":case"select":case"textarea":f.autoFocus&&i.focus();return;case"img":{f.src&&(i.src=f.src);return}}}function Hne(i,o,f,m,y,C){yne(i,o,f,m,y),TE(i,y)}function MU(i){Pl(i,"")}function $ne(i,o,f){i.nodeValue=f}function qne(i,o){i.appendChild(o)}function Wne(i,o){var f;i.nodeType===ti?(f=i.parentNode,f.insertBefore(o,i)):(f=i,f.appendChild(o));var m=i._reactRootContainer;m==null&&f.onclick===null&&ek(f)}function Gne(i,o,f){i.insertBefore(o,f)}function Yne(i,o,f){i.nodeType===ti?i.parentNode.insertBefore(o,f):i.insertBefore(o,f)}function Kne(i,o){i.removeChild(o)}function Zne(i,o){i.nodeType===ti?i.parentNode.removeChild(o):i.removeChild(o)}function bE(i,o){var f=o,m=0;do{var y=f.nextSibling;if(i.removeChild(f),y&&y.nodeType===ti){var C=y.data;if(C===rk)if(m===0){i.removeChild(y),Zi(o);return}else m--;else(C===nk||C===By||C===Hy)&&m++}f=y}while(f);Zi(o)}function Qne(i,o){i.nodeType===ti?bE(i.parentNode,o):i.nodeType===xa&&bE(i,o),Zi(i)}function Xne(i){i=i;var o=i.style;typeof o.setProperty=="function"?o.setProperty("display","none","important"):o.display="none"}function Jne(i){i.nodeValue=""}function ere(i,o){i=i;var f=o[Rne],m=f!=null&&f.hasOwnProperty("display")?f.display:null;i.style.display=Mp("display",m)}function tre(i,o){i.nodeValue=o}function nre(i){i.nodeType===xa?i.textContent="":i.nodeType===$s&&i.documentElement&&i.removeChild(i.documentElement)}function rre(i,o,f){return i.nodeType!==xa||o.toLowerCase()!==i.nodeName.toLowerCase()?null:i}function ire(i,o){return o===""||i.nodeType!==Hs?null:i}function are(i){return i.nodeType!==ti?null:i}function LU(i){return i.data===By}function SE(i){return i.data===Hy}function ore(i){var o=i.nextSibling&&i.nextSibling.dataset,f,m,y;return o&&(f=o.dgst,m=o.msg,y=o.stck),{message:m,digest:f,stack:y}}function sre(i,o){i._reactRetry=o}function ik(i){for(;i!=null;i=i.nextSibling){var o=i.nodeType;if(o===xa||o===Hs)break;if(o===ti){var f=i.data;if(f===nk||f===Hy||f===By)break;if(f===rk)return null}}return i}function $y(i){return ik(i.nextSibling)}function lre(i){return ik(i.firstChild)}function ure(i){return ik(i.firstChild)}function cre(i){return ik(i.nextSibling)}function dre(i,o,f,m,y,C,w){Wy(C,i),TE(i,f);var P;{var D=y;P=D.namespace}var F=(C.mode&vn)!==Mt;return Sne(i,o,f,P,m,F,w)}function fre(i,o,f,m){return Wy(f,i),f.mode&vn,Cne(i,o)}function hre(i,o){Wy(o,i)}function pre(i){for(var o=i.nextSibling,f=0;o;){if(o.nodeType===ti){var m=o.data;if(m===rk){if(f===0)return $y(o);f--}else(m===nk||m===Hy||m===By)&&f++}o=o.nextSibling}return null}function NU(i){for(var o=i.previousSibling,f=0;o;){if(o.nodeType===ti){var m=o.data;if(m===nk||m===Hy||m===By){if(f===0)return o;f--}else m===rk&&f++}o=o.previousSibling}return null}function mre(i){Zi(i)}function gre(i){Zi(i)}function vre(i){return i!=="head"&&i!=="body"}function yre(i,o,f,m){var y=!0;JC(o.nodeValue,f,m,y)}function bre(i,o,f,m,y,C){if(o[tk]!==!0){var w=!0;JC(m.nodeValue,y,C,w)}}function Sre(i,o){o.nodeType===xa?cE(i,o):o.nodeType===ti||dE(i,o)}function Cre(i,o){{var f=i.parentNode;f!==null&&(o.nodeType===xa?cE(f,o):o.nodeType===ti||dE(f,o))}}function kre(i,o,f,m,y){(y||o[tk]!==!0)&&(m.nodeType===xa?cE(f,m):m.nodeType===ti||dE(f,m))}function Tre(i,o,f){fE(i,o)}function xre(i,o){hE(i,o)}function wre(i,o,f){{var m=i.parentNode;m!==null&&fE(m,o)}}function _re(i,o){{var f=i.parentNode;f!==null&&hE(f,o)}}function Ere(i,o,f,m,y,C){(C||o[tk]!==!0)&&fE(f,m)}function Rre(i,o,f,m,y){(y||o[tk]!==!0)&&hE(f,m)}function Pre(i){c("An error occurred during hydration. The server HTML was replaced with client content in <%s>.",i.nodeName.toLowerCase())}function Dre(i){Iy(i)}var zm=Math.random().toString(36).slice(2),Bm="__reactFiber$"+zm,CE="__reactProps$"+zm,qy="__reactContainer$"+zm,kE="__reactEvents$"+zm,Are="__reactListeners$"+zm,Ore="__reactHandles$"+zm;function Mre(i){delete i[Bm],delete i[CE],delete i[kE],delete i[Are],delete i[Ore]}function Wy(i,o){o[Bm]=i}function ak(i,o){o[qy]=i}function IU(i){i[qy]=null}function Gy(i){return!!i[qy]}function vh(i){var o=i[Bm];if(o)return o;for(var f=i.parentNode;f;){if(o=f[qy]||f[Bm],o){var m=o.alternate;if(o.child!==null||m!==null&&m.child!==null)for(var y=NU(i);y!==null;){var C=y[Bm];if(C)return C;y=NU(y)}return o}i=f,f=i.parentNode}return null}function Dd(i){var o=i[Bm]||i[qy];return o&&(o.tag===E||o.tag===R||o.tag===N||o.tag===k)?o:null}function Hm(i){if(i.tag===E||i.tag===R)return i.stateNode;throw new Error("getNodeFromInstance: Invalid argument.")}function ok(i){return i[CE]||null}function TE(i,o){i[CE]=o}function Lre(i){var o=i[kE];return o===void 0&&(o=i[kE]=new Set),o}var UU={},FU=r.ReactDebugCurrentFrame;function sk(i){if(i){var o=i._owner,f=yf(i.type,i._source,o?o.type:null);FU.setExtraStackFrame(f)}else FU.setExtraStackFrame(null)}function Qs(i,o,f,m,y){{var C=Function.call.bind(vr);for(var w in i)if(C(i,w)){var P=void 0;try{if(typeof i[w]!="function"){var D=Error((m||"React class")+": "+f+" type `"+w+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof i[w]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw D.name="Invariant Violation",D}P=i[w](o,w,m,f,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(F){P=F}P&&!(P instanceof Error)&&(sk(y),c("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",m||"React class",f,w,typeof P),sk(null)),P instanceof Error&&!(P.message in UU)&&(UU[P.message]=!0,sk(y),c("Failed %s type: %s",f,P.message),sk(null))}}}var xE=[],lk;lk=[];var ec=-1;function Ad(i){return{current:i}}function La(i,o){if(ec<0){c("Unexpected pop.");return}o!==lk[ec]&&c("Unexpected Fiber popped."),i.current=xE[ec],xE[ec]=null,lk[ec]=null,ec--}function Na(i,o,f){ec++,xE[ec]=i.current,lk[ec]=f,i.current=o}var wE;wE={};var $o={};Object.freeze($o);var tc=Ad($o),Ql=Ad(!1),_E=$o;function $m(i,o,f){return f&&Xl(o)?_E:tc.current}function jU(i,o,f){{var m=i.stateNode;m.__reactInternalMemoizedUnmaskedChildContext=o,m.__reactInternalMemoizedMaskedChildContext=f}}function qm(i,o){{var f=i.type,m=f.contextTypes;if(!m)return $o;var y=i.stateNode;if(y&&y.__reactInternalMemoizedUnmaskedChildContext===o)return y.__reactInternalMemoizedMaskedChildContext;var C={};for(var w in m)C[w]=o[w];{var P=Zt(i)||"Unknown";Qs(m,C,"context",P)}return y&&jU(i,o,C),C}}function uk(){return Ql.current}function Xl(i){{var o=i.childContextTypes;return o!=null}}function ck(i){La(Ql,i),La(tc,i)}function EE(i){La(Ql,i),La(tc,i)}function VU(i,o,f){{if(tc.current!==$o)throw new Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.");Na(tc,o,i),Na(Ql,f,i)}}function zU(i,o,f){{var m=i.stateNode,y=o.childContextTypes;if(typeof m.getChildContext!="function"){{var C=Zt(i)||"Unknown";wE[C]||(wE[C]=!0,c("%s.childContextTypes is specified but there is no getChildContext() method on the instance. You can either define getChildContext() on %s or remove childContextTypes from it.",C,C))}return f}var w=m.getChildContext();for(var P in w)if(!(P in y))throw new Error((Zt(i)||"Unknown")+'.getChildContext(): key "'+P+'" is not defined in childContextTypes.');{var D=Zt(i)||"Unknown";Qs(y,w,"child context",D)}return rn({},f,w)}}function dk(i){{var o=i.stateNode,f=o&&o.__reactInternalMemoizedMergedChildContext||$o;return _E=tc.current,Na(tc,f,i),Na(Ql,Ql.current,i),!0}}function BU(i,o,f){{var m=i.stateNode;if(!m)throw new Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.");if(f){var y=zU(i,o,_E);m.__reactInternalMemoizedMergedChildContext=y,La(Ql,i),La(tc,i),Na(tc,y,i),Na(Ql,f,i)}else La(Ql,i),Na(Ql,f,i)}}function Nre(i){{if(!oC(i)||i.tag!==v)throw new Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var o=i;do{switch(o.tag){case k:return o.stateNode.context;case v:{var f=o.type;if(Xl(f))return o.stateNode.__reactInternalMemoizedMergedChildContext;break}}o=o.return}while(o!==null);throw new Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.")}}var Od=0,fk=1,nc=null,RE=!1,PE=!1;function HU(i){nc===null?nc=[i]:nc.push(i)}function Ire(i){RE=!0,HU(i)}function $U(){RE&&Md()}function Md(){if(!PE&&nc!==null){PE=!0;var i=0,o=$a();try{var f=!0,m=nc;for(fi(Oa);i<m.length;i++){var y=m[i];do y=y(f);while(y!==null)}nc=null,RE=!1}catch(C){throw nc!==null&&(nc=nc.slice(i+1)),Qv(Gs,Md),C}finally{fi(o),PE=!1}}return null}var Wm=[],Gm=0,hk=null,pk=0,ps=[],ms=0,yh=null,rc=1,ic="";function Ure(i){return Sh(),(i.flags&Ff)!==Ot}function Fre(i){return Sh(),pk}function jre(){var i=ic,o=rc,f=o&~Vre(o);return f.toString(32)+i}function bh(i,o){Sh(),Wm[Gm++]=pk,Wm[Gm++]=hk,hk=i,pk=o}function qU(i,o,f){Sh(),ps[ms++]=rc,ps[ms++]=ic,ps[ms++]=yh,yh=i;var m=rc,y=ic,C=mk(m)-1,w=m&~(1<<C),P=f+1,D=mk(o)+C;if(D>30){var F=C-C%5,B=(1<<F)-1,ae=(w&B).toString(32),re=w>>F,ge=C-F,be=mk(o)+ge,we=P<<ge,st=we|re,Vt=ae+y;rc=1<<be|st,ic=Vt}else{var Pt=P<<C,Ln=Pt|w,wn=y;rc=1<<D|Ln,ic=wn}}function DE(i){Sh();var o=i.return;if(o!==null){var f=1,m=0;bh(i,f),qU(i,f,m)}}function mk(i){return 32-di(i)}function Vre(i){return 1<<mk(i)-1}function AE(i){for(;i===hk;)hk=Wm[--Gm],Wm[Gm]=null,pk=Wm[--Gm],Wm[Gm]=null;for(;i===yh;)yh=ps[--ms],ps[ms]=null,ic=ps[--ms],ps[ms]=null,rc=ps[--ms],ps[ms]=null}function zre(){return Sh(),yh!==null?{id:rc,overflow:ic}:null}function Bre(i,o){Sh(),ps[ms++]=rc,ps[ms++]=ic,ps[ms++]=yh,rc=o.id,ic=o.overflow,yh=i}function Sh(){la()||c("Expected to be hydrating. This is a bug in React. Please file an issue.")}var sa=null,gs=null,Xs=!1,Ch=!1,Ld=null;function Hre(){Xs&&c("We should not be hydrating here. This is a bug in React. Please file a bug.")}function WU(){Ch=!0}function $re(){return Ch}function qre(i){var o=i.stateNode.containerInfo;return gs=ure(o),sa=i,Xs=!0,Ld=null,Ch=!1,!0}function Wre(i,o,f){return gs=cre(o),sa=i,Xs=!0,Ld=null,Ch=!1,f!==null&&Bre(i,f),!0}function GU(i,o){switch(i.tag){case k:{Sre(i.stateNode.containerInfo,o);break}case E:{var f=(i.mode&vn)!==Mt;kre(i.type,i.memoizedProps,i.stateNode,o,f);break}case N:{var m=i.memoizedState;m.dehydrated!==null&&Cre(m.dehydrated,o);break}}}function YU(i,o){GU(i,o);var f=Zoe();f.stateNode=o,f.return=i;var m=i.deletions;m===null?(i.deletions=[f],i.flags|=wa):m.push(f)}function OE(i,o){{if(Ch)return;switch(i.tag){case k:{var f=i.stateNode.containerInfo;switch(o.tag){case E:var m=o.type;o.pendingProps,Tre(f,m);break;case R:var y=o.pendingProps;xre(f,y);break}break}case E:{var C=i.type,w=i.memoizedProps,P=i.stateNode;switch(o.tag){case E:{var D=o.type,F=o.pendingProps,B=(i.mode&vn)!==Mt;Ere(C,w,P,D,F,B);break}case R:{var ae=o.pendingProps,re=(i.mode&vn)!==Mt;Rre(C,w,P,ae,re);break}}break}case N:{var ge=i.memoizedState,be=ge.dehydrated;if(be!==null)switch(o.tag){case E:var we=o.type;o.pendingProps,wre(be,we);break;case R:var st=o.pendingProps;_re(be,st);break}break}default:return}}}function KU(i,o){o.flags=o.flags&~Vr|jr,OE(i,o)}function ZU(i,o){switch(i.tag){case E:{var f=i.type;i.pendingProps;var m=rre(o,f);return m!==null?(i.stateNode=m,sa=i,gs=lre(m),!0):!1}case R:{var y=i.pendingProps,C=ire(o,y);return C!==null?(i.stateNode=C,sa=i,gs=null,!0):!1}case N:{var w=are(o);if(w!==null){var P={dehydrated:w,treeContext:zre(),retryLane:Pa};i.memoizedState=P;var D=Qoe(w);return D.return=i,i.child=D,sa=i,gs=null,!0}return!1}default:return!1}}function ME(i){return(i.mode&vn)!==Mt&&(i.flags&pn)===Ot}function LE(i){throw new Error("Hydration failed because the initial UI does not match what was rendered on the server.")}function NE(i){if(Xs){var o=gs;if(!o){ME(i)&&(OE(sa,i),LE()),KU(sa,i),Xs=!1,sa=i;return}var f=o;if(!ZU(i,o)){ME(i)&&(OE(sa,i),LE()),o=$y(f);var m=sa;if(!o||!ZU(i,o)){KU(sa,i),Xs=!1,sa=i;return}YU(m,f)}}}function Gre(i,o,f){var m=i.stateNode,y=!Ch,C=dre(m,i.type,i.memoizedProps,o,f,i,y);return i.updateQueue=C,C!==null}function Yre(i){var o=i.stateNode,f=i.memoizedProps,m=fre(o,f,i);if(m){var y=sa;if(y!==null)switch(y.tag){case k:{var C=y.stateNode.containerInfo,w=(y.mode&vn)!==Mt;yre(C,o,f,w);break}case E:{var P=y.type,D=y.memoizedProps,F=y.stateNode,B=(y.mode&vn)!==Mt;bre(P,D,F,o,f,B);break}}}return m}function Kre(i){var o=i.memoizedState,f=o!==null?o.dehydrated:null;if(!f)throw new Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");hre(f,i)}function Zre(i){var o=i.memoizedState,f=o!==null?o.dehydrated:null;if(!f)throw new Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");return pre(f)}function QU(i){for(var o=i.return;o!==null&&o.tag!==E&&o.tag!==k&&o.tag!==N;)o=o.return;sa=o}function gk(i){if(i!==sa)return!1;if(!Xs)return QU(i),Xs=!0,!1;if(i.tag!==k&&(i.tag!==E||vre(i.type)&&!gE(i.type,i.memoizedProps))){var o=gs;if(o)if(ME(i))XU(i),LE();else for(;o;)YU(i,o),o=$y(o)}return QU(i),i.tag===N?gs=Zre(i):gs=sa?$y(i.stateNode):null,!0}function Qre(){return Xs&&gs!==null}function XU(i){for(var o=gs;o;)GU(i,o),o=$y(o)}function Ym(){sa=null,gs=null,Xs=!1,Ch=!1}function JU(){Ld!==null&&(W9(Ld),Ld=null)}function la(){return Xs}function IE(i){Ld===null?Ld=[i]:Ld.push(i)}var Xre=r.ReactCurrentBatchConfig,Jre=null;function eie(){return Xre.transition}var Js={recordUnsafeLifecycleWarnings:function(i,o){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(i,o){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}};{var tie=function(i){for(var o=null,f=i;f!==null;)f.mode&an&&(o=f),f=f.return;return o},kh=function(i){var o=[];return i.forEach(function(f){o.push(f)}),o.sort().join(", ")},Yy=[],Ky=[],Zy=[],Qy=[],Xy=[],Jy=[],Th=new Set;Js.recordUnsafeLifecycleWarnings=function(i,o){Th.has(i.type)||(typeof o.componentWillMount=="function"&&o.componentWillMount.__suppressDeprecationWarning!==!0&&Yy.push(i),i.mode&an&&typeof o.UNSAFE_componentWillMount=="function"&&Ky.push(i),typeof o.componentWillReceiveProps=="function"&&o.componentWillReceiveProps.__suppressDeprecationWarning!==!0&&Zy.push(i),i.mode&an&&typeof o.UNSAFE_componentWillReceiveProps=="function"&&Qy.push(i),typeof o.componentWillUpdate=="function"&&o.componentWillUpdate.__suppressDeprecationWarning!==!0&&Xy.push(i),i.mode&an&&typeof o.UNSAFE_componentWillUpdate=="function"&&Jy.push(i))},Js.flushPendingUnsafeLifecycleWarnings=function(){var i=new Set;Yy.length>0&&(Yy.forEach(function(re){i.add(Zt(re)||"Component"),Th.add(re.type)}),Yy=[]);var o=new Set;Ky.length>0&&(Ky.forEach(function(re){o.add(Zt(re)||"Component"),Th.add(re.type)}),Ky=[]);var f=new Set;Zy.length>0&&(Zy.forEach(function(re){f.add(Zt(re)||"Component"),Th.add(re.type)}),Zy=[]);var m=new Set;Qy.length>0&&(Qy.forEach(function(re){m.add(Zt(re)||"Component"),Th.add(re.type)}),Qy=[]);var y=new Set;Xy.length>0&&(Xy.forEach(function(re){y.add(Zt(re)||"Component"),Th.add(re.type)}),Xy=[]);var C=new Set;if(Jy.length>0&&(Jy.forEach(function(re){C.add(Zt(re)||"Component"),Th.add(re.type)}),Jy=[]),o.size>0){var w=kh(o);c(`Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.
128
+ `).replace(cne,"")}function JC(i,o,f,m){var y=XC(o),C=XC(i);if(C!==y&&(m&&(xo||(xo=!0,c('Text content did not match. Server: "%s" Client: "%s"',C,y))),f&&ve))throw new Error("Text content does not match server-rendered HTML.")}function RU(i){return i.nodeType===$s?i:i.ownerDocument}function dne(){}function ek(i){i.onclick=dne}function fne(i,o,f,m,y){for(var C in m)if(m.hasOwnProperty(C)){var w=m[C];if(C===gh)w&&Object.freeze(w),qS(o,w);else if(C===Fy){var P=w?w[KC]:void 0;P!=null&&MS(o,P)}else if(C===mh)if(typeof w=="string"){var D=i!=="textarea"||w!=="";D&&Pl(o,w)}else typeof w=="number"&&Pl(o,""+w);else C===YC||C===Pd||C===xU||(it.hasOwnProperty(C)?w!=null&&(typeof w!="function"&&QC(C,w),C==="onScroll"&&Ir("scroll",o)):w!=null&&It(o,C,w,y))}}function hne(i,o,f,m){for(var y=0;y<o.length;y+=2){var C=o[y],w=o[y+1];C===gh?qS(i,w):C===Fy?MS(i,w):C===mh?Pl(i,w):It(i,C,w,m)}}function pne(i,o,f,m){var y,C=RU(f),w,P=m;if(P===Io&&(P=Iv(i)),P===Io){if(y=Dl(i,o),!y&&i!==i.toLowerCase()&&c("<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.",i),i==="script"){var D=C.createElement("div");D.innerHTML="<script><\/script>";var F=D.firstChild;w=D.removeChild(F)}else if(typeof o.is=="string")w=C.createElement(i,{is:o.is});else if(w=C.createElement(i),i==="select"){var B=w;o.multiple?B.multiple=!0:o.size&&(B.size=o.size)}}else w=C.createElementNS(P,i);return P===Io&&!y&&Object.prototype.toString.call(w)==="[object HTMLUnknownElement]"&&!vr.call(uE,i)&&(uE[i]=!0,c("The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.",i)),w}function mne(i,o){return RU(o).createTextNode(i)}function gne(i,o,f,m){var y=Dl(o,f);ZC(o,f);var C;switch(o){case"dialog":Ir("cancel",i),Ir("close",i),C=f;break;case"iframe":case"object":case"embed":Ir("load",i),C=f;break;case"video":case"audio":for(var w=0;w<Ny.length;w++)Ir(Ny[w],i);C=f;break;case"source":Ir("error",i),C=f;break;case"img":case"image":case"link":Ir("error",i),Ir("load",i),C=f;break;case"details":Ir("toggle",i),C=f;break;case"input":Zc(i,f),C=go(i,f),Ir("invalid",i);break;case"option":Kn(i,f),C=f;break;case"select":Tf(i,f),C=Ru(i,f),Ir("invalid",i);break;case"textarea":DS(i,f),C=Dp(i,f),Ir("invalid",i);break;default:C=f}switch(Lp(o,C),fne(o,i,m,C,y),o){case"input":mo(i),pe(i,f,!1);break;case"textarea":mo(i),OS(i);break;case"option":lr(i,f);break;case"select":Mv(i,f);break;default:typeof C.onClick=="function"&&ek(i);break}}function vne(i,o,f,m,y){ZC(o,m);var C=null,w,P;switch(o){case"input":w=go(i,f),P=go(i,m),C=[];break;case"select":w=Ru(i,f),P=Ru(i,m),C=[];break;case"textarea":w=Dp(i,f),P=Dp(i,m),C=[];break;default:w=f,P=m,typeof w.onClick!="function"&&typeof P.onClick=="function"&&ek(i);break}Lp(o,P);var D,F,B=null;for(D in w)if(!(P.hasOwnProperty(D)||!w.hasOwnProperty(D)||w[D]==null))if(D===gh){var ae=w[D];for(F in ae)ae.hasOwnProperty(F)&&(B||(B={}),B[F]="")}else D===Fy||D===mh||D===YC||D===Pd||D===xU||(it.hasOwnProperty(D)?C||(C=[]):(C=C||[]).push(D,null));for(D in P){var re=P[D],ge=w!=null?w[D]:void 0;if(!(!P.hasOwnProperty(D)||re===ge||re==null&&ge==null))if(D===gh)if(re&&Object.freeze(re),ge){for(F in ge)ge.hasOwnProperty(F)&&(!re||!re.hasOwnProperty(F))&&(B||(B={}),B[F]="");for(F in re)re.hasOwnProperty(F)&&ge[F]!==re[F]&&(B||(B={}),B[F]=re[F])}else B||(C||(C=[]),C.push(D,B)),B=re;else if(D===Fy){var be=re?re[KC]:void 0,we=ge?ge[KC]:void 0;be!=null&&we!==be&&(C=C||[]).push(D,be)}else D===mh?(typeof re=="string"||typeof re=="number")&&(C=C||[]).push(D,""+re):D===YC||D===Pd||(it.hasOwnProperty(D)?(re!=null&&(typeof re!="function"&&QC(D,re),D==="onScroll"&&Ir("scroll",i)),!C&&ge!==re&&(C=[])):(C=C||[]).push(D,re))}return B&&(Uo(B,P[gh]),(C=C||[]).push(gh,B)),C}function yne(i,o,f,m,y){f==="input"&&y.type==="radio"&&y.name!=null&&O(i,y);var C=Dl(f,m),w=Dl(f,y);switch(hne(i,o,C,w),f){case"input":Y(i,y);break;case"textarea":AS(i,y);break;case"select":Pp(i,y);break}}function bne(i){{var o=i.toLowerCase();return ed.hasOwnProperty(o)&&ed[o]||null}}function Sne(i,o,f,m,y,C,w){var P,D;switch(P=Dl(o,f),ZC(o,f),o){case"dialog":Ir("cancel",i),Ir("close",i);break;case"iframe":case"object":case"embed":Ir("load",i);break;case"video":case"audio":for(var F=0;F<Ny.length;F++)Ir(Ny[F],i);break;case"source":Ir("error",i);break;case"img":case"image":case"link":Ir("error",i),Ir("load",i);break;case"details":Ir("toggle",i);break;case"input":Zc(i,f),Ir("invalid",i);break;case"option":Kn(i,f);break;case"select":Tf(i,f),Ir("invalid",i);break;case"textarea":DS(i,f),Ir("invalid",i);break}Lp(o,f);{D=new Set;for(var B=i.attributes,ae=0;ae<B.length;ae++){var re=B[ae].name.toLowerCase();switch(re){case"value":break;case"checked":break;case"selected":break;default:D.add(B[ae].name)}}}var ge=null;for(var be in f)if(f.hasOwnProperty(be)){var we=f[be];if(be===mh)typeof we=="string"?i.textContent!==we&&(f[Pd]!==!0&&JC(i.textContent,we,C,w),ge=[mh,we]):typeof we=="number"&&i.textContent!==""+we&&(f[Pd]!==!0&&JC(i.textContent,we,C,w),ge=[mh,""+we]);else if(it.hasOwnProperty(be))we!=null&&(typeof we!="function"&&QC(be,we),be==="onScroll"&&Ir("scroll",i));else if(w&&typeof P=="boolean"){var st=void 0,Vt=Jn(be);if(f[Pd]!==!0){if(!(be===YC||be===Pd||be==="value"||be==="checked"||be==="selected")){if(be===Fy){var Pt=i.innerHTML,Ln=we?we[KC]:void 0;if(Ln!=null){var wn=EU(i,Ln);wn!==Pt&&jy(be,Pt,wn)}}else if(be===gh){if(D.delete(be),_U){var ce=I_(we);st=i.getAttribute("style"),ce!==st&&jy(be,st,ce)}}else if(P&&!Ce)D.delete(be.toLowerCase()),st=Me(i,be,we),we!==st&&jy(be,st,we);else if(!un(be,Vt,P)&&!Wn(be,we,Vt,P)){var _e=!1;if(Vt!==null)D.delete(Vt.attributeName),st=et(i,be,we,Vt);else{var de=m;if(de===Io&&(de=Iv(o)),de===Io)D.delete(be.toLowerCase());else{var qe=bne(be);qe!==null&&qe!==be&&(_e=!0,D.delete(qe)),D.delete(be)}st=Me(i,be,we)}var yt=Ce;!yt&&we!==st&&!_e&&jy(be,st,we)}}}}}switch(w&&D.size>0&&f[Pd]!==!0&&wU(D),o){case"input":mo(i),pe(i,f,!0);break;case"textarea":mo(i),OS(i);break;case"select":case"option":break;default:typeof f.onClick=="function"&&ek(i);break}return ge}function Cne(i,o,f){var m=i.nodeValue!==o;return m}function cE(i,o){{if(xo)return;xo=!0,c("Did not expect server HTML to contain a <%s> in <%s>.",o.nodeName.toLowerCase(),i.nodeName.toLowerCase())}}function dE(i,o){{if(xo)return;xo=!0,c('Did not expect server HTML to contain the text node "%s" in <%s>.',o.nodeValue,i.nodeName.toLowerCase())}}function fE(i,o,f){{if(xo)return;xo=!0,c("Expected server HTML to contain a matching <%s> in <%s>.",o,i.nodeName.toLowerCase())}}function hE(i,o){{if(o===""||xo)return;xo=!0,c('Expected server HTML to contain a matching text node for "%s" in <%s>.',o,i.nodeName.toLowerCase())}}function kne(i,o,f){switch(o){case"input":Te(i,f);return;case"textarea":P_(i,f);return;case"select":Lv(i,f);return}}var Vy=function(){},zy=function(){};{var Tne=["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","template","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],PU=["applet","caption","html","table","td","th","marquee","object","template","foreignObject","desc","title"],xne=PU.concat(["button"]),wne=["dd","dt","li","option","optgroup","p","rp","rt"],DU={current:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null};zy=function(i,o){var f=rn({},i||DU),m={tag:o};return PU.indexOf(o)!==-1&&(f.aTagInScope=null,f.buttonTagInScope=null,f.nobrTagInScope=null),xne.indexOf(o)!==-1&&(f.pTagInButtonScope=null),Tne.indexOf(o)!==-1&&o!=="address"&&o!=="div"&&o!=="p"&&(f.listItemTagAutoclosing=null,f.dlItemTagAutoclosing=null),f.current=m,o==="form"&&(f.formTag=m),o==="a"&&(f.aTagInScope=m),o==="button"&&(f.buttonTagInScope=m),o==="nobr"&&(f.nobrTagInScope=m),o==="p"&&(f.pTagInButtonScope=m),o==="li"&&(f.listItemTagAutoclosing=m),(o==="dd"||o==="dt")&&(f.dlItemTagAutoclosing=m),f};var _ne=function(i,o){switch(o){case"select":return i==="option"||i==="optgroup"||i==="#text";case"optgroup":return i==="option"||i==="#text";case"option":return i==="#text";case"tr":return i==="th"||i==="td"||i==="style"||i==="script"||i==="template";case"tbody":case"thead":case"tfoot":return i==="tr"||i==="style"||i==="script"||i==="template";case"colgroup":return i==="col"||i==="template";case"table":return i==="caption"||i==="colgroup"||i==="tbody"||i==="tfoot"||i==="thead"||i==="style"||i==="script"||i==="template";case"head":return i==="base"||i==="basefont"||i==="bgsound"||i==="link"||i==="meta"||i==="title"||i==="noscript"||i==="noframes"||i==="style"||i==="script"||i==="template";case"html":return i==="head"||i==="body"||i==="frameset";case"frameset":return i==="frame";case"#document":return i==="html"}switch(i){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return o!=="h1"&&o!=="h2"&&o!=="h3"&&o!=="h4"&&o!=="h5"&&o!=="h6";case"rp":case"rt":return wne.indexOf(o)===-1;case"body":case"caption":case"col":case"colgroup":case"frameset":case"frame":case"head":case"html":case"tbody":case"td":case"tfoot":case"th":case"thead":case"tr":return o==null}return!0},Ene=function(i,o){switch(i){case"address":case"article":case"aside":case"blockquote":case"center":case"details":case"dialog":case"dir":case"div":case"dl":case"fieldset":case"figcaption":case"figure":case"footer":case"header":case"hgroup":case"main":case"menu":case"nav":case"ol":case"p":case"section":case"summary":case"ul":case"pre":case"listing":case"table":case"hr":case"xmp":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return o.pTagInButtonScope;case"form":return o.formTag||o.pTagInButtonScope;case"li":return o.listItemTagAutoclosing;case"dd":case"dt":return o.dlItemTagAutoclosing;case"button":return o.buttonTagInScope;case"a":return o.aTagInScope;case"nobr":return o.nobrTagInScope}return null},AU={};Vy=function(i,o,f){f=f||DU;var m=f.current,y=m&&m.tag;o!=null&&(i!=null&&c("validateDOMNesting: when childText is passed, childTag should be null"),i="#text");var C=_ne(i,y)?null:m,w=C?null:Ene(i,f),P=C||w;if(P){var D=P.tag,F=!!C+"|"+i+"|"+D;if(!AU[F]){AU[F]=!0;var B=i,ae="";if(i==="#text"?/\S/.test(o)?B="Text nodes":(B="Whitespace text nodes",ae=" Make sure you don't have any extra whitespace between tags on each line of your source code."):B="<"+i+">",C){var re="";D==="table"&&i==="tr"&&(re+=" Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser."),c("validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s",B,D,ae,re)}else c("validateDOMNesting(...): %s cannot appear as a descendant of <%s>.",B,D)}}}}var tk="suppressHydrationWarning",nk="$",rk="/$",By="$?",Hy="$!",Rne="style",pE=null,mE=null;function Pne(i){var o,f,m=i.nodeType;switch(m){case $s:case xf:{o=m===$s?"#document":"#fragment";var y=i.documentElement;f=y?y.namespaceURI:Ap(null,"");break}default:{var C=m===ti?i.parentNode:i,w=C.namespaceURI||null;o=C.tagName,f=Ap(w,o);break}}{var P=o.toLowerCase(),D=zy(null,P);return{namespace:f,ancestorInfo:D}}}function Dne(i,o,f){{var m=i,y=Ap(m.namespace,o),C=zy(m.ancestorInfo,o);return{namespace:y,ancestorInfo:C}}}function Jse(i){return i}function Ane(i){pE=Oi(),mE=qte();var o=null;return Kr(!1),o}function One(i){Wte(mE),Kr(pE),pE=null,mE=null}function Mne(i,o,f,m,y){var C;{var w=m;if(Vy(i,null,w.ancestorInfo),typeof o.children=="string"||typeof o.children=="number"){var P=""+o.children,D=zy(w.ancestorInfo,i);Vy(null,P,D)}C=w.namespace}var F=pne(i,o,f,C);return Wy(y,F),TE(F,o),F}function Lne(i,o){i.appendChild(o)}function Nne(i,o,f,m,y){switch(gne(i,o,f,m),o){case"button":case"input":case"select":case"textarea":return!!f.autoFocus;case"img":return!0;default:return!1}}function Ine(i,o,f,m,y,C){{var w=C;if(typeof m.children!=typeof f.children&&(typeof m.children=="string"||typeof m.children=="number")){var P=""+m.children,D=zy(w.ancestorInfo,o);Vy(null,P,D)}}return vne(i,o,f,m)}function gE(i,o){return i==="textarea"||i==="noscript"||typeof o.children=="string"||typeof o.children=="number"||typeof o.dangerouslySetInnerHTML=="object"&&o.dangerouslySetInnerHTML!==null&&o.dangerouslySetInnerHTML.__html!=null}function Une(i,o,f,m){{var y=f;Vy(null,i,y.ancestorInfo)}var C=mne(i,o);return Wy(m,C),C}function Fne(){var i=window.event;return i===void 0?Di:kd(i.type)}var vE=typeof setTimeout=="function"?setTimeout:void 0,jne=typeof clearTimeout=="function"?clearTimeout:void 0,yE=-1,OU=typeof Promise=="function"?Promise:void 0,Vne=typeof queueMicrotask=="function"?queueMicrotask:typeof OU<"u"?function(i){return OU.resolve(null).then(i).catch(zne)}:vE;function zne(i){setTimeout(function(){throw i})}function Bne(i,o,f,m){switch(o){case"button":case"input":case"select":case"textarea":f.autoFocus&&i.focus();return;case"img":{f.src&&(i.src=f.src);return}}}function Hne(i,o,f,m,y,C){yne(i,o,f,m,y),TE(i,y)}function MU(i){Pl(i,"")}function $ne(i,o,f){i.nodeValue=f}function qne(i,o){i.appendChild(o)}function Wne(i,o){var f;i.nodeType===ti?(f=i.parentNode,f.insertBefore(o,i)):(f=i,f.appendChild(o));var m=i._reactRootContainer;m==null&&f.onclick===null&&ek(f)}function Gne(i,o,f){i.insertBefore(o,f)}function Yne(i,o,f){i.nodeType===ti?i.parentNode.insertBefore(o,f):i.insertBefore(o,f)}function Kne(i,o){i.removeChild(o)}function Zne(i,o){i.nodeType===ti?i.parentNode.removeChild(o):i.removeChild(o)}function bE(i,o){var f=o,m=0;do{var y=f.nextSibling;if(i.removeChild(f),y&&y.nodeType===ti){var C=y.data;if(C===rk)if(m===0){i.removeChild(y),Zi(o);return}else m--;else(C===nk||C===By||C===Hy)&&m++}f=y}while(f);Zi(o)}function Qne(i,o){i.nodeType===ti?bE(i.parentNode,o):i.nodeType===xa&&bE(i,o),Zi(i)}function Xne(i){i=i;var o=i.style;typeof o.setProperty=="function"?o.setProperty("display","none","important"):o.display="none"}function Jne(i){i.nodeValue=""}function ere(i,o){i=i;var f=o[Rne],m=f!=null&&f.hasOwnProperty("display")?f.display:null;i.style.display=Mp("display",m)}function tre(i,o){i.nodeValue=o}function nre(i){i.nodeType===xa?i.textContent="":i.nodeType===$s&&i.documentElement&&i.removeChild(i.documentElement)}function rre(i,o,f){return i.nodeType!==xa||o.toLowerCase()!==i.nodeName.toLowerCase()?null:i}function ire(i,o){return o===""||i.nodeType!==Hs?null:i}function are(i){return i.nodeType!==ti?null:i}function LU(i){return i.data===By}function SE(i){return i.data===Hy}function ore(i){var o=i.nextSibling&&i.nextSibling.dataset,f,m,y;return o&&(f=o.dgst,m=o.msg,y=o.stck),{message:m,digest:f,stack:y}}function sre(i,o){i._reactRetry=o}function ik(i){for(;i!=null;i=i.nextSibling){var o=i.nodeType;if(o===xa||o===Hs)break;if(o===ti){var f=i.data;if(f===nk||f===Hy||f===By)break;if(f===rk)return null}}return i}function $y(i){return ik(i.nextSibling)}function lre(i){return ik(i.firstChild)}function ure(i){return ik(i.firstChild)}function cre(i){return ik(i.nextSibling)}function dre(i,o,f,m,y,C,w){Wy(C,i),TE(i,f);var P;{var D=y;P=D.namespace}var F=(C.mode&vn)!==Mt;return Sne(i,o,f,P,m,F,w)}function fre(i,o,f,m){return Wy(f,i),f.mode&vn,Cne(i,o)}function hre(i,o){Wy(o,i)}function pre(i){for(var o=i.nextSibling,f=0;o;){if(o.nodeType===ti){var m=o.data;if(m===rk){if(f===0)return $y(o);f--}else(m===nk||m===Hy||m===By)&&f++}o=o.nextSibling}return null}function NU(i){for(var o=i.previousSibling,f=0;o;){if(o.nodeType===ti){var m=o.data;if(m===nk||m===Hy||m===By){if(f===0)return o;f--}else m===rk&&f++}o=o.previousSibling}return null}function mre(i){Zi(i)}function gre(i){Zi(i)}function vre(i){return i!=="head"&&i!=="body"}function yre(i,o,f,m){var y=!0;JC(o.nodeValue,f,m,y)}function bre(i,o,f,m,y,C){if(o[tk]!==!0){var w=!0;JC(m.nodeValue,y,C,w)}}function Sre(i,o){o.nodeType===xa?cE(i,o):o.nodeType===ti||dE(i,o)}function Cre(i,o){{var f=i.parentNode;f!==null&&(o.nodeType===xa?cE(f,o):o.nodeType===ti||dE(f,o))}}function kre(i,o,f,m,y){(y||o[tk]!==!0)&&(m.nodeType===xa?cE(f,m):m.nodeType===ti||dE(f,m))}function Tre(i,o,f){fE(i,o)}function xre(i,o){hE(i,o)}function wre(i,o,f){{var m=i.parentNode;m!==null&&fE(m,o)}}function _re(i,o){{var f=i.parentNode;f!==null&&hE(f,o)}}function Ere(i,o,f,m,y,C){(C||o[tk]!==!0)&&fE(f,m)}function Rre(i,o,f,m,y){(y||o[tk]!==!0)&&hE(f,m)}function Pre(i){c("An error occurred during hydration. The server HTML was replaced with client content in <%s>.",i.nodeName.toLowerCase())}function Dre(i){Iy(i)}var zm=Math.random().toString(36).slice(2),Bm="__reactFiber$"+zm,CE="__reactProps$"+zm,qy="__reactContainer$"+zm,kE="__reactEvents$"+zm,Are="__reactListeners$"+zm,Ore="__reactHandles$"+zm;function Mre(i){delete i[Bm],delete i[CE],delete i[kE],delete i[Are],delete i[Ore]}function Wy(i,o){o[Bm]=i}function ak(i,o){o[qy]=i}function IU(i){i[qy]=null}function Gy(i){return!!i[qy]}function vh(i){var o=i[Bm];if(o)return o;for(var f=i.parentNode;f;){if(o=f[qy]||f[Bm],o){var m=o.alternate;if(o.child!==null||m!==null&&m.child!==null)for(var y=NU(i);y!==null;){var C=y[Bm];if(C)return C;y=NU(y)}return o}i=f,f=i.parentNode}return null}function Dd(i){var o=i[Bm]||i[qy];return o&&(o.tag===E||o.tag===R||o.tag===N||o.tag===k)?o:null}function Hm(i){if(i.tag===E||i.tag===R)return i.stateNode;throw new Error("getNodeFromInstance: Invalid argument.")}function ok(i){return i[CE]||null}function TE(i,o){i[CE]=o}function Lre(i){var o=i[kE];return o===void 0&&(o=i[kE]=new Set),o}var UU={},FU=r.ReactDebugCurrentFrame;function sk(i){if(i){var o=i._owner,f=yf(i.type,i._source,o?o.type:null);FU.setExtraStackFrame(f)}else FU.setExtraStackFrame(null)}function Qs(i,o,f,m,y){{var C=Function.call.bind(vr);for(var w in i)if(C(i,w)){var P=void 0;try{if(typeof i[w]!="function"){var D=Error((m||"React class")+": "+f+" type `"+w+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof i[w]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw D.name="Invariant Violation",D}P=i[w](o,w,m,f,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(F){P=F}P&&!(P instanceof Error)&&(sk(y),c("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",m||"React class",f,w,typeof P),sk(null)),P instanceof Error&&!(P.message in UU)&&(UU[P.message]=!0,sk(y),c("Failed %s type: %s",f,P.message),sk(null))}}}var xE=[],lk;lk=[];var ec=-1;function Ad(i){return{current:i}}function La(i,o){if(ec<0){c("Unexpected pop.");return}o!==lk[ec]&&c("Unexpected Fiber popped."),i.current=xE[ec],xE[ec]=null,lk[ec]=null,ec--}function Na(i,o,f){ec++,xE[ec]=i.current,lk[ec]=f,i.current=o}var wE;wE={};var $o={};Object.freeze($o);var tc=Ad($o),Ql=Ad(!1),_E=$o;function $m(i,o,f){return f&&Xl(o)?_E:tc.current}function jU(i,o,f){{var m=i.stateNode;m.__reactInternalMemoizedUnmaskedChildContext=o,m.__reactInternalMemoizedMaskedChildContext=f}}function qm(i,o){{var f=i.type,m=f.contextTypes;if(!m)return $o;var y=i.stateNode;if(y&&y.__reactInternalMemoizedUnmaskedChildContext===o)return y.__reactInternalMemoizedMaskedChildContext;var C={};for(var w in m)C[w]=o[w];{var P=Zt(i)||"Unknown";Qs(m,C,"context",P)}return y&&jU(i,o,C),C}}function uk(){return Ql.current}function Xl(i){{var o=i.childContextTypes;return o!=null}}function ck(i){La(Ql,i),La(tc,i)}function EE(i){La(Ql,i),La(tc,i)}function VU(i,o,f){{if(tc.current!==$o)throw new Error("Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.");Na(tc,o,i),Na(Ql,f,i)}}function zU(i,o,f){{var m=i.stateNode,y=o.childContextTypes;if(typeof m.getChildContext!="function"){{var C=Zt(i)||"Unknown";wE[C]||(wE[C]=!0,c("%s.childContextTypes is specified but there is no getChildContext() method on the instance. You can either define getChildContext() on %s or remove childContextTypes from it.",C,C))}return f}var w=m.getChildContext();for(var P in w)if(!(P in y))throw new Error((Zt(i)||"Unknown")+'.getChildContext(): key "'+P+'" is not defined in childContextTypes.');{var D=Zt(i)||"Unknown";Qs(y,w,"child context",D)}return rn({},f,w)}}function dk(i){{var o=i.stateNode,f=o&&o.__reactInternalMemoizedMergedChildContext||$o;return _E=tc.current,Na(tc,f,i),Na(Ql,Ql.current,i),!0}}function BU(i,o,f){{var m=i.stateNode;if(!m)throw new Error("Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.");if(f){var y=zU(i,o,_E);m.__reactInternalMemoizedMergedChildContext=y,La(Ql,i),La(tc,i),Na(tc,y,i),Na(Ql,f,i)}else La(Ql,i),Na(Ql,f,i)}}function Nre(i){{if(!oC(i)||i.tag!==v)throw new Error("Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.");var o=i;do{switch(o.tag){case k:return o.stateNode.context;case v:{var f=o.type;if(Xl(f))return o.stateNode.__reactInternalMemoizedMergedChildContext;break}}o=o.return}while(o!==null);throw new Error("Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.")}}var Od=0,fk=1,nc=null,RE=!1,PE=!1;function HU(i){nc===null?nc=[i]:nc.push(i)}function Ire(i){RE=!0,HU(i)}function $U(){RE&&Md()}function Md(){if(!PE&&nc!==null){PE=!0;var i=0,o=$a();try{var f=!0,m=nc;for(fi(Oa);i<m.length;i++){var y=m[i];do y=y(f);while(y!==null)}nc=null,RE=!1}catch(C){throw nc!==null&&(nc=nc.slice(i+1)),Qv(Gs,Md),C}finally{fi(o),PE=!1}}return null}var Wm=[],Gm=0,hk=null,pk=0,ps=[],ms=0,yh=null,rc=1,ic="";function Ure(i){return Sh(),(i.flags&Ff)!==Ot}function Fre(i){return Sh(),pk}function jre(){var i=ic,o=rc,f=o&~Vre(o);return f.toString(32)+i}function bh(i,o){Sh(),Wm[Gm++]=pk,Wm[Gm++]=hk,hk=i,pk=o}function qU(i,o,f){Sh(),ps[ms++]=rc,ps[ms++]=ic,ps[ms++]=yh,yh=i;var m=rc,y=ic,C=mk(m)-1,w=m&~(1<<C),P=f+1,D=mk(o)+C;if(D>30){var F=C-C%5,B=(1<<F)-1,ae=(w&B).toString(32),re=w>>F,ge=C-F,be=mk(o)+ge,we=P<<ge,st=we|re,Vt=ae+y;rc=1<<be|st,ic=Vt}else{var Pt=P<<C,Ln=Pt|w,wn=y;rc=1<<D|Ln,ic=wn}}function DE(i){Sh();var o=i.return;if(o!==null){var f=1,m=0;bh(i,f),qU(i,f,m)}}function mk(i){return 32-di(i)}function Vre(i){return 1<<mk(i)-1}function AE(i){for(;i===hk;)hk=Wm[--Gm],Wm[Gm]=null,pk=Wm[--Gm],Wm[Gm]=null;for(;i===yh;)yh=ps[--ms],ps[ms]=null,ic=ps[--ms],ps[ms]=null,rc=ps[--ms],ps[ms]=null}function zre(){return Sh(),yh!==null?{id:rc,overflow:ic}:null}function Bre(i,o){Sh(),ps[ms++]=rc,ps[ms++]=ic,ps[ms++]=yh,rc=o.id,ic=o.overflow,yh=i}function Sh(){la()||c("Expected to be hydrating. This is a bug in React. Please file an issue.")}var sa=null,gs=null,Xs=!1,Ch=!1,Ld=null;function Hre(){Xs&&c("We should not be hydrating here. This is a bug in React. Please file a bug.")}function WU(){Ch=!0}function $re(){return Ch}function qre(i){var o=i.stateNode.containerInfo;return gs=ure(o),sa=i,Xs=!0,Ld=null,Ch=!1,!0}function Wre(i,o,f){return gs=cre(o),sa=i,Xs=!0,Ld=null,Ch=!1,f!==null&&Bre(i,f),!0}function GU(i,o){switch(i.tag){case k:{Sre(i.stateNode.containerInfo,o);break}case E:{var f=(i.mode&vn)!==Mt;kre(i.type,i.memoizedProps,i.stateNode,o,f);break}case N:{var m=i.memoizedState;m.dehydrated!==null&&Cre(m.dehydrated,o);break}}}function YU(i,o){GU(i,o);var f=Zoe();f.stateNode=o,f.return=i;var m=i.deletions;m===null?(i.deletions=[f],i.flags|=wa):m.push(f)}function OE(i,o){{if(Ch)return;switch(i.tag){case k:{var f=i.stateNode.containerInfo;switch(o.tag){case E:var m=o.type;o.pendingProps,Tre(f,m);break;case R:var y=o.pendingProps;xre(f,y);break}break}case E:{var C=i.type,w=i.memoizedProps,P=i.stateNode;switch(o.tag){case E:{var D=o.type,F=o.pendingProps,B=(i.mode&vn)!==Mt;Ere(C,w,P,D,F,B);break}case R:{var ae=o.pendingProps,re=(i.mode&vn)!==Mt;Rre(C,w,P,ae,re);break}}break}case N:{var ge=i.memoizedState,be=ge.dehydrated;if(be!==null)switch(o.tag){case E:var we=o.type;o.pendingProps,wre(be,we);break;case R:var st=o.pendingProps;_re(be,st);break}break}default:return}}}function KU(i,o){o.flags=o.flags&~Vr|jr,OE(i,o)}function ZU(i,o){switch(i.tag){case E:{var f=i.type;i.pendingProps;var m=rre(o,f);return m!==null?(i.stateNode=m,sa=i,gs=lre(m),!0):!1}case R:{var y=i.pendingProps,C=ire(o,y);return C!==null?(i.stateNode=C,sa=i,gs=null,!0):!1}case N:{var w=are(o);if(w!==null){var P={dehydrated:w,treeContext:zre(),retryLane:Pa};i.memoizedState=P;var D=Qoe(w);return D.return=i,i.child=D,sa=i,gs=null,!0}return!1}default:return!1}}function ME(i){return(i.mode&vn)!==Mt&&(i.flags&pn)===Ot}function LE(i){throw new Error("Hydration failed because the initial UI does not match what was rendered on the server.")}function NE(i){if(Xs){var o=gs;if(!o){ME(i)&&(OE(sa,i),LE()),KU(sa,i),Xs=!1,sa=i;return}var f=o;if(!ZU(i,o)){ME(i)&&(OE(sa,i),LE()),o=$y(f);var m=sa;if(!o||!ZU(i,o)){KU(sa,i),Xs=!1,sa=i;return}YU(m,f)}}}function Gre(i,o,f){var m=i.stateNode,y=!Ch,C=dre(m,i.type,i.memoizedProps,o,f,i,y);return i.updateQueue=C,C!==null}function Yre(i){var o=i.stateNode,f=i.memoizedProps,m=fre(o,f,i);if(m){var y=sa;if(y!==null)switch(y.tag){case k:{var C=y.stateNode.containerInfo,w=(y.mode&vn)!==Mt;yre(C,o,f,w);break}case E:{var P=y.type,D=y.memoizedProps,F=y.stateNode,B=(y.mode&vn)!==Mt;bre(P,D,F,o,f,B);break}}}return m}function Kre(i){var o=i.memoizedState,f=o!==null?o.dehydrated:null;if(!f)throw new Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");hre(f,i)}function Zre(i){var o=i.memoizedState,f=o!==null?o.dehydrated:null;if(!f)throw new Error("Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.");return pre(f)}function QU(i){for(var o=i.return;o!==null&&o.tag!==E&&o.tag!==k&&o.tag!==N;)o=o.return;sa=o}function gk(i){if(i!==sa)return!1;if(!Xs)return QU(i),Xs=!0,!1;if(i.tag!==k&&(i.tag!==E||vre(i.type)&&!gE(i.type,i.memoizedProps))){var o=gs;if(o)if(ME(i))XU(i),LE();else for(;o;)YU(i,o),o=$y(o)}return QU(i),i.tag===N?gs=Zre(i):gs=sa?$y(i.stateNode):null,!0}function Qre(){return Xs&&gs!==null}function XU(i){for(var o=gs;o;)GU(i,o),o=$y(o)}function Ym(){sa=null,gs=null,Xs=!1,Ch=!1}function JU(){Ld!==null&&(W9(Ld),Ld=null)}function la(){return Xs}function IE(i){Ld===null?Ld=[i]:Ld.push(i)}var Xre=r.ReactCurrentBatchConfig,Jre=null;function eie(){return Xre.transition}var Js={recordUnsafeLifecycleWarnings:function(i,o){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(i,o){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}};{var tie=function(i){for(var o=null,f=i;f!==null;)f.mode&an&&(o=f),f=f.return;return o},kh=function(i){var o=[];return i.forEach(function(f){o.push(f)}),o.sort().join(", ")},Yy=[],Ky=[],Zy=[],Qy=[],Xy=[],Jy=[],Th=new Set;Js.recordUnsafeLifecycleWarnings=function(i,o){Th.has(i.type)||(typeof o.componentWillMount=="function"&&o.componentWillMount.__suppressDeprecationWarning!==!0&&Yy.push(i),i.mode&an&&typeof o.UNSAFE_componentWillMount=="function"&&Ky.push(i),typeof o.componentWillReceiveProps=="function"&&o.componentWillReceiveProps.__suppressDeprecationWarning!==!0&&Zy.push(i),i.mode&an&&typeof o.UNSAFE_componentWillReceiveProps=="function"&&Qy.push(i),typeof o.componentWillUpdate=="function"&&o.componentWillUpdate.__suppressDeprecationWarning!==!0&&Xy.push(i),i.mode&an&&typeof o.UNSAFE_componentWillUpdate=="function"&&Jy.push(i))},Js.flushPendingUnsafeLifecycleWarnings=function(){var i=new Set;Yy.length>0&&(Yy.forEach(function(re){i.add(Zt(re)||"Component"),Th.add(re.type)}),Yy=[]);var o=new Set;Ky.length>0&&(Ky.forEach(function(re){o.add(Zt(re)||"Component"),Th.add(re.type)}),Ky=[]);var f=new Set;Zy.length>0&&(Zy.forEach(function(re){f.add(Zt(re)||"Component"),Th.add(re.type)}),Zy=[]);var m=new Set;Qy.length>0&&(Qy.forEach(function(re){m.add(Zt(re)||"Component"),Th.add(re.type)}),Qy=[]);var y=new Set;Xy.length>0&&(Xy.forEach(function(re){y.add(Zt(re)||"Component"),Th.add(re.type)}),Xy=[]);var C=new Set;if(Jy.length>0&&(Jy.forEach(function(re){C.add(Zt(re)||"Component"),Th.add(re.type)}),Jy=[]),o.size>0){var w=kh(o);c(`Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.
129
129
 
130
130
  * Move code with side effects to componentDidMount, and set initial state in the constructor.
131
131
 
@@ -273,9 +273,9 @@ t=0 0\r
273
273
  `},e.getDirection=function(n,r){const a=e.splitLines(n);for(let s=0;s<a.length;s++)switch(a[s]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return a[s].substring(2)}return r?e.getDirection(r):"sendrecv"},e.getKind=function(n){return e.splitLines(n)[0].split(" ")[0].substring(2)},e.isRejected=function(n){return n.split(" ",2)[1]==="0"},e.parseMLine=function(n){const a=e.splitLines(n)[0].substring(2).split(" ");return{kind:a[0],port:parseInt(a[1],10),protocol:a[2],fmt:a.slice(3).join(" ")}},e.parseOLine=function(n){const a=e.matchPrefix(n,"o=")[0].substring(2).split(" ");return{username:a[0],sessionId:a[1],sessionVersion:parseInt(a[2],10),netType:a[3],addressType:a[4],address:a[5]}},e.isValidSDP=function(n){if(typeof n!="string"||n.length===0)return!1;const r=e.splitLines(n);for(let a=0;a<r.length;a++)if(r[a].length<2||r[a].charAt(1)!=="=")return!1;return!0},t.exports=e}(Q1)),Q1.exports}var JA=V8(),jh=R8(JA),z8=e6({__proto__:null,default:jh},[JA]);function Q0(t){if(!t.RTCIceCandidate||t.RTCIceCandidate&&"foundation"in t.RTCIceCandidate.prototype)return;const e=t.RTCIceCandidate;t.RTCIceCandidate=function(r){if(typeof r=="object"&&r.candidate&&r.candidate.indexOf("a=")===0&&(r=JSON.parse(JSON.stringify(r)),r.candidate=r.candidate.substring(2)),r.candidate&&r.candidate.length){const a=new e(r),s=jh.parseCandidate(r.candidate);for(const l in s)l in a||Object.defineProperty(a,l,{value:s[l]});return a.toJSON=function(){return{candidate:a.candidate,sdpMid:a.sdpMid,sdpMLineIndex:a.sdpMLineIndex,usernameFragment:a.usernameFragment}},a}return new e(r)},t.RTCIceCandidate.prototype=e.prototype,Kd(t,"icecandidate",n=>(n.candidate&&Object.defineProperty(n,"candidate",{value:new t.RTCIceCandidate(n.candidate),writable:"false"}),n))}function X1(t){!t.RTCIceCandidate||t.RTCIceCandidate&&"relayProtocol"in t.RTCIceCandidate.prototype||Kd(t,"icecandidate",e=>{if(e.candidate){const n=jh.parseCandidate(e.candidate.candidate);n.type==="relay"&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[n.priority>>24])}return e})}function X0(t,e){if(!t.RTCPeerConnection)return;"sctp"in t.RTCPeerConnection.prototype||Object.defineProperty(t.RTCPeerConnection.prototype,"sctp",{get(){return typeof this._sctp>"u"?null:this._sctp}});const n=function(c){if(!c||!c.sdp)return!1;const h=jh.splitSections(c.sdp);return h.shift(),h.some(p=>{const v=jh.parseMLine(p);return v&&v.kind==="application"&&v.protocol.indexOf("SCTP")!==-1})},r=function(c){const h=c.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(h===null||h.length<2)return-1;const p=parseInt(h[1],10);return p!==p?-1:p},a=function(c){let h=65536;return e.browser==="firefox"&&(e.version<57?c===-1?h=16384:h=2147483637:e.version<60?h=e.version===57?65535:65536:h=2147483637),h},s=function(c,h){let p=65536;e.browser==="firefox"&&e.version===57&&(p=65535);const v=jh.matchPrefix(c.sdp,"a=max-message-size:");return v.length>0?p=parseInt(v[0].substring(19),10):e.browser==="firefox"&&h!==-1&&(p=2147483637),p},l=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,e.browser==="chrome"&&e.version>=76){const{sdpSemantics:h}=this.getConfiguration();h==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return typeof this._sctp>"u"?null:this._sctp},enumerable:!0,configurable:!0})}if(n(arguments[0])){const h=r(arguments[0]),p=a(h),v=s(arguments[0],h);let b;p===0&&v===0?b=Number.POSITIVE_INFINITY:p===0||v===0?b=Math.max(p,v):b=Math.min(p,v);const k={};Object.defineProperty(k,"maxMessageSize",{get(){return b}}),this._sctp=k}return l.apply(this,arguments)}}function J0(t){if(!(t.RTCPeerConnection&&"createDataChannel"in t.RTCPeerConnection.prototype))return;function e(r,a){const s=r.send;r.send=function(){const c=arguments[0],h=c.length||c.size||c.byteLength;if(r.readyState==="open"&&a.sctp&&h>a.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+a.sctp.maxMessageSize+" bytes)");return s.apply(r,arguments)}}const n=t.RTCPeerConnection.prototype.createDataChannel;t.RTCPeerConnection.prototype.createDataChannel=function(){const a=n.apply(this,arguments);return e(a,this),a},Kd(t,"datachannel",r=>(e(r.channel,r.target),r))}function J1(t){if(!t.RTCPeerConnection||"connectionState"in t.RTCPeerConnection.prototype)return;const e=t.RTCPeerConnection.prototype;Object.defineProperty(e,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(e,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(n){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),n&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=n)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(n=>{const r=e[n];e[n]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=a=>{const s=a.target;if(s._lastConnectionState!==s.connectionState){s._lastConnectionState=s.connectionState;const l=new Event("connectionstatechange",a);s.dispatchEvent(l)}return a},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),r.apply(this,arguments)}})}function eT(t,e){if(!t.RTCPeerConnection||e.browser==="chrome"&&e.version>=71||e.browser==="safari"&&e.version>=605)return;const n=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(a){if(a&&a.sdp&&a.sdp.indexOf(`
274
274
  a=extmap-allow-mixed`)!==-1){const s=a.sdp.split(`
275
275
  `).filter(l=>l.trim()!=="a=extmap-allow-mixed").join(`
276
- `);t.RTCSessionDescription&&a instanceof t.RTCSessionDescription?arguments[0]=new t.RTCSessionDescription({type:a.type,sdp:s}):a.sdp=s}return n.apply(this,arguments)}}function eb(t,e){if(!(t.RTCPeerConnection&&t.RTCPeerConnection.prototype))return;const n=t.RTCPeerConnection.prototype.addIceCandidate;!n||n.length===0||(t.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(e.browser==="chrome"&&e.version<78||e.browser==="firefox"&&e.version<68||e.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function tb(t,e){if(!(t.RTCPeerConnection&&t.RTCPeerConnection.prototype))return;const n=t.RTCPeerConnection.prototype.setLocalDescription;!n||n.length===0||(t.RTCPeerConnection.prototype.setLocalDescription=function(){let a=arguments[0]||{};if(typeof a!="object"||a.type&&a.sdp)return n.apply(this,arguments);if(a={type:a.type,sdp:a.sdp},!a.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":a.type="offer";break;default:a.type="answer";break}return a.sdp||a.type!=="offer"&&a.type!=="answer"?n.apply(this,[a]):(a.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(l=>n.apply(this,[l]))})}var B8=Object.freeze({__proto__:null,removeExtmapAllowMixed:eT,shimAddIceCandidateNullOrEmpty:eb,shimConnectionState:J1,shimMaxMessageSize:X0,shimParameterlessSetLocalDescription:tb,shimRTCIceCandidate:Q0,shimRTCIceCandidateRelayProtocol:X1,shimSendThrowTypeError:J0});function H8(){let{window:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0};const n=vA,r=F8(t),a={browserDetails:r,commonShim:B8,extractVersion:Z0,disableLog:I8,disableWarnings:U8,sdp:z8};switch(r.browser){case"chrome":if(!DA||!K1||!e.shimChrome)return n("Chrome shim is not included in this adapter release."),a;if(r.version===null)return n("Chrome shim can not determine version, not shimming."),a;n("adapter.js shimming chrome."),a.browserShim=DA,eb(t,r),tb(t),kA(t,r),TA(t),K1(t,r),xA(t),RA(t,r),wA(t),_A(t),PA(t,r),Q0(t),X1(t),J1(t),X0(t,r),J0(t),eT(t,r);break;case"firefox":if(!zA||!Z1||!e.shimFirefox)return n("Firefox shim is not included in this adapter release."),a;n("adapter.js shimming firefox."),a.browserShim=zA,eb(t,r),tb(t),AA(t,r),Z1(t,r),OA(t),NA(t),MA(t),LA(t),IA(t),UA(t),FA(t),jA(t),VA(t),Q0(t),J1(t),X0(t,r),J0(t);break;case"safari":if(!QA||!e.shimSafari)return n("Safari shim is not included in this adapter release."),a;n("adapter.js shimming safari."),a.browserShim=QA,eb(t,r),tb(t),GA(t),KA(t),$A(t),BA(t),HA(t),YA(t),qA(t),ZA(t),Q0(t),X1(t),X0(t,r),J0(t),eT(t,r);break;default:n("Unsupported browser!");break}return a}H8({window:typeof window>"u"?void 0:window});const $8=10,nb="lk_e2ee",q8={sharedKey:!1,ratchetSalt:"LKFrameEncryptionKey",ratchetWindowSize:8,failureTolerance:$8,keyringSize:16};var mc;(function(t){t.SetKey="setKey",t.RatchetRequest="ratchetRequest",t.KeyRatcheted="keyRatcheted"})(mc||(mc={}));var eO;(function(t){t.KeyRatcheted="keyRatcheted"})(eO||(eO={}));var gc;(function(t){t.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",t.EncryptionError="encryptionError"})(gc||(gc={}));var tO;(function(t){t.Error="cryptorError"})(tO||(tO={}));function W8(){return G8()||tT()}function tT(){return typeof window.RTCRtpScriptTransform<"u"}function G8(){return typeof window.RTCRtpSender<"u"&&typeof window.RTCRtpSender.prototype.createEncodedStreams<"u"}class Dse extends dl.EventEmitter{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(),this.onKeyRatcheted=(n,r)=>{Nn.debug("key ratcheted event received",{material:n,keyIndex:r})},this.keyInfoMap=new Map,this.options=Object.assign(Object.assign({},q8),e),this.on(mc.KeyRatcheted,this.onKeyRatcheted)}onSetEncryptionKey(e,n,r){const a={key:e,participantIdentity:n,keyIndex:r};if(!this.options.sharedKey&&!n)throw new Error("participant identity needs to be passed for encryption key if sharedKey option is false");this.keyInfoMap.set("".concat(n??"shared","-").concat(r??0),a),this.emit(mc.SetKey,a)}getKeys(){return Array.from(this.keyInfoMap.values())}getOptions(){return this.options}ratchetKey(e,n){this.emit(mc.RatchetRequest,e,n)}}class vc extends Error{constructor(e,n){super(n||"an error has occured"),this.name="LiveKitError",this.code=e}}var Un;(function(t){t[t.NotAllowed=0]="NotAllowed",t[t.ServerUnreachable=1]="ServerUnreachable",t[t.InternalError=2]="InternalError",t[t.Cancelled=3]="Cancelled",t[t.LeaveRequest=4]="LeaveRequest"})(Un||(Un={}));class br extends vc{constructor(e,n,r,a){super(1,e),this.name="ConnectionError",this.status=r,this.reason=n,this.context=a,this.reasonName=Un[n]}}class nT extends vc{constructor(e){super(21,e??"device is unsupported"),this.name="DeviceUnsupportedError"}}class uu extends vc{constructor(e){super(20,e??"track is invalid"),this.name="TrackInvalidError"}}class Y8 extends vc{constructor(e){super(10,e??"unsupported server"),this.name="UnsupportedServer"}}class xi extends vc{constructor(e){super(12,e??"unexpected connection state"),this.name="UnexpectedConnectionState"}}class rT extends vc{constructor(e){super(13,e??"unable to negotiate"),this.name="NegotiationError"}}class iT extends vc{constructor(e,n){super(15,e),this.name="PublishTrackError",this.status=n}}class nO extends vc{constructor(e,n){super(15,e),this.reason=n,this.reasonName=typeof n=="string"?n:q1[n]}}var rb;(function(t){t.PermissionDenied="PermissionDenied",t.NotFound="NotFound",t.DeviceInUse="DeviceInUse",t.Other="Other"})(rb||(rb={})),function(t){function e(n){if(n&&"name"in n)return n.name==="NotFoundError"||n.name==="DevicesNotFoundError"?t.NotFound:n.name==="NotAllowedError"||n.name==="PermissionDeniedError"?t.PermissionDenied:n.name==="NotReadableError"||n.name==="TrackStartError"?t.DeviceInUse:t.Other}t.getFailure=e}(rb||(rb={}));var rO;(function(t){t[t.InvalidKey=0]="InvalidKey",t[t.MissingKey=1]="MissingKey",t[t.InternalError=2]="InternalError"})(rO||(rO={}));var Ee;(function(t){t.Connected="connected",t.Reconnecting="reconnecting",t.SignalReconnecting="signalReconnecting",t.Reconnected="reconnected",t.Disconnected="disconnected",t.ConnectionStateChanged="connectionStateChanged",t.MediaDevicesChanged="mediaDevicesChanged",t.ParticipantConnected="participantConnected",t.ParticipantDisconnected="participantDisconnected",t.TrackPublished="trackPublished",t.TrackSubscribed="trackSubscribed",t.TrackSubscriptionFailed="trackSubscriptionFailed",t.TrackUnpublished="trackUnpublished",t.TrackUnsubscribed="trackUnsubscribed",t.TrackMuted="trackMuted",t.TrackUnmuted="trackUnmuted",t.LocalTrackPublished="localTrackPublished",t.LocalTrackUnpublished="localTrackUnpublished",t.LocalAudioSilenceDetected="localAudioSilenceDetected",t.ActiveSpeakersChanged="activeSpeakersChanged",t.ParticipantMetadataChanged="participantMetadataChanged",t.ParticipantNameChanged="participantNameChanged",t.ParticipantAttributesChanged="participantAttributesChanged",t.RoomMetadataChanged="roomMetadataChanged",t.DataReceived="dataReceived",t.SipDTMFReceived="sipDTMFReceived",t.TranscriptionReceived="transcriptionReceived",t.ConnectionQualityChanged="connectionQualityChanged",t.TrackStreamStateChanged="trackStreamStateChanged",t.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",t.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",t.AudioPlaybackStatusChanged="audioPlaybackChanged",t.VideoPlaybackStatusChanged="videoPlaybackChanged",t.MediaDevicesError="mediaDevicesError",t.ParticipantPermissionsChanged="participantPermissionsChanged",t.SignalConnected="signalConnected",t.RecordingStatusChanged="recordingStatusChanged",t.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",t.EncryptionError="encryptionError",t.DCBufferStatusChanged="dcBufferStatusChanged",t.ActiveDeviceChanged="activeDeviceChanged",t.ChatMessage="chatMessage",t.LocalTrackSubscribed="localTrackSubscribed",t.MetricsReceived="metricsReceived"})(Ee||(Ee={}));var Ie;(function(t){t.TrackPublished="trackPublished",t.TrackSubscribed="trackSubscribed",t.TrackSubscriptionFailed="trackSubscriptionFailed",t.TrackUnpublished="trackUnpublished",t.TrackUnsubscribed="trackUnsubscribed",t.TrackMuted="trackMuted",t.TrackUnmuted="trackUnmuted",t.LocalTrackPublished="localTrackPublished",t.LocalTrackUnpublished="localTrackUnpublished",t.ParticipantMetadataChanged="participantMetadataChanged",t.ParticipantNameChanged="participantNameChanged",t.DataReceived="dataReceived",t.SipDTMFReceived="sipDTMFReceived",t.TranscriptionReceived="transcriptionReceived",t.IsSpeakingChanged="isSpeakingChanged",t.ConnectionQualityChanged="connectionQualityChanged",t.TrackStreamStateChanged="trackStreamStateChanged",t.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",t.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",t.MediaDevicesError="mediaDevicesError",t.AudioStreamAcquired="audioStreamAcquired",t.ParticipantPermissionsChanged="participantPermissionsChanged",t.PCTrackAdded="pcTrackAdded",t.AttributesChanged="attributesChanged",t.LocalTrackSubscribed="localTrackSubscribed",t.ChatMessage="chatMessage"})(Ie||(Ie={}));var et;(function(t){t.TransportsCreated="transportsCreated",t.Connected="connected",t.Disconnected="disconnected",t.Resuming="resuming",t.Resumed="resumed",t.Restarting="restarting",t.Restarted="restarted",t.SignalResumed="signalResumed",t.SignalRestarted="signalRestarted",t.Closing="closing",t.MediaTrackAdded="mediaTrackAdded",t.ActiveSpeakersUpdate="activeSpeakersUpdate",t.DataPacketReceived="dataPacketReceived",t.RTPVideoMapUpdate="rtpVideoMapUpdate",t.DCBufferStatusChanged="dcBufferStatusChanged",t.ParticipantUpdate="participantUpdate",t.RoomUpdate="roomUpdate",t.SpeakersChanged="speakersChanged",t.StreamStateChanged="streamStateChanged",t.ConnectionQualityUpdate="connectionQualityUpdate",t.SubscriptionError="subscriptionError",t.SubscriptionPermissionUpdate="subscriptionPermissionUpdate",t.RemoteMute="remoteMute",t.SubscribedQualityUpdate="subscribedQualityUpdate",t.LocalTrackUnpublished="localTrackUnpublished",t.LocalTrackSubscribed="localTrackSubscribed",t.Offline="offline",t.SignalRequestResponse="signalRequestResponse",t.SignalConnected="signalConnected"})(et||(et={}));var Qe;(function(t){t.Message="message",t.Muted="muted",t.Unmuted="unmuted",t.Restarted="restarted",t.Ended="ended",t.Subscribed="subscribed",t.Unsubscribed="unsubscribed",t.UpdateSettings="updateSettings",t.UpdateSubscription="updateSubscription",t.AudioPlaybackStarted="audioPlaybackStarted",t.AudioPlaybackFailed="audioPlaybackFailed",t.AudioSilenceDetected="audioSilenceDetected",t.VisibilityChanged="visibilityChanged",t.VideoDimensionsChanged="videoDimensionsChanged",t.VideoPlaybackStarted="videoPlaybackStarted",t.VideoPlaybackFailed="videoPlaybackFailed",t.ElementAttached="elementAttached",t.ElementDetached="elementDetached",t.UpstreamPaused="upstreamPaused",t.UpstreamResumed="upstreamResumed",t.SubscriptionPermissionChanged="subscriptionPermissionChanged",t.SubscriptionStatusChanged="subscriptionStatusChanged",t.SubscriptionFailed="subscriptionFailed",t.TrackProcessorUpdate="trackProcessorUpdate",t.AudioTrackFeatureUpdate="audioTrackFeatureUpdate",t.TranscriptionReceived="transcriptionReceived",t.TimeSyncUpdate="timeSyncUpdate"})(Qe||(Qe={}));function K8(t){return typeof t>"u"?t:typeof structuredClone=="function"?structuredClone(t):JSON.parse(JSON.stringify(t))}const Z8=/version\/(\d+(\.?_?\d+)+)/i;let aT;function ws(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(typeof navigator>"u")return;const n=navigator.userAgent.toLowerCase();if(aT===void 0||e){const r=Q8.find(a=>{let{test:s}=a;return s.test(n)});aT=r==null?void 0:r.describe(n)}return aT}const Q8=[{test:/firefox|iceweasel|fxios/i,describe(t){return{name:"Firefox",version:ib(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t),os:t.toLowerCase().includes("fxios")?"iOS":void 0,osVersion:oT(t)}}},{test:/chrom|crios|crmo/i,describe(t){return{name:"Chrome",version:ib(/(?:chrome|chromium|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t),os:t.toLowerCase().includes("crios")?"iOS":void 0,osVersion:oT(t)}}},{test:/safari|applewebkit/i,describe(t){return{name:"Safari",version:ib(Z8,t),os:t.includes("mobile/")?"iOS":"macOS",osVersion:oT(t)}}}];function ib(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;const r=e.match(t);return r&&r.length>=n&&r[n]||""}function oT(t){return t.includes("mac os")?ib(/\(.+?(\d+_\d+(:?_\d+)?)/,t,1).replace(/_/g,"."):void 0}var X8="2.11.4";const J8=X8,eV=15;class Qi{}Qi.setTimeout=function(){return setTimeout(...arguments)},Qi.setInterval=function(){return setInterval(...arguments)},Qi.clearTimeout=function(){return clearTimeout(...arguments)},Qi.clearInterval=function(){return clearInterval(...arguments)};const tV=5e3,Rg=[];var Go;(function(t){t[t.LOW=0]="LOW",t[t.MEDIUM=1]="MEDIUM",t[t.HIGH=2]="HIGH"})(Go||(Go={}));class De extends dl.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var a;super(),this.attachedElements=[],this.isMuted=!1,this.streamState=De.StreamState.Active,this.isInBackground=!1,this._currentBitrate=0,this.log=Nn,this.appVisibilityChangedListener=()=>{this.backgroundTimeout&&clearTimeout(this.backgroundTimeout),document.visibilityState==="hidden"?this.backgroundTimeout=setTimeout(()=>this.handleAppVisibilityChanged(),tV):this.handleAppVisibilityChanged()},this.log=lu((a=r.loggerName)!==null&&a!==void 0?a:xs.Track),this.loggerContextCb=r.loggerContextCb,this.setMaxListeners(100),this.kind=n,this._mediaStreamTrack=e,this._mediaStreamID=e.id,this.source=De.Source.Unknown}get logContext(){var e;return Object.assign(Object.assign({},(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this)),ar(this))}get currentBitrate(){return this._currentBitrate}get mediaStreamTrack(){return this._mediaStreamTrack}get mediaStreamID(){return this._mediaStreamID}attach(e){let n="audio";this.kind===De.Kind.Video&&(n="video"),this.attachedElements.length===0&&this.kind===De.Kind.Video&&this.addAppVisibilityListener(),e||(n==="audio"&&(Rg.forEach(s=>{s.parentElement===null&&!e&&(e=s)}),e&&Rg.splice(Rg.indexOf(e),1)),e||(e=document.createElement(n))),this.attachedElements.includes(e)||this.attachedElements.push(e),Vh(this.mediaStreamTrack,e);const r=e.srcObject.getTracks(),a=r.some(s=>s.kind==="audio");return e.play().then(()=>{this.emit(a?Qe.AudioPlaybackStarted:Qe.VideoPlaybackStarted)}).catch(s=>{s.name==="NotAllowedError"?this.emit(a?Qe.AudioPlaybackFailed:Qe.VideoPlaybackFailed,s):s.name==="AbortError"?Nn.debug("".concat(a?"audio":"video"," playback aborted, likely due to new play request")):Nn.warn("could not playback ".concat(a?"audio":"video"),s),a&&e&&r.some(l=>l.kind==="video")&&s.name==="NotAllowedError"&&(e.muted=!0,e.play().catch(()=>{}))}),this.emit(Qe.ElementAttached,e),e}detach(e){try{if(e){zh(this.mediaStreamTrack,e);const r=this.attachedElements.indexOf(e);return r>=0&&(this.attachedElements.splice(r,1),this.recycleElement(e),this.emit(Qe.ElementDetached,e)),e}const n=[];return this.attachedElements.forEach(r=>{zh(this.mediaStreamTrack,r),n.push(r),this.recycleElement(r),this.emit(Qe.ElementDetached,r)}),this.attachedElements=[],n}finally{this.attachedElements.length===0&&this.removeAppVisibilityListener()}}stop(){this.stopMonitor(),this._mediaStreamTrack.stop()}enable(){this._mediaStreamTrack.enabled=!0}disable(){this._mediaStreamTrack.enabled=!1}stopMonitor(){this.monitorInterval&&clearInterval(this.monitorInterval),this.timeSyncHandle&&cancelAnimationFrame(this.timeSyncHandle)}updateLoggerOptions(e){e.loggerName&&(this.log=lu(e.loggerName)),e.loggerContextCb&&(this.loggerContextCb=e.loggerContextCb)}recycleElement(e){if(e instanceof HTMLAudioElement){let n=!0;e.pause(),Rg.forEach(r=>{r.parentElement||(n=!1)}),n&&Rg.push(e)}}handleAppVisibilityChanged(){return Q(this,void 0,void 0,function*(){this.isInBackground=document.visibilityState==="hidden",!this.isInBackground&&this.kind===De.Kind.Video&&setTimeout(()=>this.attachedElements.forEach(e=>e.play().catch(()=>{})),0)})}addAppVisibilityListener(){ao()?(this.isInBackground=document.visibilityState==="hidden",document.addEventListener("visibilitychange",this.appVisibilityChangedListener)):this.isInBackground=!1}removeAppVisibilityListener(){ao()&&document.removeEventListener("visibilitychange",this.appVisibilityChangedListener)}}function Vh(t,e){let n;e.srcObject instanceof MediaStream?n=e.srcObject:n=new MediaStream;let r;t.kind==="audio"?r=n.getAudioTracks():r=n.getVideoTracks(),r.includes(t)||(r.forEach(a=>{n.removeTrack(a)}),n.addTrack(t)),(!yc()||!(e instanceof HTMLVideoElement))&&(e.autoplay=!0),e.muted=n.getAudioTracks().length===0,e instanceof HTMLVideoElement&&(e.playsInline=!0),e.srcObject!==n&&(e.srcObject=n,(yc()||Bh())&&e instanceof HTMLVideoElement&&setTimeout(()=>{e.srcObject=n,e.play().catch(()=>{})},0))}function zh(t,e){if(e.srcObject instanceof MediaStream){const n=e.srcObject;n.removeTrack(t),n.getTracks().length>0?e.srcObject=n:e.srcObject=null}}(function(t){let e;(function(p){p.Audio="audio",p.Video="video",p.Unknown="unknown"})(e=t.Kind||(t.Kind={}));let n;(function(p){p.Camera="camera",p.Microphone="microphone",p.ScreenShare="screen_share",p.ScreenShareAudio="screen_share_audio",p.Unknown="unknown"})(n=t.Source||(t.Source={}));let r;(function(p){p.Active="active",p.Paused="paused",p.Unknown="unknown"})(r=t.StreamState||(t.StreamState={}));function a(p){switch(p){case e.Audio:return Cs.AUDIO;case e.Video:return Cs.VIDEO;default:return Cs.DATA}}t.kindToProto=a;function s(p){switch(p){case Cs.AUDIO:return e.Audio;case Cs.VIDEO:return e.Video;default:return e.Unknown}}t.kindFromProto=s;function l(p){switch(p){case n.Camera:return gi.CAMERA;case n.Microphone:return gi.MICROPHONE;case n.ScreenShare:return gi.SCREEN_SHARE;case n.ScreenShareAudio:return gi.SCREEN_SHARE_AUDIO;default:return gi.UNKNOWN}}t.sourceToProto=l;function c(p){switch(p){case gi.CAMERA:return n.Camera;case gi.MICROPHONE:return n.Microphone;case gi.SCREEN_SHARE:return n.ScreenShare;case gi.SCREEN_SHARE_AUDIO:return n.ScreenShareAudio;default:return n.Unknown}}t.sourceFromProto=c;function h(p){switch(p){case F1.ACTIVE:return r.Active;case F1.PAUSED:return r.Paused;default:return r.Unknown}}t.streamStateFromProto=h})(De||(De={}));class gr{constructor(e,n,r,a,s){if(typeof e=="object")this.width=e.width,this.height=e.height,this.aspectRatio=e.aspectRatio,this.encoding={maxBitrate:e.maxBitrate,maxFramerate:e.maxFramerate,priority:e.priority};else if(n!==void 0&&r!==void 0)this.width=e,this.height=n,this.aspectRatio=e/n,this.encoding={maxBitrate:r,maxFramerate:a,priority:s};else throw new TypeError("Unsupported options: provide at least width, height and maxBitrate")}get resolution(){return{width:this.width,height:this.height,frameRate:this.encoding.maxFramerate,aspectRatio:this.aspectRatio}}}const nV=["vp8","h264"],rV=["vp8","h264","vp9","av1"];function iV(t){return!!nV.find(e=>e===t)}var iO;(function(t){t[t.PREFER_REGRESSION=0]="PREFER_REGRESSION",t[t.SIMULCAST=1]="SIMULCAST",t[t.REGRESSION=2]="REGRESSION"})(iO||(iO={}));var sT;(function(t){t.telephone={maxBitrate:12e3},t.speech={maxBitrate:24e3},t.music={maxBitrate:48e3},t.musicStereo={maxBitrate:64e3},t.musicHighQuality={maxBitrate:96e3},t.musicHighQualityStereo={maxBitrate:128e3}})(sT||(sT={}));const Pg={h90:new gr(160,90,9e4,20),h180:new gr(320,180,16e4,20),h216:new gr(384,216,18e4,20),h360:new gr(640,360,45e4,20),h540:new gr(960,540,8e5,25),h720:new gr(1280,720,17e5,30),h1080:new gr(1920,1080,3e6,30),h1440:new gr(2560,1440,5e6,30),h2160:new gr(3840,2160,8e6,30)},lT={h120:new gr(160,120,7e4,20),h180:new gr(240,180,125e3,20),h240:new gr(320,240,14e4,20),h360:new gr(480,360,33e4,20),h480:new gr(640,480,5e5,20),h540:new gr(720,540,6e5,25),h720:new gr(960,720,13e5,30),h1080:new gr(1440,1080,23e5,30),h1440:new gr(1920,1440,38e5,30)},uT={h360fps3:new gr(640,360,2e5,3,"medium"),h360fps15:new gr(640,360,4e5,15,"medium"),h720fps5:new gr(1280,720,8e5,5,"medium"),h720fps15:new gr(1280,720,15e5,15,"medium"),h720fps30:new gr(1280,720,2e6,30,"medium"),h1080fps15:new gr(1920,1080,25e5,15,"medium"),h1080fps30:new gr(1920,1080,5e6,30,"medium"),original:new gr(0,0,7e6,30,"medium")},aV="|",aO="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";function oV(t){const e=t.split(aV);return e.length>1?[e[0],t.substr(e[0].length+1)]:[t,""]}function io(t){return Q(this,void 0,void 0,function*(){return new Promise(e=>Qi.setTimeout(e,t))})}function cT(){return"addTransceiver"in RTCPeerConnection.prototype}function dT(){return"addTrack"in RTCPeerConnection.prototype}function sV(){if(!("getCapabilities"in RTCRtpSender)||yc())return!1;const t=RTCRtpSender.getCapabilities("video");let e=!1;if(t){for(const n of t.codecs)if(n.mimeType==="video/AV1"){e=!0;break}}return e}function lV(){if(!("getCapabilities"in RTCRtpSender)||Bh())return!1;if(yc()){const n=ws();if(n!=null&&n.version&&bc(n.version,"16")<0)return!1}const t=RTCRtpSender.getCapabilities("video");let e=!1;if(t){for(const n of t.codecs)if(n.mimeType==="video/VP9"){e=!0;break}}return e}function Dg(t){return t==="av1"||t==="vp9"}function fT(t){return document?(t||(t=document.createElement("audio")),"setSinkId"in t):!1}function uV(){return typeof RTCPeerConnection>"u"?!1:cT()||dT()}function Bh(){var t;return((t=ws())===null||t===void 0?void 0:t.name)==="Firefox"}function yc(){var t;return((t=ws())===null||t===void 0?void 0:t.name)==="Safari"}function cV(){const t=ws();return(t==null?void 0:t.name)==="Safari"&&t.version.startsWith("17.")}function oO(){var t,e;return ao()?(e=(t=navigator.userAgentData)===null||t===void 0?void 0:t.mobile)!==null&&e!==void 0?e:/Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent):!1}function dV(){const t=ws(),e="17.2";if(t)return t.name!=="Safari"&&t.os!=="iOS"||t.os==="iOS"&&t.osVersion&&bc(e,t.osVersion)>=0?!0:t.name==="Safari"&&bc(e,t.version)>=0}function ao(){return typeof document<"u"}function fl(){return navigator.product=="ReactNative"}function hT(t){return t.hostname.endsWith(".livekit.cloud")||t.hostname.endsWith(".livekit.run")}function sO(){if(global&&global.LiveKitReactNativeGlobal)return global.LiveKitReactNativeGlobal}function lO(){if(!fl())return;let t=sO();if(t)return t.platform}function uO(){if(ao())return window.devicePixelRatio;if(fl()){let t=sO();if(t)return t.devicePixelRatio}return 1}function bc(t,e){const n=t.split("."),r=e.split("."),a=Math.min(n.length,r.length);for(let s=0;s<a;++s){const l=parseInt(n[s],10),c=parseInt(r[s],10);if(l>c)return 1;if(l<c)return-1;if(s===a-1&&l===c)return 0}return t===""&&e!==""?-1:e===""?1:n.length==r.length?0:n.length<r.length?-1:1}function fV(t){for(const e of t)e.target.handleResize(e)}function hV(t){for(const e of t)e.target.handleVisibilityChanged(e)}let pT=null;const cO=()=>(pT||(pT=new ResizeObserver(fV)),pT);let mT=null;const dO=()=>(mT||(mT=new IntersectionObserver(hV,{root:null,rootMargin:"0px"})),mT);function pV(){var t;const e=new i8({sdk:KD.JS,protocol:eV,version:J8});return fl()&&(e.os=(t=lO())!==null&&t!==void 0?t:""),e}function fO(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:16,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:16,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const a=document.createElement("canvas");a.width=t,a.height=e;const s=a.getContext("2d");s==null||s.fillRect(0,0,a.width,a.height),r&&s&&(s.beginPath(),s.arc(t/2,e/2,50,0,Math.PI*2,!0),s.closePath(),s.fillStyle="grey",s.fill());const l=a.captureStream(),[c]=l.getTracks();if(!c)throw Error("Could not get empty media stream video track");return c.enabled=n,c}let Ag;function gT(){if(!Ag){const t=new AudioContext,e=t.createOscillator(),n=t.createGain();n.gain.setValueAtTime(0,0);const r=t.createMediaStreamDestination();if(e.connect(n),n.connect(r),e.start(),[Ag]=r.stream.getAudioTracks(),!Ag)throw Error("Could not get empty media stream audio track");Ag.enabled=!1}return Ag.clone()}class hO{constructor(e,n){this.onFinally=n,this.promise=new Promise((r,a)=>Q(this,void 0,void 0,function*(){this.resolve=r,this.reject=a,e&&(yield e(r,a))})).finally(()=>{var r;return(r=this.onFinally)===null||r===void 0?void 0:r.call(this)})}}function mV(t){return rV.includes(t)}function Sc(t){if(typeof t=="string"||typeof t=="number")return t;if(Array.isArray(t))return t[0];if(t.exact)return Array.isArray(t.exact)?t.exact[0]:t.exact;if(t.ideal)return Array.isArray(t.ideal)?t.ideal[0]:t.ideal;throw Error("could not unwrap constraint")}function gV(t){return t.startsWith("http")?t.replace(/^(http)/,"ws"):t}function vT(t){return t.startsWith("ws")?t.replace(/^(ws)/,"http"):t}function vV(t,e){return t.segments.map(n=>{let{id:r,text:a,language:s,startTime:l,endTime:c,final:h}=n;var p;const v=(p=e.get(r))!==null&&p!==void 0?p:Date.now(),b=Date.now();return h?e.delete(r):e.set(r,v),{id:r,text:a,startTime:Number.parseInt(l.toString()),endTime:Number.parseInt(c.toString()),final:h,language:s,firstReceivedTime:v,lastReceivedTime:b}})}function yV(t){const{id:e,timestamp:n,message:r,editTimestamp:a}=t;return{id:e,timestamp:Number.parseInt(n.toString()),editTimestamp:a?Number.parseInt(a.toString()):void 0,message:r}}function pO(t){switch(t.reason){case Un.LeaveRequest:return t.context;case Un.Cancelled:return ks.CLIENT_INITIATED;case Un.NotAllowed:return ks.USER_REJECTED;case Un.ServerUnreachable:return ks.JOIN_FAILURE;default:return ks.UNKNOWN_REASON}}function ab(t){return t!==void 0?Number(t):void 0}function Zd(t){return t!==void 0?BigInt(t):void 0}function Hh(t){return!!t&&!(t instanceof MediaStreamTrack)&&t.isLocal}function cu(t){return!!t&&t.kind==De.Kind.Audio}function $h(t){return!!t&&t.kind==De.Kind.Video}function Cc(t){return Hh(t)&&$h(t)}function Qd(t){return Hh(t)&&cu(t)}function yT(t){return!!t&&!t.isLocal}function bV(t){return!!t&&!t.isLocal}function bT(t){return yT(t)&&$h(t)}function SV(t){return t.isLocal}function CV(t,e){const n=[];let r=new TextEncoder().encode(t);for(;r.length>e;){let a=e;for(;a>0;){const s=r[a];if(s!==void 0&&(s&192)!==128)break;a--}n.push(r.slice(0,a)),r=r.slice(a)}return r.length>0&&n.push(r),n}function mO(t,e,n){var r,a,s,l;const{optionsWithoutProcessor:c,audioProcessor:h,videoProcessor:p}=bO(t??{}),v=e==null?void 0:e.processor,b=n==null?void 0:n.processor,k=c??{};return k.audio===!0&&(k.audio={}),k.video===!0&&(k.video={}),k.audio&&(ST(k.audio,e),(r=(s=k.audio).deviceId)!==null&&r!==void 0||(s.deviceId={ideal:"default"}),(h||v)&&(k.audio.processor=h??v)),k.video&&(ST(k.video,n),(a=(l=k.video).deviceId)!==null&&a!==void 0||(l.deviceId={ideal:"default"}),(p||b)&&(k.video.processor=p??b)),k}function ST(t,e){return Object.keys(e).forEach(n=>{t[n]===void 0&&(t[n]=e[n])}),t}function CT(t){var e,n,r,a;const s={};if(t.video)if(typeof t.video=="object"){const l={},c=l,h=t.video;Object.keys(h).forEach(p=>{switch(p){case"resolution":ST(c,h.resolution);break;default:c[p]=h[p]}}),s.video=l,(e=(r=s.video).deviceId)!==null&&e!==void 0||(r.deviceId={ideal:"default"})}else s.video=t.video?{deviceId:{ideal:"default"}}:!1;else s.video=!1;return t.audio?typeof t.audio=="object"?(s.audio=t.audio,(n=(a=s.audio).deviceId)!==null&&n!==void 0||(a.deviceId={ideal:"default"})):s.audio={deviceId:{ideal:"default"}}:s.audio=!1,s}function gO(t){return Q(this,arguments,void 0,function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:200;return function*(){const r=vO();if(r){const a=r.createAnalyser();a.fftSize=2048;const s=a.frequencyBinCount,l=new Uint8Array(s);r.createMediaStreamSource(new MediaStream([e.mediaStreamTrack])).connect(a),yield io(n),a.getByteTimeDomainData(l);const h=l.some(p=>p!==128&&p!==0);return r.close(),!h}return!1}()})}function vO(){var t;const e=typeof window<"u"&&(window.AudioContext||window.webkitAudioContext);if(e){const n=new e({latencyHint:"interactive"});if(n.state==="suspended"&&typeof window<"u"&&(!((t=window.document)===null||t===void 0)&&t.body)){const r=()=>Q(this,void 0,void 0,function*(){var a;try{n.state==="suspended"&&(yield n.resume())}catch(s){console.warn("Error trying to auto-resume audio context",s)}(a=window.document.body)===null||a===void 0||a.removeEventListener("click",r)});window.document.body.addEventListener("click",r)}return n}}function kV(t){return t==="audioinput"?De.Source.Microphone:t==="videoinput"?De.Source.Camera:De.Source.Unknown}function yO(t){return t===De.Source.Microphone?"audioinput":t===De.Source.Camera?"videoinput":void 0}function TV(t){var e,n;let r=(e=t.video)!==null&&e!==void 0?e:!0;return t.resolution&&t.resolution.width>0&&t.resolution.height>0&&(r=typeof r=="boolean"?{}:r,yc()?r=Object.assign(Object.assign({},r),{width:{max:t.resolution.width},height:{max:t.resolution.height},frameRate:t.resolution.frameRate}):r=Object.assign(Object.assign({},r),{width:{ideal:t.resolution.width},height:{ideal:t.resolution.height},frameRate:t.resolution.frameRate})),{audio:(n=t.audio)!==null&&n!==void 0?n:!1,video:r,controller:t.controller,selfBrowserSurface:t.selfBrowserSurface,surfaceSwitching:t.surfaceSwitching,systemAudio:t.systemAudio,preferCurrentTab:t.preferCurrentTab}}function ob(t){return t.split("/")[1].toLowerCase()}function xV(t){const e=[];return t.forEach(n=>{n.track!==void 0&&e.push(new H1({cid:n.track.mediaStreamID,track:n.trackInfo}))}),e}function ar(t){return"mediaStreamTrack"in t?{trackID:t.sid,source:t.source,muted:t.isMuted,enabled:t.mediaStreamTrack.enabled,kind:t.kind,streamID:t.mediaStreamID,streamTrackID:t.mediaStreamTrack.id}:{trackID:t.trackSid,enabled:t.isEnabled,muted:t.isMuted,trackInfo:Object.assign({mimeType:t.mimeType,name:t.trackName,encrypted:t.isEncrypted,kind:t.kind,source:t.source},t.track?ar(t.track):{})}}function wV(){return typeof RTCRtpReceiver<"u"&&"getSynchronizationSources"in RTCRtpReceiver}function _V(t,e){var n;t===void 0&&(t={}),e===void 0&&(e={});const r=[...Object.keys(e),...Object.keys(t)],a={};for(const s of r)t[s]!==e[s]&&(a[s]=(n=e[s])!==null&&n!==void 0?n:"");return a}function bO(t){const e=Object.assign({},t);let n,r;return typeof e.audio=="object"&&e.audio.processor&&(n=e.audio.processor,e.audio=Object.assign(Object.assign({},e.audio),{processor:void 0})),typeof e.video=="object"&&e.video.processor&&(r=e.video.processor,e.video=Object.assign(Object.assign({},e.video),{processor:void 0})),{audioProcessor:n,videoProcessor:r,optionsWithoutProcessor:K8(e)}}function EV(t){switch(t){case gi.CAMERA:return De.Source.Camera;case gi.MICROPHONE:return De.Source.Microphone;case gi.SCREEN_SHARE:return De.Source.ScreenShare;case gi.SCREEN_SHARE_AUDIO:return De.Source.ScreenShareAudio;default:return De.Source.Unknown}}class RV extends dl.EventEmitter{constructor(e){super(),this.onWorkerMessage=n=>{var r,a;const{kind:s,data:l}=n.data;switch(s){case"error":Nn.error(l.error.message),this.emit(gc.EncryptionError,l.error);break;case"initAck":l.enabled&&this.keyProvider.getKeys().forEach(c=>{this.postKey(c)});break;case"enable":if(l.enabled&&this.keyProvider.getKeys().forEach(c=>{this.postKey(c)}),this.encryptionEnabled!==l.enabled&&l.participantIdentity===((r=this.room)===null||r===void 0?void 0:r.localParticipant.identity))this.emit(gc.ParticipantEncryptionStatusChanged,l.enabled,this.room.localParticipant),this.encryptionEnabled=l.enabled;else if(l.participantIdentity){const c=(a=this.room)===null||a===void 0?void 0:a.getParticipantByIdentity(l.participantIdentity);if(!c)throw TypeError("couldn't set encryption status, participant not found".concat(l.participantIdentity));this.emit(gc.ParticipantEncryptionStatusChanged,l.enabled,c)}break;case"ratchetKey":this.keyProvider.emit(mc.KeyRatcheted,l.material,l.keyIndex);break}},this.onWorkerError=n=>{Nn.error("e2ee worker encountered an error:",{error:n.error}),this.emit(gc.EncryptionError,n.error)},this.keyProvider=e.keyProvider,this.worker=e.worker,this.encryptionEnabled=!1}setup(e){if(!W8())throw new nT("tried to setup end-to-end encryption on an unsupported browser");if(Nn.info("setting up e2ee"),e!==this.room){this.room=e,this.setupEventListeners(e,this.keyProvider);const n={kind:"init",data:{keyProviderOptions:this.keyProvider.getOptions(),loglevel:A8.getLevel()}};this.worker&&(Nn.info("initializing worker",{worker:this.worker}),this.worker.onmessage=this.onWorkerMessage,this.worker.onerror=this.onWorkerError,this.worker.postMessage(n))}}setParticipantCryptorEnabled(e,n){Nn.debug("set e2ee to ".concat(e," for participant ").concat(n)),this.postEnable(e,n)}setSifTrailer(e){!e||e.length===0?Nn.warn("ignoring server sent trailer as it's empty"):this.postSifTrailer(e)}setupEngine(e){e.on(et.RTPVideoMapUpdate,n=>{this.postRTPMap(n)})}setupEventListeners(e,n){e.on(Ee.TrackPublished,(r,a)=>this.setParticipantCryptorEnabled(r.trackInfo.encryption!==Po.NONE,a.identity)),e.on(Ee.ConnectionStateChanged,r=>{r===Fn.Connected&&e.remoteParticipants.forEach(a=>{a.trackPublications.forEach(s=>{this.setParticipantCryptorEnabled(s.trackInfo.encryption!==Po.NONE,a.identity)})})}).on(Ee.TrackUnsubscribed,(r,a,s)=>{var l;const c={kind:"removeTransform",data:{participantIdentity:s.identity,trackId:r.mediaStreamID}};(l=this.worker)===null||l===void 0||l.postMessage(c)}).on(Ee.TrackSubscribed,(r,a,s)=>{this.setupE2EEReceiver(r,s.identity,a.trackInfo)}).on(Ee.SignalConnected,()=>{if(!this.room)throw new TypeError("expected room to be present on signal connect");n.getKeys().forEach(r=>{this.postKey(r)}),this.setParticipantCryptorEnabled(this.room.localParticipant.isE2EEEnabled,this.room.localParticipant.identity)}),e.localParticipant.on(Ie.LocalTrackPublished,r=>Q(this,void 0,void 0,function*(){this.setupE2EESender(r.track,r.track.sender)})),n.on(mc.SetKey,r=>this.postKey(r)).on(mc.RatchetRequest,(r,a)=>this.postRatchetRequest(r,a))}postRatchetRequest(e,n){if(!this.worker)throw Error("could not ratchet key, worker is missing");const r={kind:"ratchetRequest",data:{participantIdentity:e,keyIndex:n}};this.worker.postMessage(r)}postKey(e){let{key:n,participantIdentity:r,keyIndex:a}=e;var s;if(!this.worker)throw Error("could not set key, worker is missing");const l={kind:"setKey",data:{participantIdentity:r,isPublisher:r===((s=this.room)===null||s===void 0?void 0:s.localParticipant.identity),key:n,keyIndex:a}};this.worker.postMessage(l)}postEnable(e,n){if(this.worker){const r={kind:"enable",data:{enabled:e,participantIdentity:n}};this.worker.postMessage(r)}else throw new ReferenceError("failed to enable e2ee, worker is not ready")}postRTPMap(e){var n;if(!this.worker)throw TypeError("could not post rtp map, worker is missing");if(!(!((n=this.room)===null||n===void 0)&&n.localParticipant.identity))throw TypeError("could not post rtp map, local participant identity is missing");const r={kind:"setRTPMap",data:{map:e,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(r)}postSifTrailer(e){if(!this.worker)throw Error("could not post SIF trailer, worker is missing");const n={kind:"setSifTrailer",data:{trailer:e}};this.worker.postMessage(n)}setupE2EEReceiver(e,n,r){if(e.receiver){if(!(r!=null&&r.mimeType)||r.mimeType==="")throw new TypeError("MimeType missing from trackInfo, cannot set up E2EE cryptor");this.handleReceiver(e.receiver,e.mediaStreamID,n,e.kind==="video"?ob(r.mimeType):void 0)}}setupE2EESender(e,n){if(!Hh(e)||!n){n||Nn.warn("early return because sender is not ready");return}this.handleSender(n,e.mediaStreamID,void 0)}handleReceiver(e,n,r,a){return Q(this,void 0,void 0,function*(){if(this.worker){if(tT()){const s={kind:"decode",participantIdentity:r,trackId:n,codec:a};e.transform=new RTCRtpScriptTransform(this.worker,s)}else{if(nb in e&&a){const h={kind:"updateCodec",data:{trackId:n,codec:a,participantIdentity:r}};this.worker.postMessage(h);return}let s=e.writableStream,l=e.readableStream;if(!s||!l){const h=e.createEncodedStreams();e.writableStream=h.writable,s=h.writable,e.readableStream=h.readable,l=h.readable}const c={kind:"decode",data:{readableStream:l,writableStream:s,trackId:n,codec:a,participantIdentity:r}};this.worker.postMessage(c,[l,s])}e[nb]=!0}})}handleSender(e,n,r){var a;if(!(nb in e||!this.worker)){if(!(!((a=this.room)===null||a===void 0)&&a.localParticipant.identity)||this.room.localParticipant.identity==="")throw TypeError("local identity needs to be known in order to set up encrypted sender");if(tT()){Nn.info("initialize script transform");const s={kind:"encode",participantIdentity:this.room.localParticipant.identity,trackId:n,codec:r};e.transform=new RTCRtpScriptTransform(this.worker,s)}else{Nn.info("initialize encoded streams");const s=e.createEncodedStreams(),l={kind:"encode",data:{readableStream:s.readable,writableStream:s.writable,codec:r,trackId:n,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(l,[s.readable,s.writable])}e[nb]=!0}}}const kT="default";class zi{constructor(){this._previousDevices=[]}static getInstance(){return this.instance===void 0&&(this.instance=new zi),this.instance}get previousDevices(){return this._previousDevices}getDevices(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var s;if(((s=zi.userMediaPromiseMap)===null||s===void 0?void 0:s.size)>0){Nn.debug("awaiting getUserMedia promise");try{n?yield zi.userMediaPromiseMap.get(n):yield Promise.all(zi.userMediaPromiseMap.values())}catch{Nn.warn("error waiting for media permissons")}}let l=yield navigator.mediaDevices.enumerateDevices();if(a&&!(yc()&&r.hasDeviceInUse(n))&&(l.filter(h=>h.kind===n).length===0||l.some(h=>{const p=h.label==="",v=n?h.kind===n:!0;return p&&v}))){const h={video:n!=="audioinput"&&n!=="audiooutput",audio:n!=="videoinput"&&{deviceId:{ideal:"default"}}},p=yield navigator.mediaDevices.getUserMedia(h);l=yield navigator.mediaDevices.enumerateDevices(),p.getTracks().forEach(v=>{v.stop()})}return r._previousDevices=l,n&&(l=l.filter(c=>c.kind===n)),l}()})}normalizeDeviceId(e,n,r){return Q(this,void 0,void 0,function*(){if(n!==kT)return n;const a=yield this.getDevices(e),s=a.find(c=>c.deviceId===kT);if(!s){Nn.warn("could not reliably determine default device");return}const l=a.find(c=>c.deviceId!==kT&&c.groupId===(r??s.groupId));if(!l){Nn.warn("could not reliably determine default device");return}return l==null?void 0:l.deviceId})}hasDeviceInUse(e){return e?zi.userMediaPromiseMap.has(e):zi.userMediaPromiseMap.size>0}}zi.mediaDeviceKinds=["audioinput","audiooutput","videoinput"],zi.userMediaPromiseMap=new Map;var Og;(function(t){t[t.WAITING=0]="WAITING",t[t.RUNNING=1]="RUNNING",t[t.COMPLETED=2]="COMPLETED"})(Og||(Og={}));class PV{constructor(){this.pendingTasks=new Map,this.taskMutex=new to,this.nextTaskIndex=0}run(e){return Q(this,void 0,void 0,function*(){const n={id:this.nextTaskIndex++,enqueuedAt:Date.now(),status:Og.WAITING};this.pendingTasks.set(n.id,n);const r=yield this.taskMutex.lock();try{return n.executedAt=Date.now(),n.status=Og.RUNNING,yield e()}finally{n.status=Og.COMPLETED,this.pendingTasks.delete(n.id),r()}})}flush(){return Q(this,void 0,void 0,function*(){return this.run(()=>Q(this,void 0,void 0,function*(){}))})}snapshot(){return Array.from(this.pendingTasks.values())}}function DV(t,e){const n=new URL(gV(t));return e.forEach((r,a)=>{n.searchParams.set(a,r)}),SO(n,"rtc")}function AV(t){const e=new URL(vT(t));return SO(e,"validate")}function OV(t){return t.endsWith("/")?t:"".concat(t,"/")}function SO(t,e){return t.pathname="".concat(OV(t.pathname)).concat(e),t.toString()}const MV=["syncState","trickle","offer","answer","simulate","leave"];function LV(t){const e=MV.indexOf(t.case)>=0;return Nn.trace("request allowed to bypass queue:",{canPass:e,req:t}),e}var Or;(function(t){t[t.CONNECTING=0]="CONNECTING",t[t.CONNECTED=1]="CONNECTED",t[t.RECONNECTING=2]="RECONNECTING",t[t.DISCONNECTING=3]="DISCONNECTING",t[t.DISCONNECTED=4]="DISCONNECTED"})(Or||(Or={}));class TT{get currentState(){return this.state}get isDisconnected(){return this.state===Or.DISCONNECTING||this.state===Or.DISCONNECTED}get isEstablishingConnection(){return this.state===Or.CONNECTING||this.state===Or.RECONNECTING}getNextRequestId(){return this._requestId+=1,this._requestId}constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r;this.rtt=0,this.state=Or.DISCONNECTED,this.log=Nn,this._requestId=0,this.resetCallbacks=()=>{this.onAnswer=void 0,this.onLeave=void 0,this.onLocalTrackPublished=void 0,this.onLocalTrackUnpublished=void 0,this.onNegotiateRequested=void 0,this.onOffer=void 0,this.onRemoteMuteChanged=void 0,this.onSubscribedQualityUpdate=void 0,this.onTokenRefresh=void 0,this.onTrickle=void 0,this.onClose=void 0},this.log=lu((r=n.loggerName)!==null&&r!==void 0?r:xs.Signal),this.loggerContextCb=n.loggerContextCb,this.useJSON=e,this.requestQueue=new PV,this.queuedRequests=[],this.closingLock=new to,this.connectionLock=new to,this.state=Or.DISCONNECTED}get logContext(){var e,n;return(n=(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this))!==null&&n!==void 0?n:{}}join(e,n,r,a){return Q(this,void 0,void 0,function*(){return this.state=Or.CONNECTING,this.options=r,yield this.connect(e,n,r,a)})}reconnect(e,n,r,a){return Q(this,void 0,void 0,function*(){if(!this.options){this.log.warn("attempted to reconnect without signal options being set, ignoring",this.logContext);return}return this.state=Or.RECONNECTING,this.clearPingInterval(),yield this.connect(e,n,Object.assign(Object.assign({},this.options),{reconnect:!0,sid:r,reconnectReason:a}))})}connect(e,n,r,a){this.connectOptions=r;const s=pV(),l=NV(n,s,r),c=DV(e,l),h=AV(c);return new Promise((p,v)=>Q(this,void 0,void 0,function*(){const b=yield this.connectionLock.lock();try{const k=()=>Q(this,void 0,void 0,function*(){this.close(),clearTimeout(T),v(new br("room connection has been cancelled (signal)",Un.Cancelled))}),T=setTimeout(()=>{this.close(),v(new br("room connection has timed out (signal)",Un.ServerUnreachable))},r.websocketTimeout);a!=null&&a.aborted&&k(),a==null||a.addEventListener("abort",k);const E=new URL(c);E.searchParams.has("access_token")&&E.searchParams.set("access_token","<redacted>"),this.log.debug("connecting to ".concat(E),Object.assign({reconnect:r.reconnect,reconnectReason:r.reconnectReason},this.logContext)),this.ws&&(yield this.close(!1)),this.ws=new WebSocket(c),this.ws.binaryType="arraybuffer",this.ws.onopen=()=>{clearTimeout(T)},this.ws.onerror=R=>Q(this,void 0,void 0,function*(){if(this.state!==Or.CONNECTED){this.state=Or.DISCONNECTED,clearTimeout(T);try{const M=yield fetch(h);if(M.status.toFixed(0).startsWith("4")){const A=yield M.text();v(new br(A,Un.NotAllowed,M.status))}else v(new br("Encountered unknown websocket error during connection: ".concat(R.toString()),Un.InternalError,M.status))}catch(M){v(new br(M instanceof Error?M.message:"server was not reachable",Un.ServerUnreachable))}return}this.handleWSError(R)}),this.ws.onmessage=R=>Q(this,void 0,void 0,function*(){var M,A,U;let V;if(typeof R.data=="string"){const j=JSON.parse(R.data);V=tA.fromJson(j,{ignoreUnknownFields:!0})}else if(R.data instanceof ArrayBuffer)V=tA.fromBinary(new Uint8Array(R.data));else{this.log.error("could not decode websocket message: ".concat(typeof R.data),this.logContext);return}if(this.state!==Or.CONNECTED){let j=!1;if(((M=V.message)===null||M===void 0?void 0:M.case)==="join"?(this.state=Or.CONNECTED,a==null||a.removeEventListener("abort",k),this.pingTimeoutDuration=V.message.value.pingTimeout,this.pingIntervalDuration=V.message.value.pingInterval,this.pingTimeoutDuration&&this.pingTimeoutDuration>0&&(this.log.debug("ping config",Object.assign(Object.assign({},this.logContext),{timeout:this.pingTimeoutDuration,interval:this.pingIntervalDuration})),this.startPingInterval()),p(V.message.value)):this.state===Or.RECONNECTING&&V.message.case!=="leave"?(this.state=Or.CONNECTED,a==null||a.removeEventListener("abort",k),this.startPingInterval(),((A=V.message)===null||A===void 0?void 0:A.case)==="reconnect"?p(V.message.value):(this.log.debug("declaring signal reconnected without reconnect response received",this.logContext),p(void 0),j=!0)):this.isEstablishingConnection&&V.message.case==="leave"?v(new br("Received leave request while trying to (re)connect",Un.LeaveRequest,void 0,V.message.value.reason)):r.reconnect||v(new br("did not receive join response, got ".concat((U=V.message)===null||U===void 0?void 0:U.case," instead"),Un.InternalError)),!j)return}this.signalLatency&&(yield io(this.signalLatency)),this.handleSignalResponse(V)}),this.ws.onclose=R=>{this.isEstablishingConnection&&v(new br("Websocket got closed during a (re)connection attempt",Un.InternalError)),this.log.warn("websocket closed",Object.assign(Object.assign({},this.logContext),{reason:R.reason,code:R.code,wasClean:R.wasClean,state:this.state})),this.handleOnClose(R.reason)}}finally{b()}}))}close(){return Q(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){const r=yield e.closingLock.lock();try{if(e.clearPingInterval(),n&&(e.state=Or.DISCONNECTING),e.ws){e.ws.onmessage=null,e.ws.onopen=null,e.ws.onclose=null;const a=new Promise(s=>{e.ws?e.ws.onclose=()=>{s()}:s()});e.ws.readyState<e.ws.CLOSING&&(e.ws.close(),yield Promise.race([a,io(250)])),e.ws=void 0}}finally{n&&(e.state=Or.DISCONNECTED),r()}}()})}sendOffer(e){this.log.debug("sending offer",Object.assign(Object.assign({},this.logContext),{offerSdp:e.sdp})),this.sendRequest({case:"offer",value:sb(e)})}sendAnswer(e){return this.log.debug("sending answer",Object.assign(Object.assign({},this.logContext),{answerSdp:e.sdp})),this.sendRequest({case:"answer",value:sb(e)})}sendIceCandidate(e,n){return this.log.debug("sending ice candidate",Object.assign(Object.assign({},this.logContext),{candidate:e})),this.sendRequest({case:"trickle",value:new z1({candidateInit:JSON.stringify(e),target:n})})}sendMuteTrack(e,n){return this.sendRequest({case:"mute",value:new B1({sid:e,muted:n})})}sendAddTrack(e){return this.sendRequest({case:"addTrack",value:e})}sendUpdateLocalMetadata(e,n){return Q(this,arguments,void 0,function(r,a){var s=this;let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return function*(){const c=s.getNextRequestId();return yield s.sendRequest({case:"updateMetadata",value:new aA({requestId:c,metadata:r,name:a,attributes:l})}),c}()})}sendUpdateTrackSettings(e){this.sendRequest({case:"trackSetting",value:e})}sendUpdateSubscription(e){return this.sendRequest({case:"subscription",value:e})}sendSyncState(e){return this.sendRequest({case:"syncState",value:e})}sendUpdateVideoLayers(e,n){return this.sendRequest({case:"updateLayers",value:new iA({trackSid:e,layers:n})})}sendUpdateSubscriptionPermissions(e,n){return this.sendRequest({case:"subscriptionPermission",value:new lA({allParticipants:e,trackPermissions:n})})}sendSimulateScenario(e){return this.sendRequest({case:"simulate",value:e})}sendPing(){return Promise.all([this.sendRequest({case:"ping",value:Ur.parse(Date.now())}),this.sendRequest({case:"pingReq",value:new dA({timestamp:Ur.parse(Date.now()),rtt:Ur.parse(this.rtt)})})])}sendUpdateLocalAudioTrack(e,n){return this.sendRequest({case:"updateAudioTrack",value:new rA({trackSid:e,features:n})})}sendLeave(){return this.sendRequest({case:"leave",value:new W0({reason:ks.CLIENT_INITIATED,action:Fh.DISCONNECT})})}sendRequest(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return function*(){if(!a&&!LV(n)&&r.state===Or.RECONNECTING){r.queuedRequests.push(()=>Q(r,void 0,void 0,function*(){yield this.sendRequest(n,!0)}));return}if(a||(yield r.requestQueue.flush()),r.signalLatency&&(yield io(r.signalLatency)),!r.ws||r.ws.readyState!==r.ws.OPEN){r.log.error("cannot send signal request before connected, type: ".concat(n==null?void 0:n.case),r.logContext);return}const l=new s8({message:n});try{r.useJSON?r.ws.send(l.toJsonString()):r.ws.send(l.toBinary())}catch(c){r.log.error("error sending signal message",Object.assign(Object.assign({},r.logContext),{error:c}))}}()})}handleSignalResponse(e){var n,r;const a=e.message;if(a==null){this.log.debug("received unsupported message",this.logContext);return}let s=!1;if(a.case==="answer"){const l=CO(a.value);this.onAnswer&&this.onAnswer(l)}else if(a.case==="offer"){const l=CO(a.value);this.onOffer&&this.onOffer(l)}else if(a.case==="trickle"){const l=JSON.parse(a.value.candidateInit);this.onTrickle&&this.onTrickle(l,a.value.target)}else a.case==="update"?this.onParticipantUpdate&&this.onParticipantUpdate((n=a.value.participants)!==null&&n!==void 0?n:[]):a.case==="trackPublished"?this.onLocalTrackPublished&&this.onLocalTrackPublished(a.value):a.case==="speakersChanged"?this.onSpeakersChanged&&this.onSpeakersChanged((r=a.value.speakers)!==null&&r!==void 0?r:[]):a.case==="leave"?this.onLeave&&this.onLeave(a.value):a.case==="mute"?this.onRemoteMuteChanged&&this.onRemoteMuteChanged(a.value.sid,a.value.muted):a.case==="roomUpdate"?this.onRoomUpdate&&a.value.room&&this.onRoomUpdate(a.value.room):a.case==="connectionQuality"?this.onConnectionQuality&&this.onConnectionQuality(a.value):a.case==="streamStateUpdate"?this.onStreamStateUpdate&&this.onStreamStateUpdate(a.value):a.case==="subscribedQualityUpdate"?this.onSubscribedQualityUpdate&&this.onSubscribedQualityUpdate(a.value):a.case==="subscriptionPermissionUpdate"?this.onSubscriptionPermissionUpdate&&this.onSubscriptionPermissionUpdate(a.value):a.case==="refreshToken"?this.onTokenRefresh&&this.onTokenRefresh(a.value):a.case==="trackUnpublished"?this.onLocalTrackUnpublished&&this.onLocalTrackUnpublished(a.value):a.case==="subscriptionResponse"?this.onSubscriptionError&&this.onSubscriptionError(a.value):a.case==="pong"||(a.case==="pongResp"?(this.rtt=Date.now()-Number.parseInt(a.value.lastPingTimestamp.toString()),this.resetPingTimeout(),s=!0):a.case==="requestResponse"?this.onRequestResponse&&this.onRequestResponse(a.value):a.case==="trackSubscribed"?this.onLocalTrackSubscribed&&this.onLocalTrackSubscribed(a.value.trackSid):this.log.debug("unsupported message",Object.assign(Object.assign({},this.logContext),{msgCase:a.case})));s||this.resetPingTimeout()}setReconnected(){for(;this.queuedRequests.length>0;){const e=this.queuedRequests.shift();e&&this.requestQueue.run(e)}}handleOnClose(e){return Q(this,void 0,void 0,function*(){if(this.state===Or.DISCONNECTED)return;const n=this.onClose;yield this.close(),this.log.debug("websocket connection closed: ".concat(e),Object.assign(Object.assign({},this.logContext),{reason:e})),n&&n(e)})}handleWSError(e){this.log.error("websocket error",Object.assign(Object.assign({},this.logContext),{error:e}))}resetPingTimeout(){if(this.clearPingTimeout(),!this.pingTimeoutDuration){this.log.warn("ping timeout duration not set",this.logContext);return}this.pingTimeout=Qi.setTimeout(()=>{this.log.warn("ping timeout triggered. last pong received at: ".concat(new Date(Date.now()-this.pingTimeoutDuration*1e3).toUTCString()),this.logContext),this.handleOnClose("ping timeout")},this.pingTimeoutDuration*1e3)}clearPingTimeout(){this.pingTimeout&&Qi.clearTimeout(this.pingTimeout)}startPingInterval(){if(this.clearPingInterval(),this.resetPingTimeout(),!this.pingIntervalDuration){this.log.warn("ping interval duration not set",this.logContext);return}this.log.debug("start ping interval",this.logContext),this.pingInterval=Qi.setInterval(()=>{this.sendPing()},this.pingIntervalDuration*1e3)}clearPingInterval(){this.log.debug("clearing ping interval",this.logContext),this.clearPingTimeout(),this.pingInterval&&Qi.clearInterval(this.pingInterval)}}function CO(t){const e={type:"offer",sdp:t.sdp};switch(t.type){case"answer":case"offer":case"pranswer":case"rollback":e.type=t.type;break}return e}function sb(t){return new Yd({sdp:t.sdp,type:t.type})}function NV(t,e,n){var r;const a=new URLSearchParams;return a.set("access_token",t),n.reconnect&&(a.set("reconnect","1"),n.sid&&a.set("sid",n.sid)),a.set("auto_subscribe",n.autoSubscribe?"1":"0"),a.set("sdk",fl()?"reactnative":"js"),a.set("version",e.version),a.set("protocol",e.protocol.toString()),e.deviceModel&&a.set("device_model",e.deviceModel),e.os&&a.set("os",e.os),e.osVersion&&a.set("os_version",e.osVersion),e.browser&&a.set("browser",e.browser),e.browserVersion&&a.set("browser_version",e.browserVersion),n.adaptiveStream&&a.set("adaptive_stream","1"),n.reconnectReason&&a.set("reconnect_reason",n.reconnectReason.toString()),!((r=navigator.connection)===null||r===void 0)&&r.type&&a.set("network",navigator.connection.type),a}var _s={},xT={},wT={exports:{}},kO;function _T(){if(kO)return wT.exports;kO=1;var t=wT.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return e.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return e.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return e.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var n="candidate:%s %d %s %d %s %d typ %s";return n+=e.raddr!=null?" raddr %s rport %d":"%v%v",n+=e.tcptype!=null?" tcptype %s":"%v",e.generation!=null&&(n+=" generation %d"),n+=e["network-id"]!=null?" network-id %d":"%v",n+=e["network-cost"]!=null?" network-cost %d":"%v",n}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var n="ssrc:%d";return e.attribute!=null&&(n+=" %s",e.value!=null&&(n+=":%s")),n}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return e.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(e.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var n="mediaclk:";return n+=e.id!=null?"id=%s %s":"%v%s",n+=e.mediaClockValue!=null?"=%s":"",n+=e.rateNumerator!=null?" rate=%s":"",n+=e.rateDenominator!=null?"/%s":"",n}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};return Object.keys(t).forEach(function(e){var n=t[e];n.forEach(function(r){r.reg||(r.reg=/(.*)/),r.format||(r.format="%s")})}),wT.exports}var TO;function IV(){return TO||(TO=1,function(t){var e=function(c){return String(Number(c))===c?Number(c):c},n=function(c,h,p,v){if(v&&!p)h[v]=e(c[1]);else for(var b=0;b<p.length;b+=1)c[b+1]!=null&&(h[p[b]]=e(c[b+1]))},r=function(c,h,p){var v=c.name&&c.names;c.push&&!h[c.push]?h[c.push]=[]:v&&!h[c.name]&&(h[c.name]={});var b=c.push?{}:v?h[c.name]:h;n(p.match(c.reg),b,c.names,c.name),c.push&&h[c.push].push(b)},a=_T(),s=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(c){var h={},p=[],v=h;return c.split(/(\r\n|\r|\n)/).filter(s).forEach(function(b){var k=b[0],T=b.slice(2);k==="m"&&(p.push({rtp:[],fmtp:[]}),v=p[p.length-1]);for(var E=0;E<(a[k]||[]).length;E+=1){var R=a[k][E];if(R.reg.test(T))return r(R,v,T)}}),h.media=p,h};var l=function(c,h){var p=h.split(/=(.+)/,2);return p.length===2?c[p[0]]=e(p[1]):p.length===1&&h.length>1&&(c[p[0]]=void 0),c};t.parseParams=function(c){return c.split(/;\s?/).reduce(l,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(c){return c.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(c){for(var h=[],p=c.split(" ").map(e),v=0;v<p.length;v+=3)h.push({component:p[v],ip:p[v+1],port:p[v+2]});return h},t.parseImageAttributes=function(c){return c.split(" ").map(function(h){return h.substring(1,h.length-1).split(",").reduce(l,{})})},t.parseSimulcastStreamList=function(c){return c.split(";").map(function(h){return h.split(",").map(function(p){var v,b=!1;return p[0]!=="~"?v=e(p):(v=e(p.substring(1,p.length)),b=!0),{scid:v,paused:b}})})}}(xT)),xT}var ET,xO;function UV(){if(xO)return ET;xO=1;var t=_T(),e=/%[sdv%]/g,n=function(l){var c=1,h=arguments,p=h.length;return l.replace(e,function(v){if(c>=p)return v;var b=h[c];switch(c+=1,v){case"%%":return"%";case"%s":return String(b);case"%d":return Number(b);case"%v":return""}})},r=function(l,c,h){var p=c.format instanceof Function?c.format(c.push?h:h[c.name]):c.format,v=[l+"="+p];if(c.names)for(var b=0;b<c.names.length;b+=1){var k=c.names[b];c.name?v.push(h[c.name][k]):v.push(h[c.names[b]])}else v.push(h[c.name]);return n.apply(null,v)},a=["v","o","s","i","u","e","p","c","b","t","r","z","a"],s=["i","c","b","a"];return ET=function(l,c){c=c||{},l.version==null&&(l.version=0),l.name==null&&(l.name=" "),l.media.forEach(function(b){b.payloads==null&&(b.payloads="")});var h=c.outerOrder||a,p=c.innerOrder||s,v=[];return h.forEach(function(b){t[b].forEach(function(k){k.name in l&&l[k.name]!=null?v.push(r(b,k,l)):k.push in l&&l[k.push]!=null&&l[k.push].forEach(function(T){v.push(r(b,k,T))})})}),l.media.forEach(function(b){v.push(r("m",t.m[0],b)),p.forEach(function(k){t[k].forEach(function(T){T.name in b&&b[T.name]!=null?v.push(r(k,T,b)):T.push in b&&b[T.push]!=null&&b[T.push].forEach(function(E){v.push(r(k,T,E))})})})}),v.join(`\r
276
+ `);t.RTCSessionDescription&&a instanceof t.RTCSessionDescription?arguments[0]=new t.RTCSessionDescription({type:a.type,sdp:s}):a.sdp=s}return n.apply(this,arguments)}}function eb(t,e){if(!(t.RTCPeerConnection&&t.RTCPeerConnection.prototype))return;const n=t.RTCPeerConnection.prototype.addIceCandidate;!n||n.length===0||(t.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(e.browser==="chrome"&&e.version<78||e.browser==="firefox"&&e.version<68||e.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function tb(t,e){if(!(t.RTCPeerConnection&&t.RTCPeerConnection.prototype))return;const n=t.RTCPeerConnection.prototype.setLocalDescription;!n||n.length===0||(t.RTCPeerConnection.prototype.setLocalDescription=function(){let a=arguments[0]||{};if(typeof a!="object"||a.type&&a.sdp)return n.apply(this,arguments);if(a={type:a.type,sdp:a.sdp},!a.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":a.type="offer";break;default:a.type="answer";break}return a.sdp||a.type!=="offer"&&a.type!=="answer"?n.apply(this,[a]):(a.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(l=>n.apply(this,[l]))})}var B8=Object.freeze({__proto__:null,removeExtmapAllowMixed:eT,shimAddIceCandidateNullOrEmpty:eb,shimConnectionState:J1,shimMaxMessageSize:X0,shimParameterlessSetLocalDescription:tb,shimRTCIceCandidate:Q0,shimRTCIceCandidateRelayProtocol:X1,shimSendThrowTypeError:J0});function H8(){let{window:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0};const n=vA,r=F8(t),a={browserDetails:r,commonShim:B8,extractVersion:Z0,disableLog:I8,disableWarnings:U8,sdp:z8};switch(r.browser){case"chrome":if(!DA||!K1||!e.shimChrome)return n("Chrome shim is not included in this adapter release."),a;if(r.version===null)return n("Chrome shim can not determine version, not shimming."),a;n("adapter.js shimming chrome."),a.browserShim=DA,eb(t,r),tb(t),kA(t,r),TA(t),K1(t,r),xA(t),RA(t,r),wA(t),_A(t),PA(t,r),Q0(t),X1(t),J1(t),X0(t,r),J0(t),eT(t,r);break;case"firefox":if(!zA||!Z1||!e.shimFirefox)return n("Firefox shim is not included in this adapter release."),a;n("adapter.js shimming firefox."),a.browserShim=zA,eb(t,r),tb(t),AA(t,r),Z1(t,r),OA(t),NA(t),MA(t),LA(t),IA(t),UA(t),FA(t),jA(t),VA(t),Q0(t),J1(t),X0(t,r),J0(t);break;case"safari":if(!QA||!e.shimSafari)return n("Safari shim is not included in this adapter release."),a;n("adapter.js shimming safari."),a.browserShim=QA,eb(t,r),tb(t),GA(t),KA(t),$A(t),BA(t),HA(t),YA(t),qA(t),ZA(t),Q0(t),X1(t),X0(t,r),J0(t),eT(t,r);break;default:n("Unsupported browser!");break}return a}H8({window:typeof window>"u"?void 0:window});const $8=10,nb="lk_e2ee",q8={sharedKey:!1,ratchetSalt:"LKFrameEncryptionKey",ratchetWindowSize:8,failureTolerance:$8,keyringSize:16};var mc;(function(t){t.SetKey="setKey",t.RatchetRequest="ratchetRequest",t.KeyRatcheted="keyRatcheted"})(mc||(mc={}));var eO;(function(t){t.KeyRatcheted="keyRatcheted"})(eO||(eO={}));var gc;(function(t){t.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",t.EncryptionError="encryptionError"})(gc||(gc={}));var tO;(function(t){t.Error="cryptorError"})(tO||(tO={}));function W8(){return G8()||tT()}function tT(){return typeof window.RTCRtpScriptTransform<"u"}function G8(){return typeof window.RTCRtpSender<"u"&&typeof window.RTCRtpSender.prototype.createEncodedStreams<"u"}class Dse extends dl.EventEmitter{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(),this.onKeyRatcheted=(n,r)=>{Nn.debug("key ratcheted event received",{material:n,keyIndex:r})},this.keyInfoMap=new Map,this.options=Object.assign(Object.assign({},q8),e),this.on(mc.KeyRatcheted,this.onKeyRatcheted)}onSetEncryptionKey(e,n,r){const a={key:e,participantIdentity:n,keyIndex:r};if(!this.options.sharedKey&&!n)throw new Error("participant identity needs to be passed for encryption key if sharedKey option is false");this.keyInfoMap.set("".concat(n??"shared","-").concat(r??0),a),this.emit(mc.SetKey,a)}getKeys(){return Array.from(this.keyInfoMap.values())}getOptions(){return this.options}ratchetKey(e,n){this.emit(mc.RatchetRequest,e,n)}}class vc extends Error{constructor(e,n){super(n||"an error has occured"),this.name="LiveKitError",this.code=e}}var Un;(function(t){t[t.NotAllowed=0]="NotAllowed",t[t.ServerUnreachable=1]="ServerUnreachable",t[t.InternalError=2]="InternalError",t[t.Cancelled=3]="Cancelled",t[t.LeaveRequest=4]="LeaveRequest"})(Un||(Un={}));class br extends vc{constructor(e,n,r,a){super(1,e),this.name="ConnectionError",this.status=r,this.reason=n,this.context=a,this.reasonName=Un[n]}}class nT extends vc{constructor(e){super(21,e??"device is unsupported"),this.name="DeviceUnsupportedError"}}class uu extends vc{constructor(e){super(20,e??"track is invalid"),this.name="TrackInvalidError"}}class Y8 extends vc{constructor(e){super(10,e??"unsupported server"),this.name="UnsupportedServer"}}class xi extends vc{constructor(e){super(12,e??"unexpected connection state"),this.name="UnexpectedConnectionState"}}class rT extends vc{constructor(e){super(13,e??"unable to negotiate"),this.name="NegotiationError"}}class iT extends vc{constructor(e,n){super(15,e),this.name="PublishTrackError",this.status=n}}class nO extends vc{constructor(e,n){super(15,e),this.reason=n,this.reasonName=typeof n=="string"?n:q1[n]}}var rb;(function(t){t.PermissionDenied="PermissionDenied",t.NotFound="NotFound",t.DeviceInUse="DeviceInUse",t.Other="Other"})(rb||(rb={})),function(t){function e(n){if(n&&"name"in n)return n.name==="NotFoundError"||n.name==="DevicesNotFoundError"?t.NotFound:n.name==="NotAllowedError"||n.name==="PermissionDeniedError"?t.PermissionDenied:n.name==="NotReadableError"||n.name==="TrackStartError"?t.DeviceInUse:t.Other}t.getFailure=e}(rb||(rb={}));var rO;(function(t){t[t.InvalidKey=0]="InvalidKey",t[t.MissingKey=1]="MissingKey",t[t.InternalError=2]="InternalError"})(rO||(rO={}));var Ee;(function(t){t.Connected="connected",t.Reconnecting="reconnecting",t.SignalReconnecting="signalReconnecting",t.Reconnected="reconnected",t.Disconnected="disconnected",t.ConnectionStateChanged="connectionStateChanged",t.MediaDevicesChanged="mediaDevicesChanged",t.ParticipantConnected="participantConnected",t.ParticipantDisconnected="participantDisconnected",t.TrackPublished="trackPublished",t.TrackSubscribed="trackSubscribed",t.TrackSubscriptionFailed="trackSubscriptionFailed",t.TrackUnpublished="trackUnpublished",t.TrackUnsubscribed="trackUnsubscribed",t.TrackMuted="trackMuted",t.TrackUnmuted="trackUnmuted",t.LocalTrackPublished="localTrackPublished",t.LocalTrackUnpublished="localTrackUnpublished",t.LocalAudioSilenceDetected="localAudioSilenceDetected",t.ActiveSpeakersChanged="activeSpeakersChanged",t.ParticipantMetadataChanged="participantMetadataChanged",t.ParticipantNameChanged="participantNameChanged",t.ParticipantAttributesChanged="participantAttributesChanged",t.RoomMetadataChanged="roomMetadataChanged",t.DataReceived="dataReceived",t.SipDTMFReceived="sipDTMFReceived",t.TranscriptionReceived="transcriptionReceived",t.ConnectionQualityChanged="connectionQualityChanged",t.TrackStreamStateChanged="trackStreamStateChanged",t.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",t.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",t.AudioPlaybackStatusChanged="audioPlaybackChanged",t.VideoPlaybackStatusChanged="videoPlaybackChanged",t.MediaDevicesError="mediaDevicesError",t.ParticipantPermissionsChanged="participantPermissionsChanged",t.SignalConnected="signalConnected",t.RecordingStatusChanged="recordingStatusChanged",t.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",t.EncryptionError="encryptionError",t.DCBufferStatusChanged="dcBufferStatusChanged",t.ActiveDeviceChanged="activeDeviceChanged",t.ChatMessage="chatMessage",t.LocalTrackSubscribed="localTrackSubscribed",t.MetricsReceived="metricsReceived"})(Ee||(Ee={}));var Ie;(function(t){t.TrackPublished="trackPublished",t.TrackSubscribed="trackSubscribed",t.TrackSubscriptionFailed="trackSubscriptionFailed",t.TrackUnpublished="trackUnpublished",t.TrackUnsubscribed="trackUnsubscribed",t.TrackMuted="trackMuted",t.TrackUnmuted="trackUnmuted",t.LocalTrackPublished="localTrackPublished",t.LocalTrackUnpublished="localTrackUnpublished",t.ParticipantMetadataChanged="participantMetadataChanged",t.ParticipantNameChanged="participantNameChanged",t.DataReceived="dataReceived",t.SipDTMFReceived="sipDTMFReceived",t.TranscriptionReceived="transcriptionReceived",t.IsSpeakingChanged="isSpeakingChanged",t.ConnectionQualityChanged="connectionQualityChanged",t.TrackStreamStateChanged="trackStreamStateChanged",t.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",t.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",t.MediaDevicesError="mediaDevicesError",t.AudioStreamAcquired="audioStreamAcquired",t.ParticipantPermissionsChanged="participantPermissionsChanged",t.PCTrackAdded="pcTrackAdded",t.AttributesChanged="attributesChanged",t.LocalTrackSubscribed="localTrackSubscribed",t.ChatMessage="chatMessage"})(Ie||(Ie={}));var tt;(function(t){t.TransportsCreated="transportsCreated",t.Connected="connected",t.Disconnected="disconnected",t.Resuming="resuming",t.Resumed="resumed",t.Restarting="restarting",t.Restarted="restarted",t.SignalResumed="signalResumed",t.SignalRestarted="signalRestarted",t.Closing="closing",t.MediaTrackAdded="mediaTrackAdded",t.ActiveSpeakersUpdate="activeSpeakersUpdate",t.DataPacketReceived="dataPacketReceived",t.RTPVideoMapUpdate="rtpVideoMapUpdate",t.DCBufferStatusChanged="dcBufferStatusChanged",t.ParticipantUpdate="participantUpdate",t.RoomUpdate="roomUpdate",t.SpeakersChanged="speakersChanged",t.StreamStateChanged="streamStateChanged",t.ConnectionQualityUpdate="connectionQualityUpdate",t.SubscriptionError="subscriptionError",t.SubscriptionPermissionUpdate="subscriptionPermissionUpdate",t.RemoteMute="remoteMute",t.SubscribedQualityUpdate="subscribedQualityUpdate",t.LocalTrackUnpublished="localTrackUnpublished",t.LocalTrackSubscribed="localTrackSubscribed",t.Offline="offline",t.SignalRequestResponse="signalRequestResponse",t.SignalConnected="signalConnected"})(tt||(tt={}));var Qe;(function(t){t.Message="message",t.Muted="muted",t.Unmuted="unmuted",t.Restarted="restarted",t.Ended="ended",t.Subscribed="subscribed",t.Unsubscribed="unsubscribed",t.UpdateSettings="updateSettings",t.UpdateSubscription="updateSubscription",t.AudioPlaybackStarted="audioPlaybackStarted",t.AudioPlaybackFailed="audioPlaybackFailed",t.AudioSilenceDetected="audioSilenceDetected",t.VisibilityChanged="visibilityChanged",t.VideoDimensionsChanged="videoDimensionsChanged",t.VideoPlaybackStarted="videoPlaybackStarted",t.VideoPlaybackFailed="videoPlaybackFailed",t.ElementAttached="elementAttached",t.ElementDetached="elementDetached",t.UpstreamPaused="upstreamPaused",t.UpstreamResumed="upstreamResumed",t.SubscriptionPermissionChanged="subscriptionPermissionChanged",t.SubscriptionStatusChanged="subscriptionStatusChanged",t.SubscriptionFailed="subscriptionFailed",t.TrackProcessorUpdate="trackProcessorUpdate",t.AudioTrackFeatureUpdate="audioTrackFeatureUpdate",t.TranscriptionReceived="transcriptionReceived",t.TimeSyncUpdate="timeSyncUpdate"})(Qe||(Qe={}));function K8(t){return typeof t>"u"?t:typeof structuredClone=="function"?structuredClone(t):JSON.parse(JSON.stringify(t))}const Z8=/version\/(\d+(\.?_?\d+)+)/i;let aT;function ws(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(typeof navigator>"u")return;const n=navigator.userAgent.toLowerCase();if(aT===void 0||e){const r=Q8.find(a=>{let{test:s}=a;return s.test(n)});aT=r==null?void 0:r.describe(n)}return aT}const Q8=[{test:/firefox|iceweasel|fxios/i,describe(t){return{name:"Firefox",version:ib(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t),os:t.toLowerCase().includes("fxios")?"iOS":void 0,osVersion:oT(t)}}},{test:/chrom|crios|crmo/i,describe(t){return{name:"Chrome",version:ib(/(?:chrome|chromium|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t),os:t.toLowerCase().includes("crios")?"iOS":void 0,osVersion:oT(t)}}},{test:/safari|applewebkit/i,describe(t){return{name:"Safari",version:ib(Z8,t),os:t.includes("mobile/")?"iOS":"macOS",osVersion:oT(t)}}}];function ib(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;const r=e.match(t);return r&&r.length>=n&&r[n]||""}function oT(t){return t.includes("mac os")?ib(/\(.+?(\d+_\d+(:?_\d+)?)/,t,1).replace(/_/g,"."):void 0}var X8="2.11.4";const J8=X8,eV=15;class Qi{}Qi.setTimeout=function(){return setTimeout(...arguments)},Qi.setInterval=function(){return setInterval(...arguments)},Qi.clearTimeout=function(){return clearTimeout(...arguments)},Qi.clearInterval=function(){return clearInterval(...arguments)};const tV=5e3,Rg=[];var Go;(function(t){t[t.LOW=0]="LOW",t[t.MEDIUM=1]="MEDIUM",t[t.HIGH=2]="HIGH"})(Go||(Go={}));class De extends dl.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var a;super(),this.attachedElements=[],this.isMuted=!1,this.streamState=De.StreamState.Active,this.isInBackground=!1,this._currentBitrate=0,this.log=Nn,this.appVisibilityChangedListener=()=>{this.backgroundTimeout&&clearTimeout(this.backgroundTimeout),document.visibilityState==="hidden"?this.backgroundTimeout=setTimeout(()=>this.handleAppVisibilityChanged(),tV):this.handleAppVisibilityChanged()},this.log=lu((a=r.loggerName)!==null&&a!==void 0?a:xs.Track),this.loggerContextCb=r.loggerContextCb,this.setMaxListeners(100),this.kind=n,this._mediaStreamTrack=e,this._mediaStreamID=e.id,this.source=De.Source.Unknown}get logContext(){var e;return Object.assign(Object.assign({},(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this)),ar(this))}get currentBitrate(){return this._currentBitrate}get mediaStreamTrack(){return this._mediaStreamTrack}get mediaStreamID(){return this._mediaStreamID}attach(e){let n="audio";this.kind===De.Kind.Video&&(n="video"),this.attachedElements.length===0&&this.kind===De.Kind.Video&&this.addAppVisibilityListener(),e||(n==="audio"&&(Rg.forEach(s=>{s.parentElement===null&&!e&&(e=s)}),e&&Rg.splice(Rg.indexOf(e),1)),e||(e=document.createElement(n))),this.attachedElements.includes(e)||this.attachedElements.push(e),Vh(this.mediaStreamTrack,e);const r=e.srcObject.getTracks(),a=r.some(s=>s.kind==="audio");return e.play().then(()=>{this.emit(a?Qe.AudioPlaybackStarted:Qe.VideoPlaybackStarted)}).catch(s=>{s.name==="NotAllowedError"?this.emit(a?Qe.AudioPlaybackFailed:Qe.VideoPlaybackFailed,s):s.name==="AbortError"?Nn.debug("".concat(a?"audio":"video"," playback aborted, likely due to new play request")):Nn.warn("could not playback ".concat(a?"audio":"video"),s),a&&e&&r.some(l=>l.kind==="video")&&s.name==="NotAllowedError"&&(e.muted=!0,e.play().catch(()=>{}))}),this.emit(Qe.ElementAttached,e),e}detach(e){try{if(e){zh(this.mediaStreamTrack,e);const r=this.attachedElements.indexOf(e);return r>=0&&(this.attachedElements.splice(r,1),this.recycleElement(e),this.emit(Qe.ElementDetached,e)),e}const n=[];return this.attachedElements.forEach(r=>{zh(this.mediaStreamTrack,r),n.push(r),this.recycleElement(r),this.emit(Qe.ElementDetached,r)}),this.attachedElements=[],n}finally{this.attachedElements.length===0&&this.removeAppVisibilityListener()}}stop(){this.stopMonitor(),this._mediaStreamTrack.stop()}enable(){this._mediaStreamTrack.enabled=!0}disable(){this._mediaStreamTrack.enabled=!1}stopMonitor(){this.monitorInterval&&clearInterval(this.monitorInterval),this.timeSyncHandle&&cancelAnimationFrame(this.timeSyncHandle)}updateLoggerOptions(e){e.loggerName&&(this.log=lu(e.loggerName)),e.loggerContextCb&&(this.loggerContextCb=e.loggerContextCb)}recycleElement(e){if(e instanceof HTMLAudioElement){let n=!0;e.pause(),Rg.forEach(r=>{r.parentElement||(n=!1)}),n&&Rg.push(e)}}handleAppVisibilityChanged(){return Q(this,void 0,void 0,function*(){this.isInBackground=document.visibilityState==="hidden",!this.isInBackground&&this.kind===De.Kind.Video&&setTimeout(()=>this.attachedElements.forEach(e=>e.play().catch(()=>{})),0)})}addAppVisibilityListener(){ao()?(this.isInBackground=document.visibilityState==="hidden",document.addEventListener("visibilitychange",this.appVisibilityChangedListener)):this.isInBackground=!1}removeAppVisibilityListener(){ao()&&document.removeEventListener("visibilitychange",this.appVisibilityChangedListener)}}function Vh(t,e){let n;e.srcObject instanceof MediaStream?n=e.srcObject:n=new MediaStream;let r;t.kind==="audio"?r=n.getAudioTracks():r=n.getVideoTracks(),r.includes(t)||(r.forEach(a=>{n.removeTrack(a)}),n.addTrack(t)),(!yc()||!(e instanceof HTMLVideoElement))&&(e.autoplay=!0),e.muted=n.getAudioTracks().length===0,e instanceof HTMLVideoElement&&(e.playsInline=!0),e.srcObject!==n&&(e.srcObject=n,(yc()||Bh())&&e instanceof HTMLVideoElement&&setTimeout(()=>{e.srcObject=n,e.play().catch(()=>{})},0))}function zh(t,e){if(e.srcObject instanceof MediaStream){const n=e.srcObject;n.removeTrack(t),n.getTracks().length>0?e.srcObject=n:e.srcObject=null}}(function(t){let e;(function(p){p.Audio="audio",p.Video="video",p.Unknown="unknown"})(e=t.Kind||(t.Kind={}));let n;(function(p){p.Camera="camera",p.Microphone="microphone",p.ScreenShare="screen_share",p.ScreenShareAudio="screen_share_audio",p.Unknown="unknown"})(n=t.Source||(t.Source={}));let r;(function(p){p.Active="active",p.Paused="paused",p.Unknown="unknown"})(r=t.StreamState||(t.StreamState={}));function a(p){switch(p){case e.Audio:return Cs.AUDIO;case e.Video:return Cs.VIDEO;default:return Cs.DATA}}t.kindToProto=a;function s(p){switch(p){case Cs.AUDIO:return e.Audio;case Cs.VIDEO:return e.Video;default:return e.Unknown}}t.kindFromProto=s;function l(p){switch(p){case n.Camera:return gi.CAMERA;case n.Microphone:return gi.MICROPHONE;case n.ScreenShare:return gi.SCREEN_SHARE;case n.ScreenShareAudio:return gi.SCREEN_SHARE_AUDIO;default:return gi.UNKNOWN}}t.sourceToProto=l;function c(p){switch(p){case gi.CAMERA:return n.Camera;case gi.MICROPHONE:return n.Microphone;case gi.SCREEN_SHARE:return n.ScreenShare;case gi.SCREEN_SHARE_AUDIO:return n.ScreenShareAudio;default:return n.Unknown}}t.sourceFromProto=c;function h(p){switch(p){case F1.ACTIVE:return r.Active;case F1.PAUSED:return r.Paused;default:return r.Unknown}}t.streamStateFromProto=h})(De||(De={}));class gr{constructor(e,n,r,a,s){if(typeof e=="object")this.width=e.width,this.height=e.height,this.aspectRatio=e.aspectRatio,this.encoding={maxBitrate:e.maxBitrate,maxFramerate:e.maxFramerate,priority:e.priority};else if(n!==void 0&&r!==void 0)this.width=e,this.height=n,this.aspectRatio=e/n,this.encoding={maxBitrate:r,maxFramerate:a,priority:s};else throw new TypeError("Unsupported options: provide at least width, height and maxBitrate")}get resolution(){return{width:this.width,height:this.height,frameRate:this.encoding.maxFramerate,aspectRatio:this.aspectRatio}}}const nV=["vp8","h264"],rV=["vp8","h264","vp9","av1"];function iV(t){return!!nV.find(e=>e===t)}var iO;(function(t){t[t.PREFER_REGRESSION=0]="PREFER_REGRESSION",t[t.SIMULCAST=1]="SIMULCAST",t[t.REGRESSION=2]="REGRESSION"})(iO||(iO={}));var sT;(function(t){t.telephone={maxBitrate:12e3},t.speech={maxBitrate:24e3},t.music={maxBitrate:48e3},t.musicStereo={maxBitrate:64e3},t.musicHighQuality={maxBitrate:96e3},t.musicHighQualityStereo={maxBitrate:128e3}})(sT||(sT={}));const Pg={h90:new gr(160,90,9e4,20),h180:new gr(320,180,16e4,20),h216:new gr(384,216,18e4,20),h360:new gr(640,360,45e4,20),h540:new gr(960,540,8e5,25),h720:new gr(1280,720,17e5,30),h1080:new gr(1920,1080,3e6,30),h1440:new gr(2560,1440,5e6,30),h2160:new gr(3840,2160,8e6,30)},lT={h120:new gr(160,120,7e4,20),h180:new gr(240,180,125e3,20),h240:new gr(320,240,14e4,20),h360:new gr(480,360,33e4,20),h480:new gr(640,480,5e5,20),h540:new gr(720,540,6e5,25),h720:new gr(960,720,13e5,30),h1080:new gr(1440,1080,23e5,30),h1440:new gr(1920,1440,38e5,30)},uT={h360fps3:new gr(640,360,2e5,3,"medium"),h360fps15:new gr(640,360,4e5,15,"medium"),h720fps5:new gr(1280,720,8e5,5,"medium"),h720fps15:new gr(1280,720,15e5,15,"medium"),h720fps30:new gr(1280,720,2e6,30,"medium"),h1080fps15:new gr(1920,1080,25e5,15,"medium"),h1080fps30:new gr(1920,1080,5e6,30,"medium"),original:new gr(0,0,7e6,30,"medium")},aV="|",aO="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";function oV(t){const e=t.split(aV);return e.length>1?[e[0],t.substr(e[0].length+1)]:[t,""]}function io(t){return Q(this,void 0,void 0,function*(){return new Promise(e=>Qi.setTimeout(e,t))})}function cT(){return"addTransceiver"in RTCPeerConnection.prototype}function dT(){return"addTrack"in RTCPeerConnection.prototype}function sV(){if(!("getCapabilities"in RTCRtpSender)||yc())return!1;const t=RTCRtpSender.getCapabilities("video");let e=!1;if(t){for(const n of t.codecs)if(n.mimeType==="video/AV1"){e=!0;break}}return e}function lV(){if(!("getCapabilities"in RTCRtpSender)||Bh())return!1;if(yc()){const n=ws();if(n!=null&&n.version&&bc(n.version,"16")<0)return!1}const t=RTCRtpSender.getCapabilities("video");let e=!1;if(t){for(const n of t.codecs)if(n.mimeType==="video/VP9"){e=!0;break}}return e}function Dg(t){return t==="av1"||t==="vp9"}function fT(t){return document?(t||(t=document.createElement("audio")),"setSinkId"in t):!1}function uV(){return typeof RTCPeerConnection>"u"?!1:cT()||dT()}function Bh(){var t;return((t=ws())===null||t===void 0?void 0:t.name)==="Firefox"}function yc(){var t;return((t=ws())===null||t===void 0?void 0:t.name)==="Safari"}function cV(){const t=ws();return(t==null?void 0:t.name)==="Safari"&&t.version.startsWith("17.")}function oO(){var t,e;return ao()?(e=(t=navigator.userAgentData)===null||t===void 0?void 0:t.mobile)!==null&&e!==void 0?e:/Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent):!1}function dV(){const t=ws(),e="17.2";if(t)return t.name!=="Safari"&&t.os!=="iOS"||t.os==="iOS"&&t.osVersion&&bc(e,t.osVersion)>=0?!0:t.name==="Safari"&&bc(e,t.version)>=0}function ao(){return typeof document<"u"}function fl(){return navigator.product=="ReactNative"}function hT(t){return t.hostname.endsWith(".livekit.cloud")||t.hostname.endsWith(".livekit.run")}function sO(){if(global&&global.LiveKitReactNativeGlobal)return global.LiveKitReactNativeGlobal}function lO(){if(!fl())return;let t=sO();if(t)return t.platform}function uO(){if(ao())return window.devicePixelRatio;if(fl()){let t=sO();if(t)return t.devicePixelRatio}return 1}function bc(t,e){const n=t.split("."),r=e.split("."),a=Math.min(n.length,r.length);for(let s=0;s<a;++s){const l=parseInt(n[s],10),c=parseInt(r[s],10);if(l>c)return 1;if(l<c)return-1;if(s===a-1&&l===c)return 0}return t===""&&e!==""?-1:e===""?1:n.length==r.length?0:n.length<r.length?-1:1}function fV(t){for(const e of t)e.target.handleResize(e)}function hV(t){for(const e of t)e.target.handleVisibilityChanged(e)}let pT=null;const cO=()=>(pT||(pT=new ResizeObserver(fV)),pT);let mT=null;const dO=()=>(mT||(mT=new IntersectionObserver(hV,{root:null,rootMargin:"0px"})),mT);function pV(){var t;const e=new i8({sdk:KD.JS,protocol:eV,version:J8});return fl()&&(e.os=(t=lO())!==null&&t!==void 0?t:""),e}function fO(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:16,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:16,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;const a=document.createElement("canvas");a.width=t,a.height=e;const s=a.getContext("2d");s==null||s.fillRect(0,0,a.width,a.height),r&&s&&(s.beginPath(),s.arc(t/2,e/2,50,0,Math.PI*2,!0),s.closePath(),s.fillStyle="grey",s.fill());const l=a.captureStream(),[c]=l.getTracks();if(!c)throw Error("Could not get empty media stream video track");return c.enabled=n,c}let Ag;function gT(){if(!Ag){const t=new AudioContext,e=t.createOscillator(),n=t.createGain();n.gain.setValueAtTime(0,0);const r=t.createMediaStreamDestination();if(e.connect(n),n.connect(r),e.start(),[Ag]=r.stream.getAudioTracks(),!Ag)throw Error("Could not get empty media stream audio track");Ag.enabled=!1}return Ag.clone()}class hO{constructor(e,n){this.onFinally=n,this.promise=new Promise((r,a)=>Q(this,void 0,void 0,function*(){this.resolve=r,this.reject=a,e&&(yield e(r,a))})).finally(()=>{var r;return(r=this.onFinally)===null||r===void 0?void 0:r.call(this)})}}function mV(t){return rV.includes(t)}function Sc(t){if(typeof t=="string"||typeof t=="number")return t;if(Array.isArray(t))return t[0];if(t.exact)return Array.isArray(t.exact)?t.exact[0]:t.exact;if(t.ideal)return Array.isArray(t.ideal)?t.ideal[0]:t.ideal;throw Error("could not unwrap constraint")}function gV(t){return t.startsWith("http")?t.replace(/^(http)/,"ws"):t}function vT(t){return t.startsWith("ws")?t.replace(/^(ws)/,"http"):t}function vV(t,e){return t.segments.map(n=>{let{id:r,text:a,language:s,startTime:l,endTime:c,final:h}=n;var p;const v=(p=e.get(r))!==null&&p!==void 0?p:Date.now(),b=Date.now();return h?e.delete(r):e.set(r,v),{id:r,text:a,startTime:Number.parseInt(l.toString()),endTime:Number.parseInt(c.toString()),final:h,language:s,firstReceivedTime:v,lastReceivedTime:b}})}function yV(t){const{id:e,timestamp:n,message:r,editTimestamp:a}=t;return{id:e,timestamp:Number.parseInt(n.toString()),editTimestamp:a?Number.parseInt(a.toString()):void 0,message:r}}function pO(t){switch(t.reason){case Un.LeaveRequest:return t.context;case Un.Cancelled:return ks.CLIENT_INITIATED;case Un.NotAllowed:return ks.USER_REJECTED;case Un.ServerUnreachable:return ks.JOIN_FAILURE;default:return ks.UNKNOWN_REASON}}function ab(t){return t!==void 0?Number(t):void 0}function Zd(t){return t!==void 0?BigInt(t):void 0}function Hh(t){return!!t&&!(t instanceof MediaStreamTrack)&&t.isLocal}function cu(t){return!!t&&t.kind==De.Kind.Audio}function $h(t){return!!t&&t.kind==De.Kind.Video}function Cc(t){return Hh(t)&&$h(t)}function Qd(t){return Hh(t)&&cu(t)}function yT(t){return!!t&&!t.isLocal}function bV(t){return!!t&&!t.isLocal}function bT(t){return yT(t)&&$h(t)}function SV(t){return t.isLocal}function CV(t,e){const n=[];let r=new TextEncoder().encode(t);for(;r.length>e;){let a=e;for(;a>0;){const s=r[a];if(s!==void 0&&(s&192)!==128)break;a--}n.push(r.slice(0,a)),r=r.slice(a)}return r.length>0&&n.push(r),n}function mO(t,e,n){var r,a,s,l;const{optionsWithoutProcessor:c,audioProcessor:h,videoProcessor:p}=bO(t??{}),v=e==null?void 0:e.processor,b=n==null?void 0:n.processor,k=c??{};return k.audio===!0&&(k.audio={}),k.video===!0&&(k.video={}),k.audio&&(ST(k.audio,e),(r=(s=k.audio).deviceId)!==null&&r!==void 0||(s.deviceId={ideal:"default"}),(h||v)&&(k.audio.processor=h??v)),k.video&&(ST(k.video,n),(a=(l=k.video).deviceId)!==null&&a!==void 0||(l.deviceId={ideal:"default"}),(p||b)&&(k.video.processor=p??b)),k}function ST(t,e){return Object.keys(e).forEach(n=>{t[n]===void 0&&(t[n]=e[n])}),t}function CT(t){var e,n,r,a;const s={};if(t.video)if(typeof t.video=="object"){const l={},c=l,h=t.video;Object.keys(h).forEach(p=>{switch(p){case"resolution":ST(c,h.resolution);break;default:c[p]=h[p]}}),s.video=l,(e=(r=s.video).deviceId)!==null&&e!==void 0||(r.deviceId={ideal:"default"})}else s.video=t.video?{deviceId:{ideal:"default"}}:!1;else s.video=!1;return t.audio?typeof t.audio=="object"?(s.audio=t.audio,(n=(a=s.audio).deviceId)!==null&&n!==void 0||(a.deviceId={ideal:"default"})):s.audio={deviceId:{ideal:"default"}}:s.audio=!1,s}function gO(t){return Q(this,arguments,void 0,function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:200;return function*(){const r=vO();if(r){const a=r.createAnalyser();a.fftSize=2048;const s=a.frequencyBinCount,l=new Uint8Array(s);r.createMediaStreamSource(new MediaStream([e.mediaStreamTrack])).connect(a),yield io(n),a.getByteTimeDomainData(l);const h=l.some(p=>p!==128&&p!==0);return r.close(),!h}return!1}()})}function vO(){var t;const e=typeof window<"u"&&(window.AudioContext||window.webkitAudioContext);if(e){const n=new e({latencyHint:"interactive"});if(n.state==="suspended"&&typeof window<"u"&&(!((t=window.document)===null||t===void 0)&&t.body)){const r=()=>Q(this,void 0,void 0,function*(){var a;try{n.state==="suspended"&&(yield n.resume())}catch(s){console.warn("Error trying to auto-resume audio context",s)}(a=window.document.body)===null||a===void 0||a.removeEventListener("click",r)});window.document.body.addEventListener("click",r)}return n}}function kV(t){return t==="audioinput"?De.Source.Microphone:t==="videoinput"?De.Source.Camera:De.Source.Unknown}function yO(t){return t===De.Source.Microphone?"audioinput":t===De.Source.Camera?"videoinput":void 0}function TV(t){var e,n;let r=(e=t.video)!==null&&e!==void 0?e:!0;return t.resolution&&t.resolution.width>0&&t.resolution.height>0&&(r=typeof r=="boolean"?{}:r,yc()?r=Object.assign(Object.assign({},r),{width:{max:t.resolution.width},height:{max:t.resolution.height},frameRate:t.resolution.frameRate}):r=Object.assign(Object.assign({},r),{width:{ideal:t.resolution.width},height:{ideal:t.resolution.height},frameRate:t.resolution.frameRate})),{audio:(n=t.audio)!==null&&n!==void 0?n:!1,video:r,controller:t.controller,selfBrowserSurface:t.selfBrowserSurface,surfaceSwitching:t.surfaceSwitching,systemAudio:t.systemAudio,preferCurrentTab:t.preferCurrentTab}}function ob(t){return t.split("/")[1].toLowerCase()}function xV(t){const e=[];return t.forEach(n=>{n.track!==void 0&&e.push(new H1({cid:n.track.mediaStreamID,track:n.trackInfo}))}),e}function ar(t){return"mediaStreamTrack"in t?{trackID:t.sid,source:t.source,muted:t.isMuted,enabled:t.mediaStreamTrack.enabled,kind:t.kind,streamID:t.mediaStreamID,streamTrackID:t.mediaStreamTrack.id}:{trackID:t.trackSid,enabled:t.isEnabled,muted:t.isMuted,trackInfo:Object.assign({mimeType:t.mimeType,name:t.trackName,encrypted:t.isEncrypted,kind:t.kind,source:t.source},t.track?ar(t.track):{})}}function wV(){return typeof RTCRtpReceiver<"u"&&"getSynchronizationSources"in RTCRtpReceiver}function _V(t,e){var n;t===void 0&&(t={}),e===void 0&&(e={});const r=[...Object.keys(e),...Object.keys(t)],a={};for(const s of r)t[s]!==e[s]&&(a[s]=(n=e[s])!==null&&n!==void 0?n:"");return a}function bO(t){const e=Object.assign({},t);let n,r;return typeof e.audio=="object"&&e.audio.processor&&(n=e.audio.processor,e.audio=Object.assign(Object.assign({},e.audio),{processor:void 0})),typeof e.video=="object"&&e.video.processor&&(r=e.video.processor,e.video=Object.assign(Object.assign({},e.video),{processor:void 0})),{audioProcessor:n,videoProcessor:r,optionsWithoutProcessor:K8(e)}}function EV(t){switch(t){case gi.CAMERA:return De.Source.Camera;case gi.MICROPHONE:return De.Source.Microphone;case gi.SCREEN_SHARE:return De.Source.ScreenShare;case gi.SCREEN_SHARE_AUDIO:return De.Source.ScreenShareAudio;default:return De.Source.Unknown}}class RV extends dl.EventEmitter{constructor(e){super(),this.onWorkerMessage=n=>{var r,a;const{kind:s,data:l}=n.data;switch(s){case"error":Nn.error(l.error.message),this.emit(gc.EncryptionError,l.error);break;case"initAck":l.enabled&&this.keyProvider.getKeys().forEach(c=>{this.postKey(c)});break;case"enable":if(l.enabled&&this.keyProvider.getKeys().forEach(c=>{this.postKey(c)}),this.encryptionEnabled!==l.enabled&&l.participantIdentity===((r=this.room)===null||r===void 0?void 0:r.localParticipant.identity))this.emit(gc.ParticipantEncryptionStatusChanged,l.enabled,this.room.localParticipant),this.encryptionEnabled=l.enabled;else if(l.participantIdentity){const c=(a=this.room)===null||a===void 0?void 0:a.getParticipantByIdentity(l.participantIdentity);if(!c)throw TypeError("couldn't set encryption status, participant not found".concat(l.participantIdentity));this.emit(gc.ParticipantEncryptionStatusChanged,l.enabled,c)}break;case"ratchetKey":this.keyProvider.emit(mc.KeyRatcheted,l.material,l.keyIndex);break}},this.onWorkerError=n=>{Nn.error("e2ee worker encountered an error:",{error:n.error}),this.emit(gc.EncryptionError,n.error)},this.keyProvider=e.keyProvider,this.worker=e.worker,this.encryptionEnabled=!1}setup(e){if(!W8())throw new nT("tried to setup end-to-end encryption on an unsupported browser");if(Nn.info("setting up e2ee"),e!==this.room){this.room=e,this.setupEventListeners(e,this.keyProvider);const n={kind:"init",data:{keyProviderOptions:this.keyProvider.getOptions(),loglevel:A8.getLevel()}};this.worker&&(Nn.info("initializing worker",{worker:this.worker}),this.worker.onmessage=this.onWorkerMessage,this.worker.onerror=this.onWorkerError,this.worker.postMessage(n))}}setParticipantCryptorEnabled(e,n){Nn.debug("set e2ee to ".concat(e," for participant ").concat(n)),this.postEnable(e,n)}setSifTrailer(e){!e||e.length===0?Nn.warn("ignoring server sent trailer as it's empty"):this.postSifTrailer(e)}setupEngine(e){e.on(tt.RTPVideoMapUpdate,n=>{this.postRTPMap(n)})}setupEventListeners(e,n){e.on(Ee.TrackPublished,(r,a)=>this.setParticipantCryptorEnabled(r.trackInfo.encryption!==Po.NONE,a.identity)),e.on(Ee.ConnectionStateChanged,r=>{r===Fn.Connected&&e.remoteParticipants.forEach(a=>{a.trackPublications.forEach(s=>{this.setParticipantCryptorEnabled(s.trackInfo.encryption!==Po.NONE,a.identity)})})}).on(Ee.TrackUnsubscribed,(r,a,s)=>{var l;const c={kind:"removeTransform",data:{participantIdentity:s.identity,trackId:r.mediaStreamID}};(l=this.worker)===null||l===void 0||l.postMessage(c)}).on(Ee.TrackSubscribed,(r,a,s)=>{this.setupE2EEReceiver(r,s.identity,a.trackInfo)}).on(Ee.SignalConnected,()=>{if(!this.room)throw new TypeError("expected room to be present on signal connect");n.getKeys().forEach(r=>{this.postKey(r)}),this.setParticipantCryptorEnabled(this.room.localParticipant.isE2EEEnabled,this.room.localParticipant.identity)}),e.localParticipant.on(Ie.LocalTrackPublished,r=>Q(this,void 0,void 0,function*(){this.setupE2EESender(r.track,r.track.sender)})),n.on(mc.SetKey,r=>this.postKey(r)).on(mc.RatchetRequest,(r,a)=>this.postRatchetRequest(r,a))}postRatchetRequest(e,n){if(!this.worker)throw Error("could not ratchet key, worker is missing");const r={kind:"ratchetRequest",data:{participantIdentity:e,keyIndex:n}};this.worker.postMessage(r)}postKey(e){let{key:n,participantIdentity:r,keyIndex:a}=e;var s;if(!this.worker)throw Error("could not set key, worker is missing");const l={kind:"setKey",data:{participantIdentity:r,isPublisher:r===((s=this.room)===null||s===void 0?void 0:s.localParticipant.identity),key:n,keyIndex:a}};this.worker.postMessage(l)}postEnable(e,n){if(this.worker){const r={kind:"enable",data:{enabled:e,participantIdentity:n}};this.worker.postMessage(r)}else throw new ReferenceError("failed to enable e2ee, worker is not ready")}postRTPMap(e){var n;if(!this.worker)throw TypeError("could not post rtp map, worker is missing");if(!(!((n=this.room)===null||n===void 0)&&n.localParticipant.identity))throw TypeError("could not post rtp map, local participant identity is missing");const r={kind:"setRTPMap",data:{map:e,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(r)}postSifTrailer(e){if(!this.worker)throw Error("could not post SIF trailer, worker is missing");const n={kind:"setSifTrailer",data:{trailer:e}};this.worker.postMessage(n)}setupE2EEReceiver(e,n,r){if(e.receiver){if(!(r!=null&&r.mimeType)||r.mimeType==="")throw new TypeError("MimeType missing from trackInfo, cannot set up E2EE cryptor");this.handleReceiver(e.receiver,e.mediaStreamID,n,e.kind==="video"?ob(r.mimeType):void 0)}}setupE2EESender(e,n){if(!Hh(e)||!n){n||Nn.warn("early return because sender is not ready");return}this.handleSender(n,e.mediaStreamID,void 0)}handleReceiver(e,n,r,a){return Q(this,void 0,void 0,function*(){if(this.worker){if(tT()){const s={kind:"decode",participantIdentity:r,trackId:n,codec:a};e.transform=new RTCRtpScriptTransform(this.worker,s)}else{if(nb in e&&a){const h={kind:"updateCodec",data:{trackId:n,codec:a,participantIdentity:r}};this.worker.postMessage(h);return}let s=e.writableStream,l=e.readableStream;if(!s||!l){const h=e.createEncodedStreams();e.writableStream=h.writable,s=h.writable,e.readableStream=h.readable,l=h.readable}const c={kind:"decode",data:{readableStream:l,writableStream:s,trackId:n,codec:a,participantIdentity:r}};this.worker.postMessage(c,[l,s])}e[nb]=!0}})}handleSender(e,n,r){var a;if(!(nb in e||!this.worker)){if(!(!((a=this.room)===null||a===void 0)&&a.localParticipant.identity)||this.room.localParticipant.identity==="")throw TypeError("local identity needs to be known in order to set up encrypted sender");if(tT()){Nn.info("initialize script transform");const s={kind:"encode",participantIdentity:this.room.localParticipant.identity,trackId:n,codec:r};e.transform=new RTCRtpScriptTransform(this.worker,s)}else{Nn.info("initialize encoded streams");const s=e.createEncodedStreams(),l={kind:"encode",data:{readableStream:s.readable,writableStream:s.writable,codec:r,trackId:n,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(l,[s.readable,s.writable])}e[nb]=!0}}}const kT="default";class zi{constructor(){this._previousDevices=[]}static getInstance(){return this.instance===void 0&&(this.instance=new zi),this.instance}get previousDevices(){return this._previousDevices}getDevices(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var s;if(((s=zi.userMediaPromiseMap)===null||s===void 0?void 0:s.size)>0){Nn.debug("awaiting getUserMedia promise");try{n?yield zi.userMediaPromiseMap.get(n):yield Promise.all(zi.userMediaPromiseMap.values())}catch{Nn.warn("error waiting for media permissons")}}let l=yield navigator.mediaDevices.enumerateDevices();if(a&&!(yc()&&r.hasDeviceInUse(n))&&(l.filter(h=>h.kind===n).length===0||l.some(h=>{const p=h.label==="",v=n?h.kind===n:!0;return p&&v}))){const h={video:n!=="audioinput"&&n!=="audiooutput",audio:n!=="videoinput"&&{deviceId:{ideal:"default"}}},p=yield navigator.mediaDevices.getUserMedia(h);l=yield navigator.mediaDevices.enumerateDevices(),p.getTracks().forEach(v=>{v.stop()})}return r._previousDevices=l,n&&(l=l.filter(c=>c.kind===n)),l}()})}normalizeDeviceId(e,n,r){return Q(this,void 0,void 0,function*(){if(n!==kT)return n;const a=yield this.getDevices(e),s=a.find(c=>c.deviceId===kT);if(!s){Nn.warn("could not reliably determine default device");return}const l=a.find(c=>c.deviceId!==kT&&c.groupId===(r??s.groupId));if(!l){Nn.warn("could not reliably determine default device");return}return l==null?void 0:l.deviceId})}hasDeviceInUse(e){return e?zi.userMediaPromiseMap.has(e):zi.userMediaPromiseMap.size>0}}zi.mediaDeviceKinds=["audioinput","audiooutput","videoinput"],zi.userMediaPromiseMap=new Map;var Og;(function(t){t[t.WAITING=0]="WAITING",t[t.RUNNING=1]="RUNNING",t[t.COMPLETED=2]="COMPLETED"})(Og||(Og={}));class PV{constructor(){this.pendingTasks=new Map,this.taskMutex=new to,this.nextTaskIndex=0}run(e){return Q(this,void 0,void 0,function*(){const n={id:this.nextTaskIndex++,enqueuedAt:Date.now(),status:Og.WAITING};this.pendingTasks.set(n.id,n);const r=yield this.taskMutex.lock();try{return n.executedAt=Date.now(),n.status=Og.RUNNING,yield e()}finally{n.status=Og.COMPLETED,this.pendingTasks.delete(n.id),r()}})}flush(){return Q(this,void 0,void 0,function*(){return this.run(()=>Q(this,void 0,void 0,function*(){}))})}snapshot(){return Array.from(this.pendingTasks.values())}}function DV(t,e){const n=new URL(gV(t));return e.forEach((r,a)=>{n.searchParams.set(a,r)}),SO(n,"rtc")}function AV(t){const e=new URL(vT(t));return SO(e,"validate")}function OV(t){return t.endsWith("/")?t:"".concat(t,"/")}function SO(t,e){return t.pathname="".concat(OV(t.pathname)).concat(e),t.toString()}const MV=["syncState","trickle","offer","answer","simulate","leave"];function LV(t){const e=MV.indexOf(t.case)>=0;return Nn.trace("request allowed to bypass queue:",{canPass:e,req:t}),e}var Or;(function(t){t[t.CONNECTING=0]="CONNECTING",t[t.CONNECTED=1]="CONNECTED",t[t.RECONNECTING=2]="RECONNECTING",t[t.DISCONNECTING=3]="DISCONNECTING",t[t.DISCONNECTED=4]="DISCONNECTED"})(Or||(Or={}));class TT{get currentState(){return this.state}get isDisconnected(){return this.state===Or.DISCONNECTING||this.state===Or.DISCONNECTED}get isEstablishingConnection(){return this.state===Or.CONNECTING||this.state===Or.RECONNECTING}getNextRequestId(){return this._requestId+=1,this._requestId}constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r;this.rtt=0,this.state=Or.DISCONNECTED,this.log=Nn,this._requestId=0,this.resetCallbacks=()=>{this.onAnswer=void 0,this.onLeave=void 0,this.onLocalTrackPublished=void 0,this.onLocalTrackUnpublished=void 0,this.onNegotiateRequested=void 0,this.onOffer=void 0,this.onRemoteMuteChanged=void 0,this.onSubscribedQualityUpdate=void 0,this.onTokenRefresh=void 0,this.onTrickle=void 0,this.onClose=void 0},this.log=lu((r=n.loggerName)!==null&&r!==void 0?r:xs.Signal),this.loggerContextCb=n.loggerContextCb,this.useJSON=e,this.requestQueue=new PV,this.queuedRequests=[],this.closingLock=new to,this.connectionLock=new to,this.state=Or.DISCONNECTED}get logContext(){var e,n;return(n=(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this))!==null&&n!==void 0?n:{}}join(e,n,r,a){return Q(this,void 0,void 0,function*(){return this.state=Or.CONNECTING,this.options=r,yield this.connect(e,n,r,a)})}reconnect(e,n,r,a){return Q(this,void 0,void 0,function*(){if(!this.options){this.log.warn("attempted to reconnect without signal options being set, ignoring",this.logContext);return}return this.state=Or.RECONNECTING,this.clearPingInterval(),yield this.connect(e,n,Object.assign(Object.assign({},this.options),{reconnect:!0,sid:r,reconnectReason:a}))})}connect(e,n,r,a){this.connectOptions=r;const s=pV(),l=NV(n,s,r),c=DV(e,l),h=AV(c);return new Promise((p,v)=>Q(this,void 0,void 0,function*(){const b=yield this.connectionLock.lock();try{const k=()=>Q(this,void 0,void 0,function*(){this.close(),clearTimeout(T),v(new br("room connection has been cancelled (signal)",Un.Cancelled))}),T=setTimeout(()=>{this.close(),v(new br("room connection has timed out (signal)",Un.ServerUnreachable))},r.websocketTimeout);a!=null&&a.aborted&&k(),a==null||a.addEventListener("abort",k);const E=new URL(c);E.searchParams.has("access_token")&&E.searchParams.set("access_token","<redacted>"),this.log.debug("connecting to ".concat(E),Object.assign({reconnect:r.reconnect,reconnectReason:r.reconnectReason},this.logContext)),this.ws&&(yield this.close(!1)),this.ws=new WebSocket(c),this.ws.binaryType="arraybuffer",this.ws.onopen=()=>{clearTimeout(T)},this.ws.onerror=R=>Q(this,void 0,void 0,function*(){if(this.state!==Or.CONNECTED){this.state=Or.DISCONNECTED,clearTimeout(T);try{const M=yield fetch(h);if(M.status.toFixed(0).startsWith("4")){const A=yield M.text();v(new br(A,Un.NotAllowed,M.status))}else v(new br("Encountered unknown websocket error during connection: ".concat(R.toString()),Un.InternalError,M.status))}catch(M){v(new br(M instanceof Error?M.message:"server was not reachable",Un.ServerUnreachable))}return}this.handleWSError(R)}),this.ws.onmessage=R=>Q(this,void 0,void 0,function*(){var M,A,U;let V;if(typeof R.data=="string"){const j=JSON.parse(R.data);V=tA.fromJson(j,{ignoreUnknownFields:!0})}else if(R.data instanceof ArrayBuffer)V=tA.fromBinary(new Uint8Array(R.data));else{this.log.error("could not decode websocket message: ".concat(typeof R.data),this.logContext);return}if(this.state!==Or.CONNECTED){let j=!1;if(((M=V.message)===null||M===void 0?void 0:M.case)==="join"?(this.state=Or.CONNECTED,a==null||a.removeEventListener("abort",k),this.pingTimeoutDuration=V.message.value.pingTimeout,this.pingIntervalDuration=V.message.value.pingInterval,this.pingTimeoutDuration&&this.pingTimeoutDuration>0&&(this.log.debug("ping config",Object.assign(Object.assign({},this.logContext),{timeout:this.pingTimeoutDuration,interval:this.pingIntervalDuration})),this.startPingInterval()),p(V.message.value)):this.state===Or.RECONNECTING&&V.message.case!=="leave"?(this.state=Or.CONNECTED,a==null||a.removeEventListener("abort",k),this.startPingInterval(),((A=V.message)===null||A===void 0?void 0:A.case)==="reconnect"?p(V.message.value):(this.log.debug("declaring signal reconnected without reconnect response received",this.logContext),p(void 0),j=!0)):this.isEstablishingConnection&&V.message.case==="leave"?v(new br("Received leave request while trying to (re)connect",Un.LeaveRequest,void 0,V.message.value.reason)):r.reconnect||v(new br("did not receive join response, got ".concat((U=V.message)===null||U===void 0?void 0:U.case," instead"),Un.InternalError)),!j)return}this.signalLatency&&(yield io(this.signalLatency)),this.handleSignalResponse(V)}),this.ws.onclose=R=>{this.isEstablishingConnection&&v(new br("Websocket got closed during a (re)connection attempt",Un.InternalError)),this.log.warn("websocket closed",Object.assign(Object.assign({},this.logContext),{reason:R.reason,code:R.code,wasClean:R.wasClean,state:this.state})),this.handleOnClose(R.reason)}}finally{b()}}))}close(){return Q(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){const r=yield e.closingLock.lock();try{if(e.clearPingInterval(),n&&(e.state=Or.DISCONNECTING),e.ws){e.ws.onmessage=null,e.ws.onopen=null,e.ws.onclose=null;const a=new Promise(s=>{e.ws?e.ws.onclose=()=>{s()}:s()});e.ws.readyState<e.ws.CLOSING&&(e.ws.close(),yield Promise.race([a,io(250)])),e.ws=void 0}}finally{n&&(e.state=Or.DISCONNECTED),r()}}()})}sendOffer(e){this.log.debug("sending offer",Object.assign(Object.assign({},this.logContext),{offerSdp:e.sdp})),this.sendRequest({case:"offer",value:sb(e)})}sendAnswer(e){return this.log.debug("sending answer",Object.assign(Object.assign({},this.logContext),{answerSdp:e.sdp})),this.sendRequest({case:"answer",value:sb(e)})}sendIceCandidate(e,n){return this.log.debug("sending ice candidate",Object.assign(Object.assign({},this.logContext),{candidate:e})),this.sendRequest({case:"trickle",value:new z1({candidateInit:JSON.stringify(e),target:n})})}sendMuteTrack(e,n){return this.sendRequest({case:"mute",value:new B1({sid:e,muted:n})})}sendAddTrack(e){return this.sendRequest({case:"addTrack",value:e})}sendUpdateLocalMetadata(e,n){return Q(this,arguments,void 0,function(r,a){var s=this;let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return function*(){const c=s.getNextRequestId();return yield s.sendRequest({case:"updateMetadata",value:new aA({requestId:c,metadata:r,name:a,attributes:l})}),c}()})}sendUpdateTrackSettings(e){this.sendRequest({case:"trackSetting",value:e})}sendUpdateSubscription(e){return this.sendRequest({case:"subscription",value:e})}sendSyncState(e){return this.sendRequest({case:"syncState",value:e})}sendUpdateVideoLayers(e,n){return this.sendRequest({case:"updateLayers",value:new iA({trackSid:e,layers:n})})}sendUpdateSubscriptionPermissions(e,n){return this.sendRequest({case:"subscriptionPermission",value:new lA({allParticipants:e,trackPermissions:n})})}sendSimulateScenario(e){return this.sendRequest({case:"simulate",value:e})}sendPing(){return Promise.all([this.sendRequest({case:"ping",value:Ur.parse(Date.now())}),this.sendRequest({case:"pingReq",value:new dA({timestamp:Ur.parse(Date.now()),rtt:Ur.parse(this.rtt)})})])}sendUpdateLocalAudioTrack(e,n){return this.sendRequest({case:"updateAudioTrack",value:new rA({trackSid:e,features:n})})}sendLeave(){return this.sendRequest({case:"leave",value:new W0({reason:ks.CLIENT_INITIATED,action:Fh.DISCONNECT})})}sendRequest(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return function*(){if(!a&&!LV(n)&&r.state===Or.RECONNECTING){r.queuedRequests.push(()=>Q(r,void 0,void 0,function*(){yield this.sendRequest(n,!0)}));return}if(a||(yield r.requestQueue.flush()),r.signalLatency&&(yield io(r.signalLatency)),!r.ws||r.ws.readyState!==r.ws.OPEN){r.log.error("cannot send signal request before connected, type: ".concat(n==null?void 0:n.case),r.logContext);return}const l=new s8({message:n});try{r.useJSON?r.ws.send(l.toJsonString()):r.ws.send(l.toBinary())}catch(c){r.log.error("error sending signal message",Object.assign(Object.assign({},r.logContext),{error:c}))}}()})}handleSignalResponse(e){var n,r;const a=e.message;if(a==null){this.log.debug("received unsupported message",this.logContext);return}let s=!1;if(a.case==="answer"){const l=CO(a.value);this.onAnswer&&this.onAnswer(l)}else if(a.case==="offer"){const l=CO(a.value);this.onOffer&&this.onOffer(l)}else if(a.case==="trickle"){const l=JSON.parse(a.value.candidateInit);this.onTrickle&&this.onTrickle(l,a.value.target)}else a.case==="update"?this.onParticipantUpdate&&this.onParticipantUpdate((n=a.value.participants)!==null&&n!==void 0?n:[]):a.case==="trackPublished"?this.onLocalTrackPublished&&this.onLocalTrackPublished(a.value):a.case==="speakersChanged"?this.onSpeakersChanged&&this.onSpeakersChanged((r=a.value.speakers)!==null&&r!==void 0?r:[]):a.case==="leave"?this.onLeave&&this.onLeave(a.value):a.case==="mute"?this.onRemoteMuteChanged&&this.onRemoteMuteChanged(a.value.sid,a.value.muted):a.case==="roomUpdate"?this.onRoomUpdate&&a.value.room&&this.onRoomUpdate(a.value.room):a.case==="connectionQuality"?this.onConnectionQuality&&this.onConnectionQuality(a.value):a.case==="streamStateUpdate"?this.onStreamStateUpdate&&this.onStreamStateUpdate(a.value):a.case==="subscribedQualityUpdate"?this.onSubscribedQualityUpdate&&this.onSubscribedQualityUpdate(a.value):a.case==="subscriptionPermissionUpdate"?this.onSubscriptionPermissionUpdate&&this.onSubscriptionPermissionUpdate(a.value):a.case==="refreshToken"?this.onTokenRefresh&&this.onTokenRefresh(a.value):a.case==="trackUnpublished"?this.onLocalTrackUnpublished&&this.onLocalTrackUnpublished(a.value):a.case==="subscriptionResponse"?this.onSubscriptionError&&this.onSubscriptionError(a.value):a.case==="pong"||(a.case==="pongResp"?(this.rtt=Date.now()-Number.parseInt(a.value.lastPingTimestamp.toString()),this.resetPingTimeout(),s=!0):a.case==="requestResponse"?this.onRequestResponse&&this.onRequestResponse(a.value):a.case==="trackSubscribed"?this.onLocalTrackSubscribed&&this.onLocalTrackSubscribed(a.value.trackSid):this.log.debug("unsupported message",Object.assign(Object.assign({},this.logContext),{msgCase:a.case})));s||this.resetPingTimeout()}setReconnected(){for(;this.queuedRequests.length>0;){const e=this.queuedRequests.shift();e&&this.requestQueue.run(e)}}handleOnClose(e){return Q(this,void 0,void 0,function*(){if(this.state===Or.DISCONNECTED)return;const n=this.onClose;yield this.close(),this.log.debug("websocket connection closed: ".concat(e),Object.assign(Object.assign({},this.logContext),{reason:e})),n&&n(e)})}handleWSError(e){this.log.error("websocket error",Object.assign(Object.assign({},this.logContext),{error:e}))}resetPingTimeout(){if(this.clearPingTimeout(),!this.pingTimeoutDuration){this.log.warn("ping timeout duration not set",this.logContext);return}this.pingTimeout=Qi.setTimeout(()=>{this.log.warn("ping timeout triggered. last pong received at: ".concat(new Date(Date.now()-this.pingTimeoutDuration*1e3).toUTCString()),this.logContext),this.handleOnClose("ping timeout")},this.pingTimeoutDuration*1e3)}clearPingTimeout(){this.pingTimeout&&Qi.clearTimeout(this.pingTimeout)}startPingInterval(){if(this.clearPingInterval(),this.resetPingTimeout(),!this.pingIntervalDuration){this.log.warn("ping interval duration not set",this.logContext);return}this.log.debug("start ping interval",this.logContext),this.pingInterval=Qi.setInterval(()=>{this.sendPing()},this.pingIntervalDuration*1e3)}clearPingInterval(){this.log.debug("clearing ping interval",this.logContext),this.clearPingTimeout(),this.pingInterval&&Qi.clearInterval(this.pingInterval)}}function CO(t){const e={type:"offer",sdp:t.sdp};switch(t.type){case"answer":case"offer":case"pranswer":case"rollback":e.type=t.type;break}return e}function sb(t){return new Yd({sdp:t.sdp,type:t.type})}function NV(t,e,n){var r;const a=new URLSearchParams;return a.set("access_token",t),n.reconnect&&(a.set("reconnect","1"),n.sid&&a.set("sid",n.sid)),a.set("auto_subscribe",n.autoSubscribe?"1":"0"),a.set("sdk",fl()?"reactnative":"js"),a.set("version",e.version),a.set("protocol",e.protocol.toString()),e.deviceModel&&a.set("device_model",e.deviceModel),e.os&&a.set("os",e.os),e.osVersion&&a.set("os_version",e.osVersion),e.browser&&a.set("browser",e.browser),e.browserVersion&&a.set("browser_version",e.browserVersion),n.adaptiveStream&&a.set("adaptive_stream","1"),n.reconnectReason&&a.set("reconnect_reason",n.reconnectReason.toString()),!((r=navigator.connection)===null||r===void 0)&&r.type&&a.set("network",navigator.connection.type),a}var _s={},xT={},wT={exports:{}},kO;function _T(){if(kO)return wT.exports;kO=1;var t=wT.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return e.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return e.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return e.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var n="candidate:%s %d %s %d %s %d typ %s";return n+=e.raddr!=null?" raddr %s rport %d":"%v%v",n+=e.tcptype!=null?" tcptype %s":"%v",e.generation!=null&&(n+=" generation %d"),n+=e["network-id"]!=null?" network-id %d":"%v",n+=e["network-cost"]!=null?" network-cost %d":"%v",n}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var n="ssrc:%d";return e.attribute!=null&&(n+=" %s",e.value!=null&&(n+=":%s")),n}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return e.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(e.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var n="mediaclk:";return n+=e.id!=null?"id=%s %s":"%v%s",n+=e.mediaClockValue!=null?"=%s":"",n+=e.rateNumerator!=null?" rate=%s":"",n+=e.rateDenominator!=null?"/%s":"",n}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};return Object.keys(t).forEach(function(e){var n=t[e];n.forEach(function(r){r.reg||(r.reg=/(.*)/),r.format||(r.format="%s")})}),wT.exports}var TO;function IV(){return TO||(TO=1,function(t){var e=function(c){return String(Number(c))===c?Number(c):c},n=function(c,h,p,v){if(v&&!p)h[v]=e(c[1]);else for(var b=0;b<p.length;b+=1)c[b+1]!=null&&(h[p[b]]=e(c[b+1]))},r=function(c,h,p){var v=c.name&&c.names;c.push&&!h[c.push]?h[c.push]=[]:v&&!h[c.name]&&(h[c.name]={});var b=c.push?{}:v?h[c.name]:h;n(p.match(c.reg),b,c.names,c.name),c.push&&h[c.push].push(b)},a=_T(),s=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(c){var h={},p=[],v=h;return c.split(/(\r\n|\r|\n)/).filter(s).forEach(function(b){var k=b[0],T=b.slice(2);k==="m"&&(p.push({rtp:[],fmtp:[]}),v=p[p.length-1]);for(var E=0;E<(a[k]||[]).length;E+=1){var R=a[k][E];if(R.reg.test(T))return r(R,v,T)}}),h.media=p,h};var l=function(c,h){var p=h.split(/=(.+)/,2);return p.length===2?c[p[0]]=e(p[1]):p.length===1&&h.length>1&&(c[p[0]]=void 0),c};t.parseParams=function(c){return c.split(/;\s?/).reduce(l,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(c){return c.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(c){for(var h=[],p=c.split(" ").map(e),v=0;v<p.length;v+=3)h.push({component:p[v],ip:p[v+1],port:p[v+2]});return h},t.parseImageAttributes=function(c){return c.split(" ").map(function(h){return h.substring(1,h.length-1).split(",").reduce(l,{})})},t.parseSimulcastStreamList=function(c){return c.split(";").map(function(h){return h.split(",").map(function(p){var v,b=!1;return p[0]!=="~"?v=e(p):(v=e(p.substring(1,p.length)),b=!0),{scid:v,paused:b}})})}}(xT)),xT}var ET,xO;function UV(){if(xO)return ET;xO=1;var t=_T(),e=/%[sdv%]/g,n=function(l){var c=1,h=arguments,p=h.length;return l.replace(e,function(v){if(c>=p)return v;var b=h[c];switch(c+=1,v){case"%%":return"%";case"%s":return String(b);case"%d":return Number(b);case"%v":return""}})},r=function(l,c,h){var p=c.format instanceof Function?c.format(c.push?h:h[c.name]):c.format,v=[l+"="+p];if(c.names)for(var b=0;b<c.names.length;b+=1){var k=c.names[b];c.name?v.push(h[c.name][k]):v.push(h[c.names[b]])}else v.push(h[c.name]);return n.apply(null,v)},a=["v","o","s","i","u","e","p","c","b","t","r","z","a"],s=["i","c","b","a"];return ET=function(l,c){c=c||{},l.version==null&&(l.version=0),l.name==null&&(l.name=" "),l.media.forEach(function(b){b.payloads==null&&(b.payloads="")});var h=c.outerOrder||a,p=c.innerOrder||s,v=[];return h.forEach(function(b){t[b].forEach(function(k){k.name in l&&l[k.name]!=null?v.push(r(b,k,l)):k.push in l&&l[k.push]!=null&&l[k.push].forEach(function(T){v.push(r(b,k,T))})})}),l.media.forEach(function(b){v.push(r("m",t.m[0],b)),p.forEach(function(k){t[k].forEach(function(T){T.name in b&&b[T.name]!=null?v.push(r(k,T,b)):T.push in b&&b[T.push]!=null&&b[T.push].forEach(function(E){v.push(r(k,T,E))})})})}),v.join(`\r
277
277
  `)+`\r
278
- `},ET}var wO;function FV(){if(wO)return _s;wO=1;var t=IV(),e=UV(),n=_T();return _s.grammar=n,_s.write=e,_s.parse=t.parse,_s.parseParams=t.parseParams,_s.parseFmtpConfig=t.parseFmtpConfig,_s.parsePayloads=t.parsePayloads,_s.parseRemoteCandidates=t.parseRemoteCandidates,_s.parseImageAttributes=t.parseImageAttributes,_s.parseSimulcastStreamList=t.parseSimulcastStreamList,_s}var kc=FV();function RT(t,e,n){var r,a,s;e===void 0&&(e=50),n===void 0&&(n={});var l=(r=n.isImmediate)!=null&&r,c=(a=n.callback)!=null&&a,h=n.maxWait,p=Date.now(),v=[];function b(){if(h!==void 0){var T=Date.now()-p;if(T+e>=h)return h-T}return e}var k=function(){var T=[].slice.call(arguments),E=this;return new Promise(function(R,M){var A=l&&s===void 0;if(s!==void 0&&clearTimeout(s),s=setTimeout(function(){if(s=void 0,p=Date.now(),!l){var V=t.apply(E,T);c&&c(V),v.forEach(function(j){return(0,j.resolve)(V)}),v=[]}},b()),A){var U=t.apply(E,T);return c&&c(U),R(U)}v.push({resolve:R,reject:M})})};return k.cancel=function(T){s!==void 0&&clearTimeout(s),v.forEach(function(E){return(0,E.reject)(T)}),v=[]},k}const jV=.7,VV=20,qh={NegotiationStarted:"negotiationStarted",NegotiationComplete:"negotiationComplete",RTPVideoPayloadTypes:"rtpVideoPayloadTypes"};class _O extends dl.EventEmitter{get pc(){return this._pc||(this._pc=this.createPC()),this._pc}constructor(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r;super(),this.log=Nn,this.ddExtID=0,this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate=!1,this.trackBitrates=[],this.remoteStereoMids=[],this.remoteNackMids=[],this.negotiate=RT(a=>Q(this,void 0,void 0,function*(){this.emit(qh.NegotiationStarted);try{yield this.createAndSendOffer()}catch(s){if(a)a(s);else throw s}}),VV),this.close=()=>{this._pc&&(this._pc.close(),this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.ondatachannel=null,this._pc.onnegotiationneeded=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ondatachannel=null,this._pc.ontrack=null,this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc=null)},this.log=lu((r=n.loggerName)!==null&&r!==void 0?r:xs.PCTransport),this.loggerOptions=n,this.config=e,this._pc=this.createPC()}createPC(){const e=new RTCPeerConnection(this.config);return e.onicecandidate=n=>{var r;n.candidate&&((r=this.onIceCandidate)===null||r===void 0||r.call(this,n.candidate))},e.onicecandidateerror=n=>{var r;(r=this.onIceCandidateError)===null||r===void 0||r.call(this,n)},e.oniceconnectionstatechange=()=>{var n;(n=this.onIceConnectionStateChange)===null||n===void 0||n.call(this,e.iceConnectionState)},e.onsignalingstatechange=()=>{var n;(n=this.onSignalingStatechange)===null||n===void 0||n.call(this,e.signalingState)},e.onconnectionstatechange=()=>{var n;(n=this.onConnectionStateChange)===null||n===void 0||n.call(this,e.connectionState)},e.ondatachannel=n=>{var r;(r=this.onDataChannel)===null||r===void 0||r.call(this,n)},e.ontrack=n=>{var r;(r=this.onTrack)===null||r===void 0||r.call(this,n)},e}get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions).loggerContextCb)===null||n===void 0?void 0:n.call(e))}get isICEConnected(){return this._pc!==null&&(this.pc.iceConnectionState==="connected"||this.pc.iceConnectionState==="completed")}addIceCandidate(e){return Q(this,void 0,void 0,function*(){if(this.pc.remoteDescription&&!this.restartingIce)return this.pc.addIceCandidate(e);this.pendingCandidates.push(e)})}setRemoteDescription(e){return Q(this,void 0,void 0,function*(){var n;let r;if(e.type==="offer"){let{stereoMids:a,nackMids:s}=zV(e);this.remoteStereoMids=a,this.remoteNackMids=s}else if(e.type==="answer"){const a=kc.parse((n=e.sdp)!==null&&n!==void 0?n:"");a.media.forEach(s=>{s.type==="audio"&&this.trackBitrates.some(l=>{if(!l.transceiver||s.mid!=l.transceiver.mid)return!1;let c=0;if(s.rtp.some(p=>p.codec.toUpperCase()===l.codec.toUpperCase()?(c=p.payload,!0):!1),c===0)return!0;let h=!1;for(const p of s.fmtp)if(p.payload===c){p.config=p.config.split(";").filter(v=>!v.includes("maxaveragebitrate")).join(";"),l.maxbr>0&&(p.config+=";maxaveragebitrate=".concat(l.maxbr*1e3)),h=!0;break}return h||l.maxbr>0&&s.fmtp.push({payload:c,config:"maxaveragebitrate=".concat(l.maxbr*1e3)}),!0})}),r=kc.write(a)}yield this.setMungedSDP(e,r,!0),this.pendingCandidates.forEach(a=>{this.pc.addIceCandidate(a)}),this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate?(this.renegotiate=!1,yield this.createAndSendOffer()):e.type==="answer"&&(this.emit(qh.NegotiationComplete),e.sdp&&kc.parse(e.sdp).media.forEach(s=>{s.type==="video"&&this.emit(qh.RTPVideoPayloadTypes,s.rtp)}))})}createAndSendOffer(e){return Q(this,void 0,void 0,function*(){var n;if(this.onOffer===void 0)return;if(e!=null&&e.iceRestart&&(this.log.debug("restarting ICE",this.logContext),this.restartingIce=!0),this._pc&&this._pc.signalingState==="have-local-offer"){const s=this._pc.remoteDescription;if(e!=null&&e.iceRestart&&s)yield this._pc.setRemoteDescription(s);else{this.renegotiate=!0;return}}else if(!this._pc||this._pc.signalingState==="closed"){this.log.warn("could not createOffer with closed peer connection",this.logContext);return}this.log.debug("starting to negotiate",this.logContext);const r=yield this.pc.createOffer(e);this.log.debug("original offer",Object.assign({sdp:r.sdp},this.logContext));const a=kc.parse((n=r.sdp)!==null&&n!==void 0?n:"");a.media.forEach(s=>{RO(s),s.type==="audio"?EO(s,[],[]):s.type==="video"&&this.trackBitrates.some(l=>{if(!s.msid||!l.cid||!s.msid.includes(l.cid))return!1;let c=0;if(s.rtp.some(p=>p.codec.toUpperCase()===l.codec.toUpperCase()?(c=p.payload,!0):!1),c===0||(Dg(l.codec)&&this.ensureVideoDDExtensionForSVC(s,a),l.codec!=="av1"))return!0;const h=Math.round(l.maxbr*jV);for(const p of s.fmtp)if(p.payload===c){p.config.includes("x-google-start-bitrate")||(p.config+=";x-google-start-bitrate=".concat(h));break}return!0})}),yield this.setMungedSDP(r,kc.write(a)),this.onOffer(r)})}createAndSetAnswer(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.pc.createAnswer(),r=kc.parse((e=n.sdp)!==null&&e!==void 0?e:"");return r.media.forEach(a=>{RO(a),a.type==="audio"&&EO(a,this.remoteStereoMids,this.remoteNackMids)}),yield this.setMungedSDP(n,kc.write(r)),n})}createDataChannel(e,n){return this.pc.createDataChannel(e,n)}addTransceiver(e,n){return this.pc.addTransceiver(e,n)}addTrack(e){if(!this._pc)throw new xi("PC closed, cannot add track");return this._pc.addTrack(e)}setTrackCodecBitrate(e){this.trackBitrates.push(e)}setConfiguration(e){var n;if(!this._pc)throw new xi("PC closed, cannot configure");return(n=this._pc)===null||n===void 0?void 0:n.setConfiguration(e)}canRemoveTrack(){var e;return!!(!((e=this._pc)===null||e===void 0)&&e.removeTrack)}removeTrack(e){var n;return(n=this._pc)===null||n===void 0?void 0:n.removeTrack(e)}getConnectionState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.connectionState)!==null&&n!==void 0?n:"closed"}getICEConnectionState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.iceConnectionState)!==null&&n!==void 0?n:"closed"}getSignallingState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.signalingState)!==null&&n!==void 0?n:"closed"}getTransceivers(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.getTransceivers())!==null&&n!==void 0?n:[]}getSenders(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.getSenders())!==null&&n!==void 0?n:[]}getLocalDescription(){var e;return(e=this._pc)===null||e===void 0?void 0:e.localDescription}getRemoteDescription(){var e;return(e=this.pc)===null||e===void 0?void 0:e.remoteDescription}getStats(){return this.pc.getStats()}getConnectedAddress(){return Q(this,void 0,void 0,function*(){var e;if(!this._pc)return;let n="";const r=new Map,a=new Map;if((yield this._pc.getStats()).forEach(c=>{switch(c.type){case"transport":n=c.selectedCandidatePairId;break;case"candidate-pair":n===""&&c.selected&&(n=c.id),r.set(c.id,c);break;case"remote-candidate":a.set(c.id,"".concat(c.address,":").concat(c.port));break}}),n==="")return;const l=(e=r.get(n))===null||e===void 0?void 0:e.remoteCandidateId;if(l!==void 0)return a.get(l)})}setMungedSDP(e,n,r){return Q(this,void 0,void 0,function*(){if(n){const a=e.sdp;e.sdp=n;try{this.log.debug("setting munged ".concat(r?"remote":"local"," description"),this.logContext),r?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e);return}catch(s){this.log.warn("not able to set ".concat(e.type,", falling back to unmodified sdp"),Object.assign(Object.assign({},this.logContext),{error:s,sdp:n})),e.sdp=a}}try{r?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e)}catch(a){let s="unknown error";a instanceof Error?s=a.message:typeof a=="string"&&(s=a);const l={error:s,sdp:e.sdp};throw!r&&this.pc.remoteDescription&&(l.remoteSdp=this.pc.remoteDescription),this.log.error("unable to set ".concat(e.type),Object.assign(Object.assign({},this.logContext),{fields:l})),new rT(s)}})}ensureVideoDDExtensionForSVC(e,n){var r,a;if(!((r=e.ext)===null||r===void 0?void 0:r.some(l=>l.uri===aO))){if(this.ddExtID===0){let l=0;n.media.forEach(c=>{var h;c.type==="video"&&((h=c.ext)===null||h===void 0||h.forEach(p=>{p.value>l&&(l=p.value)}))}),this.ddExtID=l+1}(a=e.ext)===null||a===void 0||a.push({value:this.ddExtID,uri:aO})}}}function EO(t,e,n){let r=0;t.rtp.some(a=>a.codec==="opus"?(r=a.payload,!0):!1),r>0&&(t.rtcpFb||(t.rtcpFb=[]),n.includes(t.mid)&&!t.rtcpFb.some(a=>a.payload===r&&a.type==="nack")&&t.rtcpFb.push({payload:r,type:"nack"}),e.includes(t.mid)&&t.fmtp.some(a=>a.payload===r?(a.config.includes("stereo=1")||(a.config+=";stereo=1"),!0):!1))}function zV(t){var e;const n=[],r=[],a=kc.parse((e=t.sdp)!==null&&e!==void 0?e:"");let s=0;return a.media.forEach(l=>{var c;l.type==="audio"&&(l.rtp.some(h=>h.codec==="opus"?(s=h.payload,!0):!1),!((c=l.rtcpFb)===null||c===void 0)&&c.some(h=>h.payload===s&&h.type==="nack")&&r.push(l.mid),l.fmtp.some(h=>h.payload===s?(h.config.includes("sprop-stereo=1")&&n.push(l.mid),!0):!1))}),{stereoMids:n,nackMids:r}}function RO(t){if(t.connection){const e=t.connection.ip.indexOf(":")>=0;(t.connection.version===4&&e||t.connection.version===6&&!e)&&(t.connection.ip="0.0.0.0",t.connection.version=4)}}const PT="vp8",BV={audioPreset:sT.music,dtx:!0,red:!0,forceStereo:!1,simulcast:!0,screenShareEncoding:uT.h1080fps15.encoding,stopMicTrackOnMute:!1,videoCodec:PT,backupCodec:!0},PO={deviceId:{ideal:"default"},autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,voiceIsolation:!0},DO={deviceId:{ideal:"default"},resolution:Pg.h720.resolution},HV={adaptiveStream:!1,dynacast:!1,stopLocalTrackOnUnpublish:!0,reconnectPolicy:new M8,disconnectOnPageLeave:!0,webAudioMix:!1},DT={autoSubscribe:!0,maxRetries:1,peerConnectionTimeout:15e3,websocketTimeout:15e3};var Jr;(function(t){t[t.NEW=0]="NEW",t[t.CONNECTING=1]="CONNECTING",t[t.CONNECTED=2]="CONNECTED",t[t.FAILED=3]="FAILED",t[t.CLOSING=4]="CLOSING",t[t.CLOSED=5]="CLOSED"})(Jr||(Jr={}));class $V{get needsPublisher(){return this.isPublisherConnectionRequired}get needsSubscriber(){return this.isSubscriberConnectionRequired}get currentState(){return this.state}constructor(e,n,r){var a;this.peerConnectionTimeout=DT.peerConnectionTimeout,this.log=Nn,this.updateState=()=>{var s;const l=this.state,c=this.requiredTransports.map(h=>h.getConnectionState());c.every(h=>h==="connected")?this.state=Jr.CONNECTED:c.some(h=>h==="failed")?this.state=Jr.FAILED:c.some(h=>h==="connecting")?this.state=Jr.CONNECTING:c.every(h=>h==="closed")?this.state=Jr.CLOSED:c.some(h=>h==="closed")?this.state=Jr.CLOSING:c.every(h=>h==="new")&&(this.state=Jr.NEW),l!==this.state&&(this.log.debug("pc state change: from ".concat(Jr[l]," to ").concat(Jr[this.state]),this.logContext),(s=this.onStateChange)===null||s===void 0||s.call(this,this.state,this.publisher.getConnectionState(),this.subscriber.getConnectionState()))},this.log=lu((a=r.loggerName)!==null&&a!==void 0?a:xs.PCManager),this.loggerOptions=r,this.isPublisherConnectionRequired=!n,this.isSubscriberConnectionRequired=n,this.publisher=new _O(e,r),this.subscriber=new _O(e,r),this.publisher.onConnectionStateChange=this.updateState,this.subscriber.onConnectionStateChange=this.updateState,this.publisher.onIceConnectionStateChange=this.updateState,this.subscriber.onIceConnectionStateChange=this.updateState,this.publisher.onSignalingStatechange=this.updateState,this.subscriber.onSignalingStatechange=this.updateState,this.publisher.onIceCandidate=s=>{var l;(l=this.onIceCandidate)===null||l===void 0||l.call(this,s,Ts.PUBLISHER)},this.subscriber.onIceCandidate=s=>{var l;(l=this.onIceCandidate)===null||l===void 0||l.call(this,s,Ts.SUBSCRIBER)},this.subscriber.onDataChannel=s=>{var l;(l=this.onDataChannel)===null||l===void 0||l.call(this,s)},this.subscriber.onTrack=s=>{var l;(l=this.onTrack)===null||l===void 0||l.call(this,s)},this.publisher.onOffer=s=>{var l;(l=this.onPublisherOffer)===null||l===void 0||l.call(this,s)},this.state=Jr.NEW,this.connectionLock=new to,this.remoteOfferLock=new to}get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions).loggerContextCb)===null||n===void 0?void 0:n.call(e))}requirePublisher(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isPublisherConnectionRequired=e,this.updateState()}requireSubscriber(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isSubscriberConnectionRequired=e,this.updateState()}createAndSendPublisherOffer(e){return this.publisher.createAndSendOffer(e)}setPublisherAnswer(e){return this.publisher.setRemoteDescription(e)}removeTrack(e){return this.publisher.removeTrack(e)}close(){return Q(this,void 0,void 0,function*(){if(this.publisher&&this.publisher.getSignallingState()!=="closed"){const e=this.publisher;for(const n of e.getSenders())try{e.canRemoveTrack()&&e.removeTrack(n)}catch(r){this.log.warn("could not removeTrack",Object.assign(Object.assign({},this.logContext),{error:r}))}}yield Promise.all([this.publisher.close(),this.subscriber.close()]),this.updateState()})}triggerIceRestart(){return Q(this,void 0,void 0,function*(){this.subscriber.restartingIce=!0,this.needsPublisher&&(yield this.createAndSendPublisherOffer({iceRestart:!0}))})}addIceCandidate(e,n){return Q(this,void 0,void 0,function*(){n===Ts.PUBLISHER?yield this.publisher.addIceCandidate(e):yield this.subscriber.addIceCandidate(e)})}createSubscriberAnswerFromOffer(e){return Q(this,void 0,void 0,function*(){this.log.debug("received server offer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type,sdp:e.sdp,signalingState:this.subscriber.getSignallingState().toString()}));const n=yield this.remoteOfferLock.lock();try{return yield this.subscriber.setRemoteDescription(e),yield this.subscriber.createAndSetAnswer()}finally{n()}})}updateConfiguration(e,n){this.publisher.setConfiguration(e),this.subscriber.setConfiguration(e),n&&this.triggerIceRestart()}ensurePCTransportConnection(e,n){return Q(this,void 0,void 0,function*(){var r;const a=yield this.connectionLock.lock();try{this.isPublisherConnectionRequired&&this.publisher.getConnectionState()!=="connected"&&this.publisher.getConnectionState()!=="connecting"&&(this.log.debug("negotiation required, start negotiating",this.logContext),this.publisher.negotiate()),yield Promise.all((r=this.requiredTransports)===null||r===void 0?void 0:r.map(s=>this.ensureTransportConnected(s,e,n)))}finally{a()}})}negotiate(e){return Q(this,void 0,void 0,function*(){return new Promise((n,r)=>Q(this,void 0,void 0,function*(){const a=setTimeout(()=>{r("negotiation timed out")},this.peerConnectionTimeout),s=()=>{clearTimeout(a),r("negotiation aborted")};e.signal.addEventListener("abort",s),this.publisher.once(qh.NegotiationStarted,()=>{e.signal.aborted||this.publisher.once(qh.NegotiationComplete,()=>{clearTimeout(a),n()})}),yield this.publisher.negotiate(l=>{clearTimeout(a),r(l)})}))})}addPublisherTransceiver(e,n){return this.publisher.addTransceiver(e,n)}addPublisherTrack(e){return this.publisher.addTrack(e)}createPublisherDataChannel(e,n){return this.publisher.createDataChannel(e,n)}getConnectedAddress(e){return e===Ts.PUBLISHER?this.publisher.getConnectedAddress():e===Ts.SUBSCRIBER?this.publisher.getConnectedAddress():this.requiredTransports[0].getConnectedAddress()}get requiredTransports(){const e=[];return this.isPublisherConnectionRequired&&e.push(this.publisher),this.isSubscriberConnectionRequired&&e.push(this.subscriber),e}ensureTransportConnected(e,n){return Q(this,arguments,void 0,function(r,a){var s=this;let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.peerConnectionTimeout;return function*(){if(r.getConnectionState()!=="connected")return new Promise((h,p)=>Q(s,void 0,void 0,function*(){const v=()=>{this.log.warn("abort transport connection",this.logContext),Qi.clearTimeout(b),p(new br("room connection has been cancelled",Un.Cancelled))};a!=null&&a.signal.aborted&&v(),a==null||a.signal.addEventListener("abort",v);const b=Qi.setTimeout(()=>{a==null||a.signal.removeEventListener("abort",v),p(new br("could not establish pc connection",Un.InternalError))},l);for(;this.state!==Jr.CONNECTED;)if(yield io(50),a!=null&&a.signal.aborted){p(new br("room connection has been cancelled",Un.Cancelled));return}Qi.clearTimeout(b),a==null||a.signal.removeEventListener("abort",v),h()}))}()})}}class ei extends Error{constructor(e,n,r){super(n),this.code=e,this.message=OO(n,ei.MAX_MESSAGE_BYTES),this.data=r?OO(r,ei.MAX_DATA_BYTES):void 0}static fromProto(e){return new ei(e.code,e.message,e.data)}toProto(){return new WD({code:this.code,message:this.message,data:this.data})}static builtIn(e,n){return new ei(ei.ErrorCode[e],ei.ErrorMessage[e],n)}}ei.MAX_MESSAGE_BYTES=256,ei.MAX_DATA_BYTES=15360,ei.ErrorCode={APPLICATION_ERROR:1500,CONNECTION_TIMEOUT:1501,RESPONSE_TIMEOUT:1502,RECIPIENT_DISCONNECTED:1503,RESPONSE_PAYLOAD_TOO_LARGE:1504,SEND_FAILED:1505,UNSUPPORTED_METHOD:1400,RECIPIENT_NOT_FOUND:1401,REQUEST_PAYLOAD_TOO_LARGE:1402,UNSUPPORTED_SERVER:1403,UNSUPPORTED_VERSION:1404},ei.ErrorMessage={APPLICATION_ERROR:"Application error in method handler",CONNECTION_TIMEOUT:"Connection timeout",RESPONSE_TIMEOUT:"Response timeout",RECIPIENT_DISCONNECTED:"Recipient disconnected",RESPONSE_PAYLOAD_TOO_LARGE:"Response payload too large",SEND_FAILED:"Failed to send",UNSUPPORTED_METHOD:"Method not supported at destination",RECIPIENT_NOT_FOUND:"Recipient not found",REQUEST_PAYLOAD_TOO_LARGE:"Request payload too large",UNSUPPORTED_SERVER:"RPC not supported by server",UNSUPPORTED_VERSION:"Unsupported RPC version"};const AO=15360;function AT(t){return new TextEncoder().encode(t).length}function OO(t,e){if(AT(t)<=e)return t;let n=0,r=t.length;const a=new TextEncoder;for(;n<r;){const s=Math.floor((n+r+1)/2);a.encode(t.slice(0,s)).length<=e?n=s:r=s-1}return t.slice(0,n)}const OT=2e3;function lb(t,e){if(!e)return 0;let n,r;return"bytesReceived"in t?(n=t.bytesReceived,r=e.bytesReceived):"bytesSent"in t&&(n=t.bytesSent,r=e.bytesSent),n===void 0||r===void 0||t.timestamp===void 0||e.timestamp===void 0?0:(n-r)*8*1e3/(t.timestamp-e.timestamp)}const qV=1e3;class MO extends De{get sender(){return this._sender}set sender(e){this._sender=e}get constraints(){return this._constraints}constructor(e,n,r){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,s=arguments.length>4?arguments[4]:void 0;super(e,n,s),this.manuallyStopped=!1,this._isUpstreamPaused=!1,this.handleTrackMuteEvent=()=>this.debouncedTrackMuteHandler().catch(()=>this.log.debug("track mute bounce got cancelled by an unmute event",this.logContext)),this.debouncedTrackMuteHandler=RT(()=>Q(this,void 0,void 0,function*(){yield this.pauseUpstream()}),5e3),this.handleTrackUnmuteEvent=()=>Q(this,void 0,void 0,function*(){this.debouncedTrackMuteHandler.cancel("unmute"),yield this.resumeUpstream()}),this.handleEnded=()=>{this.isInBackground&&(this.reacquireTrack=!0),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),this.emit(Qe.Ended,this)},this.reacquireTrack=!1,this.providedByUser=a,this.muteLock=new to,this.pauseUpstreamLock=new to,this.processorLock=new to,this.restartLock=new to,this.setMediaStreamTrack(e,!0),this._constraints=e.getConstraints(),r&&(this._constraints=r)}get id(){return this._mediaStreamTrack.id}get dimensions(){if(this.kind!==De.Kind.Video)return;const{width:e,height:n}=this._mediaStreamTrack.getSettings();if(e&&n)return{width:e,height:n}}get isUpstreamPaused(){return this._isUpstreamPaused}get isUserProvided(){return this.providedByUser}get mediaStreamTrack(){var e,n;return(n=(e=this.processor)===null||e===void 0?void 0:e.processedTrack)!==null&&n!==void 0?n:this._mediaStreamTrack}get isLocal(){return!0}getSourceTrackSettings(){return this._mediaStreamTrack.getSettings()}setMediaStreamTrack(e,n){return Q(this,void 0,void 0,function*(){var r;if(e===this._mediaStreamTrack&&!n)return;this._mediaStreamTrack&&(this.attachedElements.forEach(s=>{zh(this._mediaStreamTrack,s)}),this.debouncedTrackMuteHandler.cancel("new-track"),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent)),this.mediaStream=new MediaStream([e]),e&&(e.addEventListener("ended",this.handleEnded),e.addEventListener("mute",this.handleTrackMuteEvent),e.addEventListener("unmute",this.handleTrackUnmuteEvent),this._constraints=e.getConstraints());let a;if(this.processor&&e){const s=yield this.processorLock.lock();try{if(this.log.debug("restarting processor",this.logContext),this.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");this.processorElement&&(Vh(e,this.processorElement),this.processorElement.muted=!0),yield this.processor.restart({track:e,kind:this.kind,element:this.processorElement}),a=this.processor.processedTrack}finally{s()}}this.sender&&((r=this.sender.transport)===null||r===void 0?void 0:r.state)!=="closed"&&(yield this.sender.replaceTrack(a??e)),!this.providedByUser&&this._mediaStreamTrack!==e&&this._mediaStreamTrack.stop(),this._mediaStreamTrack=e,e&&(this._mediaStreamTrack.enabled=!this.isMuted,yield this.resumeUpstream(),this.attachedElements.forEach(s=>{Vh(a??e,s)}))})}waitForDimensions(){return Q(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:qV;return function*(){var r;if(e.kind===De.Kind.Audio)throw new Error("cannot get dimensions for audio tracks");((r=ws())===null||r===void 0?void 0:r.os)==="iOS"&&(yield io(10));const a=Date.now();for(;Date.now()-a<n;){const s=e.dimensions;if(s)return s;yield io(50)}throw new uu("unable to get track dimensions after timeout")}()})}setDeviceId(e){return Q(this,void 0,void 0,function*(){return this._constraints.deviceId===e&&this._mediaStreamTrack.getSettings().deviceId===Sc(e)||(this._constraints.deviceId=e,this.isMuted)?!0:(yield this.restartTrack(),Sc(e)===this._mediaStreamTrack.getSettings().deviceId)})}getDeviceId(){return Q(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){if(e.source===De.Source.ScreenShare)return;const{deviceId:r,groupId:a}=e._mediaStreamTrack.getSettings(),s=e.kind===De.Kind.Audio?"audioinput":"videoinput";return n?zi.getInstance().normalizeDeviceId(s,r,a):r}()})}mute(){return Q(this,void 0,void 0,function*(){return this.setTrackMuted(!0),this})}unmute(){return Q(this,void 0,void 0,function*(){return this.setTrackMuted(!1),this})}replaceTrack(e,n){return Q(this,void 0,void 0,function*(){if(!this.sender)throw new uu("unable to replace an unpublished track");let r,a;return typeof n=="boolean"?r=n:n!==void 0&&(r=n.userProvidedTrack,a=n.stopProcessor),this.providedByUser=r??!0,this.log.debug("replace MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(e),a&&this.processor&&(yield this.stopProcessor()),this})}restart(e){return Q(this,void 0,void 0,function*(){this.manuallyStopped=!1;const n=yield this.restartLock.lock();try{e||(e=this._constraints);const{deviceId:r,facingMode:a}=e,s=L8(e,["deviceId","facingMode"]);this.log.debug("restarting track with constraints",Object.assign(Object.assign({},this.logContext),{constraints:e}));const l={audio:!1,video:!1};this.kind===De.Kind.Video?l.video=r||a?{deviceId:r,facingMode:a}:!0:l.audio=r?{deviceId:r}:!0,this.attachedElements.forEach(p=>{zh(this.mediaStreamTrack,p)}),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.stop();const h=(yield navigator.mediaDevices.getUserMedia(l)).getTracks()[0];return yield h.applyConstraints(s),h.addEventListener("ended",this.handleEnded),this.log.debug("re-acquired MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(h),this._constraints=e,this.emit(Qe.Restarted,this),this.manuallyStopped&&(this.log.warn("track was stopped during a restart, stopping restarted track",this.logContext),this.stop()),this}finally{n()}})}setTrackMuted(e){this.log.debug("setting ".concat(this.kind," track ").concat(e?"muted":"unmuted"),this.logContext),!(this.isMuted===e&&this._mediaStreamTrack.enabled!==e)&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?Qe.Muted:Qe.Unmuted,this))}get needsReAcquisition(){return this._mediaStreamTrack.readyState!=="live"||this._mediaStreamTrack.muted||!this._mediaStreamTrack.enabled||this.reacquireTrack}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return Q(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),oO()&&(this.log.debug("visibility changed, is in Background: ".concat(this.isInBackground),this.logContext),!this.isInBackground&&this.needsReAcquisition&&!this.isUserProvided&&!this.isMuted&&(this.log.debug("track needs to be reacquired, restarting ".concat(this.source),this.logContext),yield this.restart(),this.reacquireTrack=!1))})}stop(){var e;this.manuallyStopped=!0,super.stop(),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),(e=this.processor)===null||e===void 0||e.destroy(),this.processor=void 0}pauseUpstream(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!0)return;if(!this.sender){this.log.warn("unable to pause upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!0,this.emit(Qe.UpstreamPaused,this);const r=ws();if((r==null?void 0:r.name)==="Safari"&&bc(r.version,"12.0")<0)throw new nT("pauseUpstream is not supported on Safari < 12.");((e=this.sender.transport)===null||e===void 0?void 0:e.state)!=="closed"&&(yield this.sender.replaceTrack(null))}finally{n()}})}resumeUpstream(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!1)return;if(!this.sender){this.log.warn("unable to resume upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!1,this.emit(Qe.UpstreamResumed,this),((e=this.sender.transport)===null||e===void 0?void 0:e.state)!=="closed"&&(yield this.sender.replaceTrack(this.mediaStreamTrack))}finally{n()}})}getRTCStatsReport(){return Q(this,void 0,void 0,function*(){var e;return!((e=this.sender)===null||e===void 0)&&e.getStats?yield this.sender.getStats():void 0})}setProcessor(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var s;const l=yield r.processorLock.lock();try{r.log.debug("setting up processor",r.logContext);const c=document.createElement(r.kind),h={kind:r.kind,track:r._mediaStreamTrack,element:c,audioContext:r.audioContext};if(yield n.init(h),r.log.debug("processor initialized",r.logContext),r.processor&&(yield r.stopProcessor()),r.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");if(Vh(r._mediaStreamTrack,c),c.muted=!0,c.play().catch(p=>r.log.error("failed to play processor element",Object.assign(Object.assign({},r.logContext),{error:p}))),r.processor=n,r.processorElement=c,r.processor.processedTrack){for(const p of r.attachedElements)p!==r.processorElement&&a&&(zh(r._mediaStreamTrack,p),Vh(r.processor.processedTrack,p));yield(s=r.sender)===null||s===void 0?void 0:s.replaceTrack(r.processor.processedTrack)}r.emit(Qe.TrackProcessorUpdate,r.processor)}finally{l()}}()})}getProcessor(){return this.processor}stopProcessor(){return Q(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var r,a;e.processor&&(e.log.debug("stopping processor",e.logContext),(r=e.processor.processedTrack)===null||r===void 0||r.stop(),yield e.processor.destroy(),e.processor=void 0,n||((a=e.processorElement)===null||a===void 0||a.remove(),e.processorElement=void 0),yield e._mediaStreamTrack.applyConstraints(e._constraints),yield e.setMediaStreamTrack(e._mediaStreamTrack,!0),e.emit(Qe.TrackProcessorUpdate))}()})}}class ub extends MO{get enhancedNoiseCancellation(){return this.isKrispNoiseFilterEnabled}constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=arguments.length>3?arguments[3]:void 0,s=arguments.length>4?arguments[4]:void 0;super(e,De.Kind.Audio,n,r,s),this.stopOnMute=!1,this.isKrispNoiseFilterEnabled=!1,this.monitorSender=()=>Q(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let l;try{l=yield this.getSenderStats()}catch(c){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:c}));return}l&&this.prevStats&&(this._currentBitrate=lb(l,this.prevStats)),this.prevStats=l}),this.handleKrispNoiseFilterEnable=()=>{this.isKrispNoiseFilterEnabled=!0,this.log.debug("Krisp noise filter enabled",this.logContext),this.emit(Qe.AudioTrackFeatureUpdate,this,ul.TF_ENHANCED_NOISE_CANCELLATION,!0)},this.handleKrispNoiseFilterDisable=()=>{this.isKrispNoiseFilterEnabled=!1,this.log.debug("Krisp noise filter disabled",this.logContext),this.emit(Qe.AudioTrackFeatureUpdate,this,ul.TF_ENHANCED_NOISE_CANCELLATION,!1)},this.audioContext=a,this.checkForSilence()}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return Q(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===De.Source.Microphone&&this.stopOnMute&&!this.isUserProvided&&(this.log.debug("stopping mic track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{n()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return Q(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{if(!this.isMuted)return this.log.debug("Track already unmuted",this.logContext),this;const r=this._constraints.deviceId&&this._mediaStreamTrack.getSettings().deviceId!==Sc(this._constraints.deviceId);return this.source===De.Source.Microphone&&(this.stopOnMute||this._mediaStreamTrack.readyState==="ended"||r)&&!this.isUserProvided&&(this.log.debug("reacquiring mic track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this}finally{n()}})}restartTrack(e){return Q(this,void 0,void 0,function*(){let n;if(e){const r=CT({audio:e});typeof r.audio!="boolean"&&(n=r.audio)}yield this.restart(n)})}restart(e){const n=Object.create(null,{restart:{get:()=>super.restart}});return Q(this,void 0,void 0,function*(){const r=yield n.restart.call(this,e);return this.checkForSilence(),r})}startMonitor(){ao()&&(this.monitorInterval||(this.monitorInterval=setInterval(()=>{this.monitorSender()},OT)))}setProcessor(e){return Q(this,void 0,void 0,function*(){var n;const r=yield this.processorLock.lock();try{if(!fl()&&!this.audioContext)throw Error("Audio context needs to be set on LocalAudioTrack in order to enable processors");this.processor&&(yield this.stopProcessor());const a={kind:this.kind,track:this._mediaStreamTrack,audioContext:this.audioContext};this.log.debug("setting up audio processor ".concat(e.name),this.logContext),yield e.init(a),this.processor=e,this.processor.processedTrack&&(yield(n=this.sender)===null||n===void 0?void 0:n.replaceTrack(this.processor.processedTrack),this.processor.processedTrack.addEventListener("enable-lk-krisp-noise-filter",this.handleKrispNoiseFilterEnable),this.processor.processedTrack.addEventListener("disable-lk-krisp-noise-filter",this.handleKrispNoiseFilterDisable)),this.emit(Qe.TrackProcessorUpdate,this.processor)}finally{r()}})}setAudioContext(e){this.audioContext=e}getSenderStats(){return Q(this,void 0,void 0,function*(){var e;if(!(!((e=this.sender)===null||e===void 0)&&e.getStats))return;const n=yield this.sender.getStats();let r;return n.forEach(a=>{a.type==="outbound-rtp"&&(r={type:"audio",streamId:a.id,packetsSent:a.packetsSent,packetsLost:a.packetsLost,bytesSent:a.bytesSent,timestamp:a.timestamp,roundTripTime:a.roundTripTime,jitter:a.jitter})}),r})}checkForSilence(){return Q(this,void 0,void 0,function*(){const e=yield gO(this);return e&&(this.isMuted||this.log.warn("silence detected on local audio track",this.logContext),this.emit(Qe.AudioSilenceDetected)),e})}}function WV(t,e,n){switch(t.kind){case"audio":return new ub(t,e,!1,void 0,n);case"video":return new db(t,e,!1,n);default:throw new uu("unsupported track type: ".concat(t.kind))}}const GV=Object.values(Pg),YV=Object.values(lT),KV=Object.values(uT),ZV=[Pg.h180,Pg.h360],QV=[lT.h180,lT.h360],XV=t=>[{scaleResolutionDownBy:2,fps:t.encoding.maxFramerate}].map(n=>{var r,a;return new gr(Math.floor(t.width/n.scaleResolutionDownBy),Math.floor(t.height/n.scaleResolutionDownBy),Math.max(15e4,Math.floor(t.encoding.maxBitrate/(Math.pow(n.scaleResolutionDownBy,2)*(((r=t.encoding.maxFramerate)!==null&&r!==void 0?r:30)/((a=n.fps)!==null&&a!==void 0?a:30))))),n.fps,t.encoding.priority)}),MT=["q","h","f"];function LT(t,e,n,r){var a,s;let l=r==null?void 0:r.videoEncoding;t&&(l=r==null?void 0:r.screenShareEncoding);const c=r==null?void 0:r.simulcast,h=r==null?void 0:r.scalabilityMode,p=r==null?void 0:r.videoCodec;if(!l&&!c&&!h||!e||!n)return[{}];l||(l=ez(t,e,n,p),Nn.debug("using video encoding",l));const v=l.maxFramerate,b=new gr(e,n,l.maxBitrate,l.maxFramerate,l.priority);if(h&&Dg(p)){const E=new cb(h),R=[];if(E.spatial>3)throw new Error("unsupported scalabilityMode: ".concat(h));const M=ws();if(yc()||fl()||(M==null?void 0:M.name)==="Chrome"&&bc(M==null?void 0:M.version,"113")<0){const A=E.suffix=="h"?2:3;for(let U=0;U<E.spatial;U+=1)R.push({rid:MT[2-U],maxBitrate:l.maxBitrate/Math.pow(A,U),maxFramerate:b.encoding.maxFramerate});R[0].scalabilityMode=h}else R.push({maxBitrate:l.maxBitrate,maxFramerate:b.encoding.maxFramerate,scalabilityMode:h});return b.encoding.priority&&(R[0].priority=b.encoding.priority,R[0].networkPriority=b.encoding.priority),Nn.debug("using svc encoding",{encodings:R}),R}if(!c)return[l];let k=[];t?k=(a=NO(r==null?void 0:r.screenShareSimulcastLayers))!==null&&a!==void 0?a:LO(t,b):k=(s=NO(r==null?void 0:r.videoSimulcastLayers))!==null&&s!==void 0?s:LO(t,b);let T;if(k.length>0){const E=k[0];k.length>1&&([,T]=k);const R=Math.max(e,n);if(R>=960&&T)return NT(e,n,[E,T,b],v);if(R>=480)return NT(e,n,[E,b],v)}return NT(e,n,[b])}function JV(t,e,n){var r,a,s,l;if(!n.backupCodec||n.backupCodec===!0||n.backupCodec.codec===n.videoCodec)return;e!==n.backupCodec.codec&&Nn.warn("requested a different codec than specified as backup",{serverRequested:e,backup:n.backupCodec.codec}),n.videoCodec=e,n.videoEncoding=n.backupCodec.encoding;const c=t.mediaStreamTrack.getSettings(),h=(r=c.width)!==null&&r!==void 0?r:(a=t.dimensions)===null||a===void 0?void 0:a.width,p=(s=c.height)!==null&&s!==void 0?s:(l=t.dimensions)===null||l===void 0?void 0:l.height;return t.source===De.Source.ScreenShare&&n.simulcast&&(n.simulcast=!1),LT(t.source===De.Source.ScreenShare,h,p,n)}function ez(t,e,n,r){const a=tz(t,e,n);let{encoding:s}=a[0];const l=Math.max(e,n);for(let c=0;c<a.length;c+=1){const h=a[c];if(s=h.encoding,h.width>=l)break}if(r)switch(r){case"av1":s=Object.assign({},s),s.maxBitrate=s.maxBitrate*.7;break;case"vp9":s=Object.assign({},s),s.maxBitrate=s.maxBitrate*.85;break}return s}function tz(t,e,n){if(t)return KV;const r=e>n?e/n:n/e;return Math.abs(r-16/9)<Math.abs(r-4/3)?GV:YV}function LO(t,e){if(t)return XV(e);const{width:n,height:r}=e,a=n>r?n/r:r/n;return Math.abs(a-16/9)<Math.abs(a-4/3)?ZV:QV}function NT(t,e,n,r){const a=[];if(n.forEach((s,l)=>{if(l>=MT.length)return;const c=Math.min(t,e),p={rid:MT[l],scaleResolutionDownBy:Math.max(1,c/Math.min(s.width,s.height)),maxBitrate:s.encoding.maxBitrate},v=r&&s.encoding.maxFramerate?Math.min(r,s.encoding.maxFramerate):s.encoding.maxFramerate;v&&(p.maxFramerate=v);const b=Bh()||l===0;s.encoding.priority&&b&&(p.priority=s.encoding.priority,p.networkPriority=s.encoding.priority),a.push(p)}),fl()&&lO()==="ios"){let s;a.forEach(c=>{s?c.maxFramerate&&c.maxFramerate>s&&(s=c.maxFramerate):s=c.maxFramerate});let l=!0;a.forEach(c=>{var h;c.maxFramerate!=s&&(l&&(l=!1,Nn.info("Simulcast on iOS React-Native requires all encodings to share the same framerate.")),Nn.info('Setting framerate of encoding "'.concat((h=c.rid)!==null&&h!==void 0?h:"",'" to ').concat(s)),c.maxFramerate=s)})}return a}function NO(t){if(t)return t.sort((e,n)=>{const{encoding:r}=e,{encoding:a}=n;return r.maxBitrate>a.maxBitrate?1:r.maxBitrate<a.maxBitrate?-1:r.maxBitrate===a.maxBitrate&&r.maxFramerate&&a.maxFramerate?r.maxFramerate>a.maxFramerate?1:-1:0})}class cb{constructor(e){const n=e.match(/^L(\d)T(\d)(h|_KEY|_KEY_SHIFT){0,1}$/);if(!n)throw new Error("invalid scalability mode");if(this.spatial=parseInt(n[1]),this.temporal=parseInt(n[2]),n.length>3)switch(n[3]){case"h":case"_KEY":case"_KEY_SHIFT":this.suffix=n[3]}}toString(){var e;return"L".concat(this.spatial,"T").concat(this.temporal).concat((e=this.suffix)!==null&&e!==void 0?e:"")}}function nz(t){return t.source===De.Source.ScreenShare||t.constraints.height&&Sc(t.constraints.height)>=1080?"maintain-resolution":"balanced"}const rz=5e3;class db extends MO{get sender(){return this._sender}set sender(e){this._sender=e,this.degradationPreference&&this.setDegradationPreference(this.degradationPreference)}constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=arguments.length>3?arguments[3]:void 0;super(e,De.Kind.Video,n,r,a),this.simulcastCodecs=new Map,this.degradationPreference="balanced",this.monitorSender=()=>Q(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let s;try{s=yield this.getSenderStats()}catch(c){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:c}));return}const l=new Map(s.map(c=>[c.rid,c]));if(this.prevStats){let c=0;l.forEach((h,p)=>{var v;const b=(v=this.prevStats)===null||v===void 0?void 0:v.get(p);c+=lb(h,b)}),this._currentBitrate=c}this.prevStats=l}),this.senderLock=new to}get isSimulcast(){return!!(this.sender&&this.sender.getParameters().encodings.length>1)}startMonitor(e){var n;if(this.signalClient=e,!ao())return;const r=(n=this.sender)===null||n===void 0?void 0:n.getParameters();r&&(this.encodings=r.encodings),!this.monitorInterval&&(this.monitorInterval=setInterval(()=>{this.monitorSender()},OT))}stop(){this._mediaStreamTrack.getConstraints(),this.simulcastCodecs.forEach(e=>{e.mediaStreamTrack.stop()}),super.stop()}pauseUpstream(){const e=Object.create(null,{pauseUpstream:{get:()=>super.pauseUpstream}});return Q(this,void 0,void 0,function*(){var n,r,a,s,l;yield e.pauseUpstream.call(this);try{for(var c=!0,h=pc(this.simulcastCodecs.values()),p;p=yield h.next(),n=p.done,!n;c=!0)s=p.value,c=!1,yield(l=s.sender)===null||l===void 0?void 0:l.replaceTrack(null)}catch(v){r={error:v}}finally{try{!c&&!n&&(a=h.return)&&(yield a.call(h))}finally{if(r)throw r.error}}})}resumeUpstream(){const e=Object.create(null,{resumeUpstream:{get:()=>super.resumeUpstream}});return Q(this,void 0,void 0,function*(){var n,r,a,s,l;yield e.resumeUpstream.call(this);try{for(var c=!0,h=pc(this.simulcastCodecs.values()),p;p=yield h.next(),n=p.done,!n;c=!0){s=p.value,c=!1;const v=s;yield(l=v.sender)===null||l===void 0?void 0:l.replaceTrack(v.mediaStreamTrack)}}catch(v){r={error:v}}finally{try{!c&&!n&&(a=h.return)&&(yield a.call(h))}finally{if(r)throw r.error}}})}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return Q(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===De.Source.Camera&&!this.isUserProvided&&(this.log.debug("stopping camera track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{n()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return Q(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.source===De.Source.Camera&&!this.isUserProvided&&(this.log.debug("reacquiring camera track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this):(this.log.debug("Track already unmuted",this.logContext),this)}finally{n()}})}setTrackMuted(e){super.setTrackMuted(e);for(const n of this.simulcastCodecs.values())n.mediaStreamTrack.enabled=!e}getSenderStats(){return Q(this,void 0,void 0,function*(){var e;if(!(!((e=this.sender)===null||e===void 0)&&e.getStats))return[];const n=[],r=yield this.sender.getStats();return r.forEach(a=>{var s;if(a.type==="outbound-rtp"){const l={type:"video",streamId:a.id,frameHeight:a.frameHeight,frameWidth:a.frameWidth,framesPerSecond:a.framesPerSecond,framesSent:a.framesSent,firCount:a.firCount,pliCount:a.pliCount,nackCount:a.nackCount,packetsSent:a.packetsSent,bytesSent:a.bytesSent,qualityLimitationReason:a.qualityLimitationReason,qualityLimitationDurations:a.qualityLimitationDurations,qualityLimitationResolutionChanges:a.qualityLimitationResolutionChanges,rid:(s=a.rid)!==null&&s!==void 0?s:a.id,retransmittedPacketsSent:a.retransmittedPacketsSent,targetBitrate:a.targetBitrate,timestamp:a.timestamp},c=r.get(a.remoteId);c&&(l.jitter=c.jitter,l.packetsLost=c.packetsLost,l.roundTripTime=c.roundTripTime),n.push(l)}}),n.sort((a,s)=>{var l,c;return((l=s.frameWidth)!==null&&l!==void 0?l:0)-((c=a.frameWidth)!==null&&c!==void 0?c:0)}),n})}setPublishingQuality(e){const n=[];for(let r=Go.LOW;r<=Go.HIGH;r+=1)n.push(new $1({quality:r,enabled:r<=e}));this.log.debug("setting publishing quality. max quality ".concat(e),this.logContext),this.setPublishingLayers(n)}restartTrack(e){return Q(this,void 0,void 0,function*(){var n,r,a,s,l;let c;if(e){const b=CT({video:e});typeof b.video!="boolean"&&(c=b.video)}yield this.restart(c);try{for(var h=!0,p=pc(this.simulcastCodecs.values()),v;v=yield p.next(),n=v.done,!n;h=!0){s=v.value,h=!1;const b=s;b.sender&&((l=b.sender.transport)===null||l===void 0?void 0:l.state)!=="closed"&&(b.mediaStreamTrack=this.mediaStreamTrack.clone(),yield b.sender.replaceTrack(b.mediaStreamTrack))}}catch(b){r={error:b}}finally{try{!h&&!n&&(a=p.return)&&(yield a.call(p))}finally{if(r)throw r.error}}})}setProcessor(e){const n=Object.create(null,{setProcessor:{get:()=>super.setProcessor}});return Q(this,arguments,void 0,function(r){var a=this;let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var l,c,h,p,v,b;if(yield n.setProcessor.call(a,r,s),!((v=a.processor)===null||v===void 0)&&v.processedTrack)try{for(var k=!0,T=pc(a.simulcastCodecs.values()),E;E=yield T.next(),l=E.done,!l;k=!0)p=E.value,k=!1,yield(b=p.sender)===null||b===void 0?void 0:b.replaceTrack(a.processor.processedTrack)}catch(R){c={error:R}}finally{try{!k&&!l&&(h=T.return)&&(yield h.call(T))}finally{if(c)throw c.error}}}()})}setDegradationPreference(e){return Q(this,void 0,void 0,function*(){if(this.degradationPreference=e,this.sender)try{this.log.debug("setting degradationPreference to ".concat(e),this.logContext);const n=this.sender.getParameters();n.degradationPreference=e,this.sender.setParameters(n)}catch(n){this.log.warn("failed to set degradationPreference",Object.assign({error:n},this.logContext))}})}addSimulcastTrack(e,n){if(this.simulcastCodecs.has(e)){this.log.error("".concat(e," already added, skipping adding simulcast codec"),this.logContext);return}const r={codec:e,mediaStreamTrack:this.mediaStreamTrack.clone(),sender:void 0,encodings:n};return this.simulcastCodecs.set(e,r),r}setSimulcastTrackSender(e,n){const r=this.simulcastCodecs.get(e);r&&(r.sender=n,setTimeout(()=>{this.subscribedCodecs&&this.setPublishingCodecs(this.subscribedCodecs)},rz))}setPublishingCodecs(e){return Q(this,void 0,void 0,function*(){var n,r,a,s,l,c,h;if(this.log.debug("setting publishing codecs",Object.assign(Object.assign({},this.logContext),{codecs:e,currentCodec:this.codec})),!this.codec&&e.length>0)return yield this.setPublishingLayers(e[0].qualities),[];this.subscribedCodecs=e;const p=[];try{for(n=!0,r=pc(e);a=yield r.next(),s=a.done,!s;n=!0){h=a.value,n=!1;const v=h;if(!this.codec||this.codec===v.codec)yield this.setPublishingLayers(v.qualities);else{const b=this.simulcastCodecs.get(v.codec);if(this.log.debug("try setPublishingCodec for ".concat(v.codec),Object.assign(Object.assign({},this.logContext),{simulcastCodecInfo:b})),!b||!b.sender){for(const k of v.qualities)if(k.enabled){p.push(v.codec);break}}else b.encodings&&(this.log.debug("try setPublishingLayersForSender ".concat(v.codec),this.logContext),yield IO(b.sender,b.encodings,v.qualities,this.senderLock,this.log,this.logContext))}}}catch(v){l={error:v}}finally{try{!n&&!s&&(c=r.return)&&(yield c.call(r))}finally{if(l)throw l.error}}return p})}setPublishingLayers(e){return Q(this,void 0,void 0,function*(){this.log.debug("setting publishing layers",Object.assign(Object.assign({},this.logContext),{qualities:e})),!(!this.sender||!this.encodings)&&(yield IO(this.sender,this.encodings,e,this.senderLock,this.log,this.logContext))})}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return Q(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),oO()&&this.isInBackground&&this.source===De.Source.Camera&&(this._mediaStreamTrack.enabled=!1)})}}function IO(t,e,n,r,a,s){return Q(this,void 0,void 0,function*(){const l=yield r.lock();a.debug("setPublishingLayersForSender",Object.assign(Object.assign({},s),{sender:t,qualities:n,senderEncodings:e}));try{const c=t.getParameters(),{encodings:h}=c;if(!h)return;if(h.length!==e.length){a.warn("cannot set publishing layers, encodings mismatch",Object.assign(Object.assign({},s),{encodings:h,senderEncodings:e}));return}let p=!1;const v=ws();if((v==null?void 0:v.name)==="Chrome"&&bc(v==null?void 0:v.version,"133")>0&&h[0].scalabilityMode){const k=h[0],T=new cb(k.scalabilityMode);let E=Nh.OFF;if(n.forEach(R=>{R.enabled&&(E===Nh.OFF||R.quality>E)&&(E=R.quality)}),E===Nh.OFF)k.active&&(k.active=!1,p=!0);else if(!k.active||T.spatial!==E+1){p=!0,k.active=!0;const R=new cb(e[0].scalabilityMode);T.spatial=E+1,T.suffix=R.suffix,T.spatial===1&&(T.suffix=void 0),k.scalabilityMode=T.toString(),k.scaleResolutionDownBy=Math.pow(2,2-E),e[0].maxBitrate&&(k.maxBitrate=e[0].maxBitrate/(k.scaleResolutionDownBy*k.scaleResolutionDownBy))}}else h.forEach((k,T)=>{var E;let R=(E=k.rid)!==null&&E!==void 0?E:"";R===""&&(R="q");const M=UO(R),A=n.find(U=>U.quality===M);A&&k.active!==A.enabled&&(p=!0,k.active=A.enabled,a.debug("setting layer ".concat(A.quality," to ").concat(k.active?"enabled":"disabled"),s),Bh()&&(A.enabled?(k.scaleResolutionDownBy=e[T].scaleResolutionDownBy,k.maxBitrate=e[T].maxBitrate,k.maxFrameRate=e[T].maxFrameRate):(k.scaleResolutionDownBy=4,k.maxBitrate=10,k.maxFrameRate=2)))});p&&(c.encodings=h,a.debug("setting encodings",Object.assign(Object.assign({},s),{encodings:c.encodings})),yield t.setParameters(c))}finally{l()}})}function UO(t){switch(t){case"f":return Go.HIGH;case"h":return Go.MEDIUM;case"q":return Go.LOW;default:return Go.HIGH}}function FO(t,e,n,r){if(!n)return[new Gd({quality:Go.HIGH,width:t,height:e,bitrate:0,ssrc:0})];if(r){const a=n[0].scalabilityMode,s=new cb(a),l=[],c=s.suffix=="h"?1.5:2,h=s.suffix=="h"?2:3;for(let p=0;p<s.spatial;p+=1)l.push(new Gd({quality:Math.min(Go.HIGH,s.spatial-1)-p,width:Math.ceil(t/Math.pow(c,p)),height:Math.ceil(e/Math.pow(c,p)),bitrate:n[0].maxBitrate?Math.ceil(n[0].maxBitrate/Math.pow(h,p)):0,ssrc:0}));return l}return n.map(a=>{var s,l,c;const h=(s=a.scaleResolutionDownBy)!==null&&s!==void 0?s:1;let p=UO((l=a.rid)!==null&&l!==void 0?l:"");return new Gd({quality:p,width:Math.ceil(t/h),height:Math.ceil(e/h),bitrate:(c=a.maxBitrate)!==null&&c!==void 0?c:0,ssrc:0})})}const jO="_lossy",VO="_reliable",iz=2*1e3,IT="leave-reconnect";var Es;(function(t){t[t.New=0]="New",t[t.Connected=1]="Connected",t[t.Disconnected=2]="Disconnected",t[t.Reconnecting=3]="Reconnecting",t[t.Closed=4]="Closed"})(Es||(Es={}));class az extends dl.EventEmitter{get isClosed(){return this._isClosed}get pendingReconnect(){return!!this.reconnectTimeout}constructor(e){var n;super(),this.options=e,this.rtcConfig={},this.peerConnectionTimeout=DT.peerConnectionTimeout,this.fullReconnectOnNext=!1,this.subscriberPrimary=!1,this.pcState=Es.New,this._isClosed=!0,this.pendingTrackResolvers={},this.reconnectAttempts=0,this.reconnectStart=0,this.attemptingReconnect=!1,this.joinAttempts=0,this.maxJoinAttempts=1,this.shouldFailNext=!1,this.log=Nn,this.handleDataChannel=r=>Q(this,[r],void 0,function(a){var s=this;let{channel:l}=a;return function*(){if(l){if(l.label===VO)s.reliableDCSub=l;else if(l.label===jO)s.lossyDCSub=l;else return;s.log.debug("on data channel ".concat(l.id,", ").concat(l.label),s.logContext),l.onmessage=s.handleDataMessage}}()}),this.handleDataMessage=r=>Q(this,void 0,void 0,function*(){var a,s;const l=yield this.dataProcessLock.lock();try{let c;if(r.data instanceof ArrayBuffer)c=r.data;else if(r.data instanceof Blob)c=yield r.data.arrayBuffer();else{this.log.error("unsupported data type",Object.assign(Object.assign({},this.logContext),{data:r.data}));return}const h=ro.fromBinary(new Uint8Array(c));((a=h.value)===null||a===void 0?void 0:a.case)==="speaker"?this.emit(et.ActiveSpeakersUpdate,h.value.value.speakers):(((s=h.value)===null||s===void 0?void 0:s.case)==="user"&&sz(h,h.value.value),this.emit(et.DataPacketReceived,h))}finally{l()}}),this.handleDataError=r=>{const s=r.currentTarget.maxRetransmits===0?"lossy":"reliable";if(r instanceof ErrorEvent&&r.error){const{error:l}=r.error;this.log.error("DataChannel error on ".concat(s,": ").concat(r.message),Object.assign(Object.assign({},this.logContext),{error:l}))}else this.log.error("Unknown DataChannel error on ".concat(s),Object.assign(Object.assign({},this.logContext),{event:r}))},this.handleBufferedAmountLow=r=>{const s=r.currentTarget.maxRetransmits===0?$n.LOSSY:$n.RELIABLE;this.updateAndEmitDCBufferStatus(s)},this.handleDisconnect=(r,a)=>{if(this._isClosed)return;this.log.warn("".concat(r," disconnected"),this.logContext),this.reconnectAttempts===0&&(this.reconnectStart=Date.now());const s=h=>{this.log.warn("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(h,"ms. giving up"),this.logContext),this.emit(et.Disconnected),this.close()},l=Date.now()-this.reconnectStart;let c=this.getNextRetryDelay({elapsedMs:l,retryCount:this.reconnectAttempts});if(c===null){s(l);return}r===IT&&(c=0),this.log.debug("reconnecting in ".concat(c,"ms"),this.logContext),this.clearReconnectTimeout(),this.token&&this.regionUrlProvider&&this.regionUrlProvider.updateToken(this.token),this.reconnectTimeout=Qi.setTimeout(()=>this.attemptReconnect(a).finally(()=>this.reconnectTimeout=void 0),c)},this.waitForRestarted=()=>new Promise((r,a)=>{this.pcState===Es.Connected&&r();const s=()=>{this.off(et.Disconnected,l),r()},l=()=>{this.off(et.Restarted,s),a()};this.once(et.Restarted,s),this.once(et.Disconnected,l)}),this.updateAndEmitDCBufferStatus=r=>{const a=this.isBufferStatusLow(r);typeof a<"u"&&a!==this.dcBufferStatus.get(r)&&(this.dcBufferStatus.set(r,a),this.emit(et.DCBufferStatusChanged,a,r))},this.isBufferStatusLow=r=>{const a=this.dataChannelForKind(r);if(a)return a.bufferedAmount<=a.bufferedAmountLowThreshold},this.handleBrowserOnLine=()=>{this.client.currentState===Or.RECONNECTING&&(this.clearReconnectTimeout(),this.attemptReconnect(Ih.RR_SIGNAL_DISCONNECTED))},this.log=lu((n=e.loggerName)!==null&&n!==void 0?n:xs.Engine),this.loggerOptions={loggerName:e.loggerName,loggerContextCb:()=>this.logContext},this.client=new TT(void 0,this.loggerOptions),this.client.signalLatency=this.options.expSignalLatency,this.reconnectPolicy=this.options.reconnectPolicy,this.registerOnLineListener(),this.closingLock=new to,this.dataProcessLock=new to,this.dcBufferStatus=new Map([[$n.LOSSY,!0],[$n.RELIABLE,!0]]),this.client.onParticipantUpdate=r=>this.emit(et.ParticipantUpdate,r),this.client.onConnectionQuality=r=>this.emit(et.ConnectionQualityUpdate,r),this.client.onRoomUpdate=r=>this.emit(et.RoomUpdate,r),this.client.onSubscriptionError=r=>this.emit(et.SubscriptionError,r),this.client.onSubscriptionPermissionUpdate=r=>this.emit(et.SubscriptionPermissionUpdate,r),this.client.onSpeakersChanged=r=>this.emit(et.SpeakersChanged,r),this.client.onStreamStateUpdate=r=>this.emit(et.StreamStateChanged,r),this.client.onRequestResponse=r=>this.emit(et.SignalRequestResponse,r)}get logContext(){var e,n,r,a,s,l,c,h;return{room:(n=(e=this.latestJoinResponse)===null||e===void 0?void 0:e.room)===null||n===void 0?void 0:n.name,roomID:(a=(r=this.latestJoinResponse)===null||r===void 0?void 0:r.room)===null||a===void 0?void 0:a.sid,participant:(l=(s=this.latestJoinResponse)===null||s===void 0?void 0:s.participant)===null||l===void 0?void 0:l.identity,pID:(h=(c=this.latestJoinResponse)===null||c===void 0?void 0:c.participant)===null||h===void 0?void 0:h.sid}}join(e,n,r,a){return Q(this,void 0,void 0,function*(){this.url=e,this.token=n,this.signalOpts=r,this.maxJoinAttempts=r.maxRetries;try{this.joinAttempts+=1,this.setupSignalClientCallbacks();const s=yield this.client.join(e,n,r,a);return this._isClosed=!1,this.latestJoinResponse=s,this.subscriberPrimary=s.subscriberPrimary,this.pcManager||(yield this.configure(s)),(!this.subscriberPrimary||s.fastPublish)&&this.negotiate(),this.clientConfiguration=s.clientConfiguration,setTimeout(()=>{this.emit(et.SignalConnected)},10),s}catch(s){if(s instanceof br&&s.reason===Un.ServerUnreachable&&(this.log.warn("Couldn't connect to server, attempt ".concat(this.joinAttempts," of ").concat(this.maxJoinAttempts),this.logContext),this.joinAttempts<this.maxJoinAttempts))return this.join(e,n,r,a);throw s}})}close(){return Q(this,void 0,void 0,function*(){const e=yield this.closingLock.lock();if(this.isClosed){e();return}try{this._isClosed=!0,this.joinAttempts=0,this.emit(et.Closing),this.removeAllListeners(),this.deregisterOnLineListener(),this.clearPendingReconnect(),yield this.cleanupPeerConnections(),yield this.cleanupClient()}finally{e()}})}cleanupPeerConnections(){return Q(this,void 0,void 0,function*(){var e;yield(e=this.pcManager)===null||e===void 0?void 0:e.close(),this.pcManager=void 0;const n=r=>{r&&(r.close(),r.onbufferedamountlow=null,r.onclose=null,r.onclosing=null,r.onerror=null,r.onmessage=null,r.onopen=null)};n(this.lossyDC),n(this.lossyDCSub),n(this.reliableDC),n(this.reliableDCSub),this.lossyDC=void 0,this.lossyDCSub=void 0,this.reliableDC=void 0,this.reliableDCSub=void 0})}cleanupClient(){return Q(this,void 0,void 0,function*(){yield this.client.close(),this.client.resetCallbacks()})}addTrack(e){if(this.pendingTrackResolvers[e.cid])throw new uu("a track with the same ID has already been published");return new Promise((n,r)=>{const a=setTimeout(()=>{delete this.pendingTrackResolvers[e.cid],r(new br("publication of local track timed out, no response from server",Un.InternalError))},1e4);this.pendingTrackResolvers[e.cid]={resolve:s=>{clearTimeout(a),n(s)},reject:()=>{clearTimeout(a),r(new Error("Cancelled publication by calling unpublish"))}},this.client.sendAddTrack(e)})}removeTrack(e){if(e.track&&this.pendingTrackResolvers[e.track.id]){const{reject:n}=this.pendingTrackResolvers[e.track.id];n&&n(),delete this.pendingTrackResolvers[e.track.id]}try{return this.pcManager.removeTrack(e),!0}catch(n){this.log.warn("failed to remove track",Object.assign(Object.assign({},this.logContext),{error:n}))}return!1}updateMuteStatus(e,n){this.client.sendMuteTrack(e,n)}get dataSubscriberReadyState(){var e;return(e=this.reliableDCSub)===null||e===void 0?void 0:e.readyState}getConnectedServerAddress(){return Q(this,void 0,void 0,function*(){var e;return(e=this.pcManager)===null||e===void 0?void 0:e.getConnectedAddress()})}setRegionUrlProvider(e){this.regionUrlProvider=e}configure(e){return Q(this,void 0,void 0,function*(){var n,r;if(this.pcManager&&this.pcManager.currentState!==Jr.NEW)return;this.participantSid=(n=e.participant)===null||n===void 0?void 0:n.sid;const a=this.makeRTCConfiguration(e);this.pcManager=new $V(a,e.subscriberPrimary,this.loggerOptions),this.emit(et.TransportsCreated,this.pcManager.publisher,this.pcManager.subscriber),this.pcManager.onIceCandidate=(s,l)=>{this.client.sendIceCandidate(s,l)},this.pcManager.onPublisherOffer=s=>{this.client.sendOffer(s)},this.pcManager.onDataChannel=this.handleDataChannel,this.pcManager.onStateChange=(s,l,c)=>Q(this,void 0,void 0,function*(){if(this.log.debug("primary PC state changed ".concat(s),this.logContext),["closed","disconnected","failed"].includes(l)&&(this.publisherConnectionPromise=void 0),s===Jr.CONNECTED){const v=this.pcState===Es.New;this.pcState=Es.Connected,v&&this.emit(et.Connected,e)}else s===Jr.FAILED&&this.pcState===Es.Connected&&(this.pcState=Es.Disconnected,this.handleDisconnect("peerconnection failed",c==="failed"?Ih.RR_SUBSCRIBER_FAILED:Ih.RR_PUBLISHER_FAILED));const h=this.client.isDisconnected||this.client.currentState===Or.RECONNECTING,p=[Jr.FAILED,Jr.CLOSING,Jr.CLOSED].includes(s);h&&p&&!this._isClosed&&this.emit(et.Offline)}),this.pcManager.onTrack=s=>{this.emit(et.MediaTrackAdded,s.track,s.streams[0],s.receiver)},oz((r=e.serverInfo)===null||r===void 0?void 0:r.protocol)||this.createDataChannels()})}setupSignalClientCallbacks(){this.client.onAnswer=e=>Q(this,void 0,void 0,function*(){this.pcManager&&(this.log.debug("received server answer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type})),yield this.pcManager.setPublisherAnswer(e))}),this.client.onTrickle=(e,n)=>{this.pcManager&&(this.log.debug("got ICE candidate from peer",Object.assign(Object.assign({},this.logContext),{candidate:e,target:n})),this.pcManager.addIceCandidate(e,n))},this.client.onOffer=e=>Q(this,void 0,void 0,function*(){if(!this.pcManager)return;const n=yield this.pcManager.createSubscriberAnswerFromOffer(e);this.client.sendAnswer(n)}),this.client.onLocalTrackPublished=e=>{var n;if(this.log.debug("received trackPublishedResponse",Object.assign(Object.assign({},this.logContext),{cid:e.cid,track:(n=e.track)===null||n===void 0?void 0:n.sid})),!this.pendingTrackResolvers[e.cid]){this.log.error("missing track resolver for ".concat(e.cid),Object.assign(Object.assign({},this.logContext),{cid:e.cid}));return}const{resolve:r}=this.pendingTrackResolvers[e.cid];delete this.pendingTrackResolvers[e.cid],r(e.track)},this.client.onLocalTrackUnpublished=e=>{this.emit(et.LocalTrackUnpublished,e)},this.client.onLocalTrackSubscribed=e=>{this.emit(et.LocalTrackSubscribed,e)},this.client.onTokenRefresh=e=>{this.token=e},this.client.onRemoteMuteChanged=(e,n)=>{this.emit(et.RemoteMute,e,n)},this.client.onSubscribedQualityUpdate=e=>{this.emit(et.SubscribedQualityUpdate,e)},this.client.onClose=()=>{this.handleDisconnect("signal",Ih.RR_SIGNAL_DISCONNECTED)},this.client.onLeave=e=>{switch(this.log.debug("client leave request",Object.assign(Object.assign({},this.logContext),{reason:e==null?void 0:e.reason})),e.regions&&this.regionUrlProvider&&(this.log.debug("updating regions",this.logContext),this.regionUrlProvider.setServerReportedRegions(e.regions)),e.action){case Fh.DISCONNECT:this.emit(et.Disconnected,e==null?void 0:e.reason),this.close();break;case Fh.RECONNECT:this.fullReconnectOnNext=!0,this.handleDisconnect(IT);break;case Fh.RESUME:this.handleDisconnect(IT)}}}makeRTCConfiguration(e){var n;const r=Object.assign({},this.rtcConfig);if(!((n=this.signalOpts)===null||n===void 0)&&n.e2eeEnabled&&(this.log.debug("E2EE - setting up transports with insertable streams",this.logContext),r.encodedInsertableStreams=!0),e.iceServers&&!r.iceServers){const a=[];e.iceServers.forEach(s=>{const l={urls:s.urls};s.username&&(l.username=s.username),s.credential&&(l.credential=s.credential),a.push(l)}),r.iceServers=a}return e.clientConfiguration&&e.clientConfiguration.forceRelay===xg.ENABLED&&(r.iceTransportPolicy="relay"),r.sdpSemantics="unified-plan",r.continualGatheringPolicy="gather_continually",r}createDataChannels(){this.pcManager&&(this.lossyDC&&(this.lossyDC.onmessage=null,this.lossyDC.onerror=null),this.reliableDC&&(this.reliableDC.onmessage=null,this.reliableDC.onerror=null),this.lossyDC=this.pcManager.createPublisherDataChannel(jO,{ordered:!0,maxRetransmits:0}),this.reliableDC=this.pcManager.createPublisherDataChannel(VO,{ordered:!0}),this.lossyDC.onmessage=this.handleDataMessage,this.reliableDC.onmessage=this.handleDataMessage,this.lossyDC.onerror=this.handleDataError,this.reliableDC.onerror=this.handleDataError,this.lossyDC.bufferedAmountLowThreshold=65535,this.reliableDC.bufferedAmountLowThreshold=65535,this.lossyDC.onbufferedamountlow=this.handleBufferedAmountLow,this.reliableDC.onbufferedamountlow=this.handleBufferedAmountLow)}createSender(e,n,r){return Q(this,void 0,void 0,function*(){if(cT())return yield this.createTransceiverRTCRtpSender(e,n,r);if(dT())return this.log.warn("using add-track fallback",this.logContext),yield this.createRTCRtpSender(e.mediaStreamTrack);throw new xi("Required webRTC APIs not supported on this device")})}createSimulcastSender(e,n,r,a){return Q(this,void 0,void 0,function*(){if(cT())return this.createSimulcastTransceiverSender(e,n,r,a);if(dT())return this.log.debug("using add-track fallback",this.logContext),this.createRTCRtpSender(e.mediaStreamTrack);throw new xi("Cannot stream on this device")})}createTransceiverRTCRtpSender(e,n,r){return Q(this,void 0,void 0,function*(){if(!this.pcManager)throw new xi("publisher is closed");const a=[];e.mediaStream&&a.push(e.mediaStream),$h(e)&&(e.codec=n.videoCodec);const s={direction:"sendonly",streams:a};return r&&(s.sendEncodings=r),(yield this.pcManager.addPublisherTransceiver(e.mediaStreamTrack,s)).sender})}createSimulcastTransceiverSender(e,n,r,a){return Q(this,void 0,void 0,function*(){if(!this.pcManager)throw new xi("publisher is closed");const s={direction:"sendonly"};a&&(s.sendEncodings=a);const l=yield this.pcManager.addPublisherTransceiver(n.mediaStreamTrack,s);if(r.videoCodec)return e.setSimulcastTrackSender(r.videoCodec,l.sender),l.sender})}createRTCRtpSender(e){return Q(this,void 0,void 0,function*(){if(!this.pcManager)throw new xi("publisher is closed");return this.pcManager.addPublisherTrack(e)})}attemptReconnect(e){return Q(this,void 0,void 0,function*(){var n,r,a;if(!this._isClosed){if(this.attemptingReconnect){Nn.warn("already attempting reconnect, returning early",this.logContext);return}(((n=this.clientConfiguration)===null||n===void 0?void 0:n.resumeConnection)===xg.DISABLED||((a=(r=this.pcManager)===null||r===void 0?void 0:r.currentState)!==null&&a!==void 0?a:Jr.NEW)===Jr.NEW)&&(this.fullReconnectOnNext=!0);try{this.attemptingReconnect=!0,this.fullReconnectOnNext?yield this.restartConnection():yield this.resumeConnection(e),this.clearPendingReconnect(),this.fullReconnectOnNext=!1}catch(s){this.reconnectAttempts+=1;let l=!0;s instanceof xi?(this.log.debug("received unrecoverable error",Object.assign(Object.assign({},this.logContext),{error:s})),l=!1):s instanceof Wh||(this.fullReconnectOnNext=!0),l?this.handleDisconnect("reconnect",Ih.RR_UNKNOWN):(this.log.info("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(Date.now()-this.reconnectStart,"ms. giving up"),this.logContext),this.emit(et.Disconnected),yield this.close())}finally{this.attemptingReconnect=!1}}})}getNextRetryDelay(e){try{return this.reconnectPolicy.nextRetryDelayInMs(e)}catch(n){this.log.warn("encountered error in reconnect policy",Object.assign(Object.assign({},this.logContext),{error:n}))}return null}restartConnection(e){return Q(this,void 0,void 0,function*(){var n,r,a;try{if(!this.url||!this.token)throw new xi("could not reconnect, url or token not saved");this.log.info("reconnecting, attempt: ".concat(this.reconnectAttempts),this.logContext),this.emit(et.Restarting),this.client.isDisconnected||(yield this.client.sendLeave()),yield this.cleanupPeerConnections(),yield this.cleanupClient();let s;try{if(!this.signalOpts)throw this.log.warn("attempted connection restart, without signal options present",this.logContext),new Wh;s=yield this.join(e??this.url,this.token,this.signalOpts)}catch(l){throw l instanceof br&&l.reason===Un.NotAllowed?new xi("could not reconnect, token might be expired"):new Wh}if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(this.client.setReconnected(),this.emit(et.SignalRestarted,s),yield this.waitForPCReconnected(),this.client.currentState!==Or.CONNECTED)throw new Wh("Signal connection got severed during reconnect");(n=this.regionUrlProvider)===null||n===void 0||n.resetAttempts(),this.emit(et.Restarted)}catch(s){const l=yield(r=this.regionUrlProvider)===null||r===void 0?void 0:r.getNextBestRegionUrl();if(l){yield this.restartConnection(l);return}else throw(a=this.regionUrlProvider)===null||a===void 0||a.resetAttempts(),s}})}resumeConnection(e){return Q(this,void 0,void 0,function*(){var n;if(!this.url||!this.token)throw new xi("could not reconnect, url or token not saved");if(!this.pcManager)throw new xi("publisher and subscriber connections unset");this.log.info("resuming signal connection, attempt ".concat(this.reconnectAttempts),this.logContext),this.emit(et.Resuming);let r;try{this.setupSignalClientCallbacks(),r=yield this.client.reconnect(this.url,this.token,this.participantSid,e)}catch(a){let s="";throw a instanceof Error&&(s=a.message,this.log.error(a.message,Object.assign(Object.assign({},this.logContext),{error:a}))),a instanceof br&&a.reason===Un.NotAllowed?new xi("could not reconnect, token might be expired"):a instanceof br&&a.reason===Un.LeaveRequest?a:new Wh(s)}if(this.emit(et.SignalResumed),r){const a=this.makeRTCConfiguration(r);this.pcManager.updateConfiguration(a)}else this.log.warn("Did not receive reconnect response",this.logContext);if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(yield this.pcManager.triggerIceRestart(),yield this.waitForPCReconnected(),this.client.currentState!==Or.CONNECTED)throw new Wh("Signal connection got severed during reconnect");this.client.setReconnected(),((n=this.reliableDC)===null||n===void 0?void 0:n.readyState)==="open"&&this.reliableDC.id===null&&this.createDataChannels(),this.emit(et.Resumed)})}waitForPCInitialConnection(e,n){return Q(this,void 0,void 0,function*(){if(!this.pcManager)throw new xi("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(n,e)})}waitForPCReconnected(){return Q(this,void 0,void 0,function*(){this.pcState=Es.Reconnecting,this.log.debug("waiting for peer connection to reconnect",this.logContext);try{if(yield io(iz),!this.pcManager)throw new xi("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(void 0,this.peerConnectionTimeout),this.pcState=Es.Connected}catch(e){throw this.pcState=Es.Disconnected,new br("could not establish PC connection, ".concat(e.message),Un.InternalError)}})}publishRpcResponse(e,n,r,a){return Q(this,void 0,void 0,function*(){const s=new ro({destinationIdentities:[e],kind:$n.RELIABLE,value:{case:"rpcResponse",value:new qD({requestId:n,value:a?{case:"error",value:a.toProto()}:{case:"payload",value:r??""}})}});yield this.sendDataPacket(s,$n.RELIABLE)})}publishRpcAck(e,n){return Q(this,void 0,void 0,function*(){const r=new ro({destinationIdentities:[e],kind:$n.RELIABLE,value:{case:"rpcAck",value:new $D({requestId:n})}});yield this.sendDataPacket(r,$n.RELIABLE)})}sendDataPacket(e,n){return Q(this,void 0,void 0,function*(){const r=e.toBinary();yield this.ensurePublisherConnected(n);const a=this.dataChannelForKind(n);a&&a.send(r),this.updateAndEmitDCBufferStatus(n)})}waitForBufferStatusLow(e){return new Promise((n,r)=>Q(this,void 0,void 0,function*(){if(this.isBufferStatusLow(e))n();else{const a=()=>r("Engine closed");for(this.once(et.Closing,a);!this.dcBufferStatus.get(e);)yield io(10);this.off(et.Closing,a),n()}}))}ensureDataTransportConnected(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscriberPrimary;return function*(){var s;if(!r.pcManager)throw new xi("PC manager is closed");const l=a?r.pcManager.subscriber:r.pcManager.publisher,c=a?"Subscriber":"Publisher";if(!l)throw new br("".concat(c," connection not set"),Un.InternalError);let h=!1;!a&&!r.dataChannelForKind(n,a)&&(r.createDataChannels(),h=!0),!h&&!a&&!r.pcManager.publisher.isICEConnected&&r.pcManager.publisher.getICEConnectionState()!=="checking"&&(h=!0),h&&r.negotiate();const p=r.dataChannelForKind(n,a);if((p==null?void 0:p.readyState)==="open")return;const v=new Date().getTime()+r.peerConnectionTimeout;for(;new Date().getTime()<v;){if(l.isICEConnected&&((s=r.dataChannelForKind(n,a))===null||s===void 0?void 0:s.readyState)==="open")return;yield io(50)}throw new br("could not establish ".concat(c," connection, state: ").concat(l.getICEConnectionState()),Un.InternalError)}()})}ensurePublisherConnected(e){return Q(this,void 0,void 0,function*(){this.publisherConnectionPromise||(this.publisherConnectionPromise=this.ensureDataTransportConnected(e,!1)),yield this.publisherConnectionPromise})}verifyTransport(){return!(!this.pcManager||this.pcManager.currentState!==Jr.CONNECTED||!this.client.ws||this.client.ws.readyState===WebSocket.CLOSED)}negotiate(){return Q(this,void 0,void 0,function*(){return new Promise((e,n)=>Q(this,void 0,void 0,function*(){if(!this.pcManager){n(new rT("PC manager is closed"));return}this.pcManager.requirePublisher(),this.pcManager.publisher.getTransceivers().length==0&&!this.lossyDC&&!this.reliableDC&&this.createDataChannels();const r=new AbortController,a=()=>{r.abort(),this.log.debug("engine disconnected while negotiation was ongoing",this.logContext),e()};this.isClosed&&n("cannot negotiate on closed engine"),this.on(et.Closing,a),this.pcManager.publisher.once(qh.RTPVideoPayloadTypes,s=>{const l=new Map;s.forEach(c=>{const h=c.codec.toLowerCase();mV(h)&&l.set(c.payload,h)}),this.emit(et.RTPVideoMapUpdate,l)});try{yield this.pcManager.negotiate(r),e()}catch(s){s instanceof rT&&(this.fullReconnectOnNext=!0),this.handleDisconnect("negotiation",Ih.RR_UNKNOWN),n(s)}finally{this.off(et.Closing,a)}}))})}dataChannelForKind(e,n){if(n){if(e===$n.LOSSY)return this.lossyDCSub;if(e===$n.RELIABLE)return this.reliableDCSub}else{if(e===$n.LOSSY)return this.lossyDC;if(e===$n.RELIABLE)return this.reliableDC}}sendSyncState(e,n){var r,a;if(!this.pcManager){this.log.warn("sync state cannot be sent without peer connection setup",this.logContext);return}const s=this.pcManager.subscriber.getLocalDescription(),l=this.pcManager.subscriber.getRemoteDescription(),c=(a=(r=this.signalOpts)===null||r===void 0?void 0:r.autoSubscribe)!==null&&a!==void 0?a:!0,h=new Array,p=new Array;e.forEach(v=>{v.isDesired!==c&&h.push(v.trackSid),v.isEnabled||p.push(v.trackSid)}),this.client.sendSyncState(new uA({answer:s?sb({sdp:s.sdp,type:s.type}):void 0,offer:l?sb({sdp:l.sdp,type:l.type}):void 0,subscription:new q0({trackSids:h,subscribe:!c,participantTracks:[]}),publishTracks:xV(n),dataChannels:this.dataChannelsInfo(),trackSidsDisabled:p}))}failNext(){this.shouldFailNext=!0}dataChannelsInfo(){const e=[],n=(r,a)=>{(r==null?void 0:r.id)!==void 0&&r.id!==null&&e.push(new cA({label:r.label,id:r.id,target:a}))};return n(this.dataChannelForKind($n.LOSSY),Ts.PUBLISHER),n(this.dataChannelForKind($n.RELIABLE),Ts.PUBLISHER),n(this.dataChannelForKind($n.LOSSY,!0),Ts.SUBSCRIBER),n(this.dataChannelForKind($n.RELIABLE,!0),Ts.SUBSCRIBER),e}clearReconnectTimeout(){this.reconnectTimeout&&Qi.clearTimeout(this.reconnectTimeout)}clearPendingReconnect(){this.clearReconnectTimeout(),this.reconnectAttempts=0}registerOnLineListener(){ao()&&window.addEventListener("online",this.handleBrowserOnLine)}deregisterOnLineListener(){ao()&&window.removeEventListener("online",this.handleBrowserOnLine)}}class Wh extends Error{}function oz(t){return t!==void 0&&t>13}function sz(t,e){const n=t.participantIdentity?t.participantIdentity:e.participantIdentity;t.participantIdentity=n,e.participantIdentity=n;const r=t.destinationIdentities.length!==0?t.destinationIdentities:e.destinationIdentities;t.destinationIdentities=r,e.destinationIdentities=r}class UT{constructor(e,n){this.lastUpdateAt=0,this.settingsCacheTime=3e3,this.attemptedRegions=[],this.serverUrl=new URL(e),this.token=n}updateToken(e){this.token=e}isCloud(){return hT(this.serverUrl)}getServerUrl(){return this.serverUrl}getNextBestRegionUrl(e){return Q(this,void 0,void 0,function*(){if(!this.isCloud())throw Error("region availability is only supported for LiveKit Cloud domains");(!this.regionSettings||Date.now()-this.lastUpdateAt>this.settingsCacheTime)&&(this.regionSettings=yield this.fetchRegionSettings(e));const n=this.regionSettings.regions.filter(r=>!this.attemptedRegions.find(a=>a.url===r.url));if(n.length>0){const r=n[0];return this.attemptedRegions.push(r),Nn.debug("next region: ".concat(r.region)),r.url}else return null})}resetAttempts(){this.attemptedRegions=[]}fetchRegionSettings(e){return Q(this,void 0,void 0,function*(){const n=yield fetch("".concat(lz(this.serverUrl),"/regions"),{headers:{authorization:"Bearer ".concat(this.token)},signal:e});if(n.ok){const r=yield n.json();return this.lastUpdateAt=Date.now(),r}else throw new br("Could not fetch region settings: ".concat(n.statusText),n.status===401?Un.NotAllowed:Un.InternalError,n.status)})}setServerReportedRegions(e){this.regionSettings=e,this.lastUpdateAt=Date.now()}}function lz(t){return"".concat(t.protocol.replace("ws","http"),"//").concat(t.host,"/settings")}class zO{get info(){return this._info}constructor(e,n,r){this.reader=n,this.totalByteSize=r,this._info=e,this.bytesReceived=0}}class uz extends zO{handleChunkReceived(e){var n;this.bytesReceived+=e.content.byteLength;const r=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(n=this.onProgress)===null||n===void 0||n.call(this,r)}[Symbol.asyncIterator](){const e=this.reader.getReader();return{next:()=>Q(this,void 0,void 0,function*(){try{const{done:n,value:r}=yield e.read();return n?{done:!0,value:void 0}:(this.handleChunkReceived(r),{done:!1,value:r.content})}catch{return{done:!0,value:void 0}}}),return(){return Q(this,void 0,void 0,function*(){return e.releaseLock(),{done:!0,value:void 0}})}}}readAll(){return Q(this,void 0,void 0,function*(){var e,n,r,a;let s=new Set;try{for(var l=!0,c=pc(this),h;h=yield c.next(),e=h.done,!e;l=!0){a=h.value,l=!1;const p=a;s.add(p)}}catch(p){n={error:p}}finally{try{!l&&!e&&(r=c.return)&&(yield r.call(c))}finally{if(n)throw n.error}}return Array.from(s)})}}class cz extends zO{constructor(e,n,r){super(e,n,r),this.receivedChunks=new Map}handleChunkReceived(e){var n;const r=ab(e.chunkIndex),a=this.receivedChunks.get(r);if(a&&a.version>e.version)return;this.receivedChunks.set(r,e),this.bytesReceived+=e.content.byteLength;const s=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(n=this.onProgress)===null||n===void 0||n.call(this,s)}[Symbol.asyncIterator](){const e=this.reader.getReader(),n=new TextDecoder;return{next:()=>Q(this,void 0,void 0,function*(){try{const{done:r,value:a}=yield e.read();return r?{done:!0,value:void 0}:(this.handleChunkReceived(a),{done:!1,value:n.decode(a.content)})}catch{return{done:!0,value:void 0}}}),return(){return Q(this,void 0,void 0,function*(){return e.releaseLock(),{done:!0,value:void 0}})}}}readAll(){return Q(this,void 0,void 0,function*(){var e,n,r,a;let s="";try{for(var l=!0,c=pc(this),h;h=yield c.next(),e=h.done,!e;l=!0)a=h.value,l=!1,s+=a}catch(p){n={error:p}}finally{try{!l&&!e&&(r=c.return)&&(yield r.call(c))}finally{if(n)throw n.error}}return s})}}class BO{constructor(e,n,r){this.writableStream=e,this.defaultWriter=e.getWriter(),this.onClose=r,this.info=n}write(e){return this.defaultWriter.write(e)}close(){return Q(this,void 0,void 0,function*(){var e;yield this.defaultWriter.close(),this.defaultWriter.releaseLock(),(e=this.onClose)===null||e===void 0||e.call(this)})}}class dz extends BO{}class fz extends BO{}class HO extends De{constructor(e,n,r,a,s){super(e,r,s),this.sid=n,this.receiver=a}get isLocal(){return!1}setMuted(e){this.isMuted!==e&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?Qe.Muted:Qe.Unmuted,this))}setMediaStream(e){this.mediaStream=e;const n=r=>{r.track===this._mediaStreamTrack&&(e.removeEventListener("removetrack",n),this.receiver&&"playoutDelayHint"in this.receiver&&(this.receiver.playoutDelayHint=void 0),this.receiver=void 0,this._currentBitrate=0,this.emit(Qe.Ended,this))};e.addEventListener("removetrack",n)}start(){this.startMonitor(),super.enable()}stop(){this.stopMonitor(),super.disable()}getRTCStatsReport(){return Q(this,void 0,void 0,function*(){var e;return!((e=this.receiver)===null||e===void 0)&&e.getStats?yield this.receiver.getStats():void 0})}setPlayoutDelay(e){this.receiver?"playoutDelayHint"in this.receiver?this.receiver.playoutDelayHint=e:this.log.warn("Playout delay not supported in this browser"):this.log.warn("Cannot set playout delay, track already ended")}getPlayoutDelay(){if(this.receiver){if("playoutDelayHint"in this.receiver)return this.receiver.playoutDelayHint;this.log.warn("Playout delay not supported in this browser")}else this.log.warn("Cannot get playout delay, track already ended");return 0}startMonitor(){this.monitorInterval||(this.monitorInterval=setInterval(()=>this.monitorReceiver(),OT)),wV()&&this.registerTimeSyncUpdate()}registerTimeSyncUpdate(){const e=()=>{var n;this.timeSyncHandle=requestAnimationFrame(()=>e());const r=(n=this.receiver)===null||n===void 0?void 0:n.getSynchronizationSources()[0];if(r){const{timestamp:a,rtpTimestamp:s}=r;s&&this.rtpTimestamp!==s&&(this.emit(Qe.TimeSyncUpdate,{timestamp:a,rtpTimestamp:s}),this.rtpTimestamp=s)}};e()}}class $O extends HO{constructor(e,n,r,a,s,l){super(e,n,De.Kind.Audio,r,l),this.monitorReceiver=()=>Q(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}const c=yield this.getReceiverStats();c&&this.prevStats&&this.receiver&&(this._currentBitrate=lb(c,this.prevStats)),this.prevStats=c}),this.audioContext=a,this.webAudioPluginNodes=[],s&&(this.sinkId=s.deviceId)}setVolume(e){var n;for(const r of this.attachedElements)this.audioContext?(n=this.gainNode)===null||n===void 0||n.gain.setTargetAtTime(e,0,.1):r.volume=e;fl()&&this._mediaStreamTrack._setVolume(e),this.elementVolume=e}getVolume(){if(this.elementVolume)return this.elementVolume;if(fl())return 1;let e=0;return this.attachedElements.forEach(n=>{n.volume>e&&(e=n.volume)}),e}setSinkId(e){return Q(this,void 0,void 0,function*(){this.sinkId=e,yield Promise.all(this.attachedElements.map(n=>{if(fT(n))return n.setSinkId(e)}))})}attach(e){const n=this.attachedElements.length===0;return e?super.attach(e):e=super.attach(),this.sinkId&&fT(e)&&e.setSinkId(this.sinkId),this.audioContext&&n&&(this.log.debug("using audio context mapping",this.logContext),this.connectWebAudio(this.audioContext,e),e.volume=0,e.muted=!0),this.elementVolume&&this.setVolume(this.elementVolume),e}detach(e){let n;return e?(n=super.detach(e),this.audioContext&&(this.attachedElements.length>0?this.connectWebAudio(this.audioContext,this.attachedElements[0]):this.disconnectWebAudio())):(n=super.detach(),this.disconnectWebAudio()),n}setAudioContext(e){this.audioContext=e,e&&this.attachedElements.length>0?this.connectWebAudio(e,this.attachedElements[0]):e||this.disconnectWebAudio()}setWebAudioPlugins(e){this.webAudioPluginNodes=e,this.attachedElements.length>0&&this.audioContext&&this.connectWebAudio(this.audioContext,this.attachedElements[0])}connectWebAudio(e,n){this.disconnectWebAudio(),this.sourceNode=e.createMediaStreamSource(n.srcObject);let r=this.sourceNode;this.webAudioPluginNodes.forEach(a=>{r.connect(a),r=a}),this.gainNode=e.createGain(),r.connect(this.gainNode),this.gainNode.connect(e.destination),this.elementVolume&&this.gainNode.gain.setTargetAtTime(this.elementVolume,0,.1),e.state!=="running"&&e.resume().then(()=>{e.state!=="running"&&this.emit(Qe.AudioPlaybackFailed,new Error("Audio Context couldn't be started automatically"))}).catch(a=>{this.emit(Qe.AudioPlaybackFailed,a)})}disconnectWebAudio(){var e,n;(e=this.gainNode)===null||e===void 0||e.disconnect(),(n=this.sourceNode)===null||n===void 0||n.disconnect(),this.gainNode=void 0,this.sourceNode=void 0}getReceiverStats(){return Q(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let n;return e.forEach(r=>{r.type==="inbound-rtp"&&(n={type:"audio",streamId:r.id,timestamp:r.timestamp,jitter:r.jitter,bytesReceived:r.bytesReceived,concealedSamples:r.concealedSamples,concealmentEvents:r.concealmentEvents,silentConcealedSamples:r.silentConcealedSamples,silentConcealmentEvents:r.silentConcealmentEvents,totalAudioEnergy:r.totalAudioEnergy,totalSamplesDuration:r.totalSamplesDuration})}),n})}}const FT=100;class hz extends HO{constructor(e,n,r,a,s){super(e,n,De.Kind.Video,r,s),this.elementInfos=[],this.monitorReceiver=()=>Q(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}const l=yield this.getReceiverStats();l&&this.prevStats&&this.receiver&&(this._currentBitrate=lb(l,this.prevStats)),this.prevStats=l}),this.debouncedHandleResize=RT(()=>{this.updateDimensions()},FT),this.adaptiveStreamSettings=a}get isAdaptiveStream(){return this.adaptiveStreamSettings!==void 0}get mediaStreamTrack(){return this._mediaStreamTrack}setMuted(e){super.setMuted(e),this.attachedElements.forEach(n=>{e?zh(this._mediaStreamTrack,n):Vh(this._mediaStreamTrack,n)})}attach(e){if(e?super.attach(e):e=super.attach(),this.adaptiveStreamSettings&&this.elementInfos.find(n=>n.element===e)===void 0){const n=new pz(e);this.observeElementInfo(n)}return e}observeElementInfo(e){this.adaptiveStreamSettings&&this.elementInfos.find(n=>n===e)===void 0?(e.handleResize=()=>{this.debouncedHandleResize()},e.handleVisibilityChanged=()=>{this.updateVisibility()},this.elementInfos.push(e),e.observe(),this.debouncedHandleResize(),this.updateVisibility()):this.log.warn("visibility resize observer not triggered",this.logContext)}stopObservingElementInfo(e){if(!this.isAdaptiveStream){this.log.warn("stopObservingElementInfo ignored",this.logContext);return}const n=this.elementInfos.filter(r=>r===e);for(const r of n)r.stopObserving();this.elementInfos=this.elementInfos.filter(r=>r!==e),this.updateVisibility(),this.debouncedHandleResize()}detach(e){let n=[];if(e)return this.stopObservingElement(e),super.detach(e);n=super.detach();for(const r of n)this.stopObservingElement(r);return n}getDecoderImplementation(){var e;return(e=this.prevStats)===null||e===void 0?void 0:e.decoderImplementation}getReceiverStats(){return Q(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let n,r="",a=new Map;return e.forEach(s=>{s.type==="inbound-rtp"?(r=s.codecId,n={type:"video",streamId:s.id,framesDecoded:s.framesDecoded,framesDropped:s.framesDropped,framesReceived:s.framesReceived,packetsReceived:s.packetsReceived,packetsLost:s.packetsLost,frameWidth:s.frameWidth,frameHeight:s.frameHeight,pliCount:s.pliCount,firCount:s.firCount,nackCount:s.nackCount,jitter:s.jitter,timestamp:s.timestamp,bytesReceived:s.bytesReceived,decoderImplementation:s.decoderImplementation}):s.type==="codec"&&a.set(s.id,s)}),n&&r!==""&&a.get(r)&&(n.mimeType=a.get(r).mimeType),n})}stopObservingElement(e){const n=this.elementInfos.filter(r=>r.element===e);for(const r of n)this.stopObservingElementInfo(r)}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return Q(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),this.isAdaptiveStream&&this.updateVisibility()})}updateVisibility(){var e,n;const r=this.elementInfos.reduce((c,h)=>Math.max(c,h.visibilityChangedAt||0),0),a=!((n=(e=this.adaptiveStreamSettings)===null||e===void 0?void 0:e.pauseVideoInBackground)!==null&&n!==void 0)||n?this.isInBackground:!1,s=this.elementInfos.some(c=>c.pictureInPicture),l=this.elementInfos.some(c=>c.visible)&&!a||s;if(this.lastVisible!==l){if(!l&&Date.now()-r<FT){Qi.setTimeout(()=>{this.updateVisibility()},FT);return}this.lastVisible=l,this.emit(Qe.VisibilityChanged,l,this)}}updateDimensions(){var e,n;let r=0,a=0;const s=this.getPixelDensity();for(const l of this.elementInfos){const c=l.width()*s,h=l.height()*s;c+h>r+a&&(r=c,a=h)}((e=this.lastDimensions)===null||e===void 0?void 0:e.width)===r&&((n=this.lastDimensions)===null||n===void 0?void 0:n.height)===a||(this.lastDimensions={width:r,height:a},this.emit(Qe.VideoDimensionsChanged,this.lastDimensions,this))}getPixelDensity(){var e;const n=(e=this.adaptiveStreamSettings)===null||e===void 0?void 0:e.pixelDensity;return n==="screen"?uO():n||(uO()>2?2:1)}}class pz{get visible(){return this.isPiP||this.isIntersecting}get pictureInPicture(){return this.isPiP}constructor(e,n){this.onVisibilityChanged=r=>{var a;const{target:s,isIntersecting:l}=r;s===this.element&&(this.isIntersecting=l,this.isPiP=Mg(this.element),this.visibilityChangedAt=Date.now(),(a=this.handleVisibilityChanged)===null||a===void 0||a.call(this))},this.onEnterPiP=()=>{var r,a,s;(a=(r=window.documentPictureInPicture)===null||r===void 0?void 0:r.window)===null||a===void 0||a.addEventListener("pagehide",this.onLeavePiP),this.isPiP=Mg(this.element),(s=this.handleVisibilityChanged)===null||s===void 0||s.call(this)},this.onLeavePiP=()=>{var r;this.isPiP=Mg(this.element),(r=this.handleVisibilityChanged)===null||r===void 0||r.call(this)},this.element=e,this.isIntersecting=n??jT(e),this.isPiP=ao()&&Mg(e),this.visibilityChangedAt=0}width(){return this.element.clientWidth}height(){return this.element.clientHeight}observe(){var e,n,r;this.isIntersecting=jT(this.element),this.isPiP=Mg(this.element),this.element.handleResize=()=>{var a;(a=this.handleResize)===null||a===void 0||a.call(this)},this.element.handleVisibilityChanged=this.onVisibilityChanged,dO().observe(this.element),cO().observe(this.element),this.element.addEventListener("enterpictureinpicture",this.onEnterPiP),this.element.addEventListener("leavepictureinpicture",this.onLeavePiP),(e=window.documentPictureInPicture)===null||e===void 0||e.addEventListener("enter",this.onEnterPiP),(r=(n=window.documentPictureInPicture)===null||n===void 0?void 0:n.window)===null||r===void 0||r.addEventListener("pagehide",this.onLeavePiP)}stopObserving(){var e,n,r,a,s;(e=dO())===null||e===void 0||e.unobserve(this.element),(n=cO())===null||n===void 0||n.unobserve(this.element),this.element.removeEventListener("enterpictureinpicture",this.onEnterPiP),this.element.removeEventListener("leavepictureinpicture",this.onLeavePiP),(r=window.documentPictureInPicture)===null||r===void 0||r.removeEventListener("enter",this.onEnterPiP),(s=(a=window.documentPictureInPicture)===null||a===void 0?void 0:a.window)===null||s===void 0||s.removeEventListener("pagehide",this.onLeavePiP)}}function Mg(t){var e,n;return document.pictureInPictureElement===t?!0:!((e=window.documentPictureInPicture)===null||e===void 0)&&e.window?jT(t,(n=window.documentPictureInPicture)===null||n===void 0?void 0:n.window):!1}function jT(t,e){const n=e||window;let r=t.offsetTop,a=t.offsetLeft;const s=t.offsetWidth,l=t.offsetHeight,{hidden:c}=t,{display:h}=getComputedStyle(t);for(;t.offsetParent;)t=t.offsetParent,r+=t.offsetTop,a+=t.offsetLeft;return r<n.pageYOffset+n.innerHeight&&a<n.pageXOffset+n.innerWidth&&r+l>n.pageYOffset&&a+s>n.pageXOffset&&!c&&h!=="none"}class du extends dl.EventEmitter{constructor(e,n,r,a){var s;super(),this.metadataMuted=!1,this.encryption=Po.NONE,this.log=Nn,this.handleMuted=()=>{this.emit(Qe.Muted)},this.handleUnmuted=()=>{this.emit(Qe.Unmuted)},this.log=lu((s=a==null?void 0:a.loggerName)!==null&&s!==void 0?s:xs.Publication),this.loggerContextCb=this.loggerContextCb,this.setMaxListeners(100),this.kind=e,this.trackSid=n,this.trackName=r,this.source=De.Source.Unknown}setTrack(e){this.track&&(this.track.off(Qe.Muted,this.handleMuted),this.track.off(Qe.Unmuted,this.handleUnmuted)),this.track=e,e&&(e.on(Qe.Muted,this.handleMuted),e.on(Qe.Unmuted,this.handleUnmuted))}get logContext(){var e;return Object.assign(Object.assign({},(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this)),ar(this))}get isMuted(){return this.metadataMuted}get isEnabled(){return!0}get isSubscribed(){return this.track!==void 0}get isEncrypted(){return this.encryption!==Po.NONE}get audioTrack(){if(cu(this.track))return this.track}get videoTrack(){if($h(this.track))return this.track}updateInfo(e){this.trackSid=e.sid,this.trackName=e.name,this.source=De.sourceFromProto(e.source),this.mimeType=e.mimeType,this.kind===De.Kind.Video&&e.width>0&&(this.dimensions={width:e.width,height:e.height},this.simulcasted=e.simulcast),this.encryption=e.encryption,this.trackInfo=e,this.log.debug("update publication info",Object.assign(Object.assign({},this.logContext),{info:e}))}}(function(t){(function(e){e.Desired="desired",e.Subscribed="subscribed",e.Unsubscribed="unsubscribed"})(t.SubscriptionStatus||(t.SubscriptionStatus={})),function(e){e.Allowed="allowed",e.NotAllowed="not_allowed"}(t.PermissionStatus||(t.PermissionStatus={}))})(du||(du={}));class VT extends du{get isUpstreamPaused(){var e;return(e=this.track)===null||e===void 0?void 0:e.isUpstreamPaused}constructor(e,n,r,a){super(e,n.sid,n.name,a),this.track=void 0,this.handleTrackEnded=()=>{this.emit(Qe.Ended)},this.updateInfo(n),this.setTrack(r)}setTrack(e){this.track&&this.track.off(Qe.Ended,this.handleTrackEnded),super.setTrack(e),e&&e.on(Qe.Ended,this.handleTrackEnded)}get isMuted(){return this.track?this.track.isMuted:super.isMuted}get audioTrack(){return super.audioTrack}get videoTrack(){return super.videoTrack}get isLocal(){return!0}mute(){return Q(this,void 0,void 0,function*(){var e;return(e=this.track)===null||e===void 0?void 0:e.mute()})}unmute(){return Q(this,void 0,void 0,function*(){var e;return(e=this.track)===null||e===void 0?void 0:e.unmute()})}pauseUpstream(){return Q(this,void 0,void 0,function*(){var e;yield(e=this.track)===null||e===void 0?void 0:e.pauseUpstream()})}resumeUpstream(){return Q(this,void 0,void 0,function*(){var e;yield(e=this.track)===null||e===void 0?void 0:e.resumeUpstream()})}getTrackFeatures(){var e;if(cu(this.track)){const n=this.track.getSourceTrackSettings(),r=new Set;return n.autoGainControl&&r.add(ul.TF_AUTO_GAIN_CONTROL),n.echoCancellation&&r.add(ul.TF_ECHO_CANCELLATION),n.noiseSuppression&&r.add(ul.TF_NOISE_SUPPRESSION),n.channelCount&&n.channelCount>1&&r.add(ul.TF_STEREO),!((e=this.options)===null||e===void 0)&&e.dtx||r.add(ul.TF_NO_DTX),this.track.enhancedNoiseCancellation&&r.add(ul.TF_ENHANCED_NOISE_CANCELLATION),Array.from(r.values())}else return[]}}function fb(t,e){return Q(this,void 0,void 0,function*(){t??(t={});let n=!1;const{audioProcessor:r,videoProcessor:a,optionsWithoutProcessor:s}=bO(t);let l=s.audio,c=s.video;if(r&&typeof s.audio=="object"&&(s.audio.processor=r),a&&typeof s.video=="object"&&(s.video.processor=a),t.audio&&typeof s.audio=="object"&&typeof s.audio.deviceId=="string"){const b=s.audio.deviceId;s.audio.deviceId={exact:b},n=!0,l=Object.assign(Object.assign({},s.audio),{deviceId:{ideal:b}})}if(s.video&&typeof s.video=="object"&&typeof s.video.deviceId=="string"){const b=s.video.deviceId;s.video.deviceId={exact:b},n=!0,c=Object.assign(Object.assign({},s.video),{deviceId:{ideal:b}})}(s.audio===!0||typeof s.audio=="object"&&!s.audio.deviceId)&&(s.audio={deviceId:"default"}),(s.video===!0||typeof s.video=="object"&&!s.video.deviceId)&&(s.video={deviceId:"default"});const h=mO(s,PO,DO),p=CT(h),v=navigator.mediaDevices.getUserMedia(p);s.audio&&(zi.userMediaPromiseMap.set("audioinput",v),v.catch(()=>zi.userMediaPromiseMap.delete("audioinput"))),s.video&&(zi.userMediaPromiseMap.set("videoinput",v),v.catch(()=>zi.userMediaPromiseMap.delete("videoinput")));try{const b=yield v;return yield Promise.all(b.getTracks().map(k=>Q(this,void 0,void 0,function*(){const T=k.kind==="audio";let E=T?h.audio:h.video;(typeof E=="boolean"||!E)&&(E={});let R;const M=T?p.audio:p.video;typeof M!="boolean"&&(R=M);const A=k.getSettings().deviceId;R!=null&&R.deviceId&&Sc(R.deviceId)!==A?R.deviceId=A:R||(R={deviceId:A});const U=WV(k,R,e);return U.kind===De.Kind.Video?U.source=De.Source.Camera:U.kind===De.Kind.Audio&&(U.source=De.Source.Microphone),U.mediaStream=b,cu(U)&&r?yield U.setProcessor(r):$h(U)&&a&&(yield U.setProcessor(a)),U})))}catch(b){if(!n)throw b;return fb(Object.assign(Object.assign({},t),{audio:l,video:c}),e)}})}function mz(t){return Q(this,void 0,void 0,function*(){return(yield fb({audio:!1,video:!0}))[0]})}function gz(t){return Q(this,void 0,void 0,function*(){return(yield fb({audio:!0,video:!1}))[0]})}var Tc;(function(t){t.Excellent="excellent",t.Good="good",t.Poor="poor",t.Lost="lost",t.Unknown="unknown"})(Tc||(Tc={}));function vz(t){switch(t){case Tg.EXCELLENT:return Tc.Excellent;case Tg.GOOD:return Tc.Good;case Tg.POOR:return Tc.Poor;case Tg.LOST:return Tc.Lost;default:return Tc.Unknown}}class qO extends dl.EventEmitter{get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions)===null||e===void 0?void 0:e.loggerContextCb)===null||n===void 0?void 0:n.call(e))}get isEncrypted(){return this.trackPublications.size>0&&Array.from(this.trackPublications.values()).every(e=>e.isEncrypted)}get isAgent(){var e;return((e=this.permissions)===null||e===void 0?void 0:e.agent)||this.kind===_g.AGENT}get kind(){return this._kind}get attributes(){return Object.freeze(Object.assign({},this._attributes))}constructor(e,n,r,a,s,l){let c=arguments.length>6&&arguments[6]!==void 0?arguments[6]:_g.STANDARD;var h;super(),this.audioLevel=0,this.isSpeaking=!1,this._connectionQuality=Tc.Unknown,this.log=Nn,this.log=lu((h=l==null?void 0:l.loggerName)!==null&&h!==void 0?h:xs.Participant),this.loggerOptions=l,this.setMaxListeners(100),this.sid=e,this.identity=n,this.name=r,this.metadata=a,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this._kind=c,this._attributes=s??{}}getTrackPublications(){return Array.from(this.trackPublications.values())}getTrackPublication(e){for(const[,n]of this.trackPublications)if(n.source===e)return n}getTrackPublicationByName(e){for(const[,n]of this.trackPublications)if(n.trackName===e)return n}get connectionQuality(){return this._connectionQuality}get isCameraEnabled(){var e;const n=this.getTrackPublication(De.Source.Camera);return!(!((e=n==null?void 0:n.isMuted)!==null&&e!==void 0)||e)}get isMicrophoneEnabled(){var e;const n=this.getTrackPublication(De.Source.Microphone);return!(!((e=n==null?void 0:n.isMuted)!==null&&e!==void 0)||e)}get isScreenShareEnabled(){return!!this.getTrackPublication(De.Source.ScreenShare)}get isLocal(){return!1}get joinedAt(){return this.participantInfo?new Date(Number.parseInt(this.participantInfo.joinedAt.toString())*1e3):new Date}updateInfo(e){return this.participantInfo&&this.participantInfo.sid===e.sid&&this.participantInfo.version>e.version?!1:(this.identity=e.identity,this.sid=e.sid,this._setName(e.name),this._setMetadata(e.metadata),this._setAttributes(e.attributes),e.permission&&this.setPermissions(e.permission),this.participantInfo=e,this.log.trace("update participant info",Object.assign(Object.assign({},this.logContext),{info:e})),!0)}_setMetadata(e){const n=this.metadata!==e,r=this.metadata;this.metadata=e,n&&this.emit(Ie.ParticipantMetadataChanged,r)}_setName(e){const n=this.name!==e;this.name=e,n&&this.emit(Ie.ParticipantNameChanged,e)}_setAttributes(e){const n=_V(this.attributes,e);this._attributes=e,Object.keys(n).length>0&&this.emit(Ie.AttributesChanged,n)}setPermissions(e){var n,r,a,s,l,c;const h=this.permissions,p=e.canPublish!==((n=this.permissions)===null||n===void 0?void 0:n.canPublish)||e.canSubscribe!==((r=this.permissions)===null||r===void 0?void 0:r.canSubscribe)||e.canPublishData!==((a=this.permissions)===null||a===void 0?void 0:a.canPublishData)||e.hidden!==((s=this.permissions)===null||s===void 0?void 0:s.hidden)||e.recorder!==((l=this.permissions)===null||l===void 0?void 0:l.recorder)||e.canPublishSources.length!==this.permissions.canPublishSources.length||e.canPublishSources.some((v,b)=>{var k;return v!==((k=this.permissions)===null||k===void 0?void 0:k.canPublishSources[b])})||e.canSubscribeMetrics!==((c=this.permissions)===null||c===void 0?void 0:c.canSubscribeMetrics);return this.permissions=e,p&&this.emit(Ie.ParticipantPermissionsChanged,h),p}setIsSpeaking(e){e!==this.isSpeaking&&(this.isSpeaking=e,e&&(this.lastSpokeAt=new Date),this.emit(Ie.IsSpeakingChanged,e))}setConnectionQuality(e){const n=this._connectionQuality;this._connectionQuality=vz(e),n!==this._connectionQuality&&this.emit(Ie.ConnectionQualityChanged,this._connectionQuality)}setAudioContext(e){this.audioContext=e,this.audioTrackPublications.forEach(n=>cu(n.track)&&n.track.setAudioContext(e))}addTrackPublication(e){e.on(Qe.Muted,()=>{this.emit(Ie.TrackMuted,e)}),e.on(Qe.Unmuted,()=>{this.emit(Ie.TrackUnmuted,e)});const n=e;switch(n.track&&(n.track.sid=e.trackSid),this.trackPublications.set(e.trackSid,e),e.kind){case De.Kind.Audio:this.audioTrackPublications.set(e.trackSid,e);break;case De.Kind.Video:this.videoTrackPublications.set(e.trackSid,e);break}}}function yz(t){var e,n,r;if(!t.participantSid&&!t.participantIdentity)throw new Error("Invalid track permission, must provide at least one of participantIdentity and participantSid");return new sA({participantIdentity:(e=t.participantIdentity)!==null&&e!==void 0?e:"",participantSid:(n=t.participantSid)!==null&&n!==void 0?n:"",allTracks:(r=t.allowAll)!==null&&r!==void 0?r:!1,trackSids:t.allowedTrackSids||[]})}const WO=15e3;class hb extends qO{constructor(e,n,r,a,s){super(e,n,void 0,void 0,void 0,{loggerName:a.loggerName,loggerContextCb:()=>this.engine.logContext}),this.pendingPublishing=new Set,this.pendingPublishPromises=new Map,this.participantTrackPermissions=[],this.allParticipantsAllowedToSubscribe=!0,this.encryptionType=Po.NONE,this.enabledPublishVideoCodecs=[],this.pendingAcks=new Map,this.pendingResponses=new Map,this.handleReconnecting=()=>{this.reconnectFuture||(this.reconnectFuture=new hO)},this.handleReconnected=()=>{var l,c;(c=(l=this.reconnectFuture)===null||l===void 0?void 0:l.resolve)===null||c===void 0||c.call(l),this.reconnectFuture=void 0,this.updateTrackSubscriptionPermissions()},this.handleDisconnected=()=>{var l,c;this.reconnectFuture&&(this.reconnectFuture.promise.catch(h=>this.log.warn(h.message,this.logContext)),(c=(l=this.reconnectFuture)===null||l===void 0?void 0:l.reject)===null||c===void 0||c.call(l,"Got disconnected during reconnection attempt"),this.reconnectFuture=void 0)},this.handleSignalRequestResponse=l=>{const{requestId:c,reason:h,message:p}=l,v=this.pendingSignalRequests.get(c);v&&(h!==q1.OK&&v.reject(new nO(p,h)),this.pendingSignalRequests.delete(c))},this.handleDataPacket=l=>{switch(l.value.case){case"rpcResponse":let c=l.value.value,h=null,p=null;c.value.case==="payload"?h=c.value.value:c.value.case==="error"&&(p=ei.fromProto(c.value.value)),this.handleIncomingRpcResponse(c.requestId,h,p);break;case"rpcAck":let v=l.value.value;this.handleIncomingRpcAck(v.requestId);break}},this.updateTrackSubscriptionPermissions=()=>{this.log.debug("updating track subscription permissions",Object.assign(Object.assign({},this.logContext),{allParticipantsAllowed:this.allParticipantsAllowedToSubscribe,participantTrackPermissions:this.participantTrackPermissions})),this.engine.client.sendUpdateSubscriptionPermissions(this.allParticipantsAllowedToSubscribe,this.participantTrackPermissions.map(l=>yz(l)))},this.onTrackUnmuted=l=>{this.onTrackMuted(l,l.isUpstreamPaused)},this.onTrackMuted=(l,c)=>{if(c===void 0&&(c=!0),!l.sid){this.log.error("could not update mute status for unpublished track",Object.assign(Object.assign({},this.logContext),ar(l)));return}this.engine.updateMuteStatus(l.sid,c)},this.onTrackUpstreamPaused=l=>{this.log.debug("upstream paused",Object.assign(Object.assign({},this.logContext),ar(l))),this.onTrackMuted(l,!0)},this.onTrackUpstreamResumed=l=>{this.log.debug("upstream resumed",Object.assign(Object.assign({},this.logContext),ar(l))),this.onTrackMuted(l,l.isMuted)},this.onTrackFeatureUpdate=l=>{const c=this.audioTrackPublications.get(l.sid);if(!c){this.log.warn("Could not update local audio track settings, missing publication for track ".concat(l.sid),this.logContext);return}this.engine.client.sendUpdateLocalAudioTrack(c.trackSid,c.getTrackFeatures())},this.handleSubscribedQualityUpdate=l=>Q(this,void 0,void 0,function*(){var c,h,p,v,b,k;if(!(!((b=this.roomOptions)===null||b===void 0)&&b.dynacast))return;const T=this.videoTrackPublications.get(l.trackSid);if(!T){this.log.warn("received subscribed quality update for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:l.trackSid}));return}if(l.subscribedCodecs.length>0){if(!T.videoTrack)return;const A=yield T.videoTrack.setPublishingCodecs(l.subscribedCodecs);try{for(var E=!0,R=pc(A),M;M=yield R.next(),c=M.done,!c;E=!0){v=M.value,E=!1;const U=v;iV(U)&&(this.log.debug("publish ".concat(U," for ").concat(T.videoTrack.sid),Object.assign(Object.assign({},this.logContext),ar(T))),yield this.publishAdditionalCodecForTrack(T.videoTrack,U,T.options))}}catch(U){h={error:U}}finally{try{!E&&!c&&(p=R.return)&&(yield p.call(R))}finally{if(h)throw h.error}}}else l.subscribedQualities.length>0&&(yield(k=T.videoTrack)===null||k===void 0?void 0:k.setPublishingLayers(l.subscribedQualities))}),this.handleLocalTrackUnpublished=l=>{const c=this.trackPublications.get(l.trackSid);if(!c){this.log.warn("received unpublished event for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:l.trackSid}));return}this.unpublishTrack(c.track)},this.handleTrackEnded=l=>Q(this,void 0,void 0,function*(){if(l.source===De.Source.ScreenShare||l.source===De.Source.ScreenShareAudio)this.log.debug("unpublishing local track due to TrackEnded",Object.assign(Object.assign({},this.logContext),ar(l))),this.unpublishTrack(l);else if(l.isUserProvided)yield l.mute();else if(Qd(l)||Cc(l))try{if(ao())try{const c=yield navigator==null?void 0:navigator.permissions.query({name:l.source===De.Source.Camera?"camera":"microphone"});if(c&&c.state==="denied")throw this.log.warn("user has revoked access to ".concat(l.source),Object.assign(Object.assign({},this.logContext),ar(l))),c.onchange=()=>{c.state!=="denied"&&(l.isMuted||l.restartTrack(),c.onchange=null)},new Error("GetUserMedia Permission denied")}catch{}l.isMuted||(this.log.debug("track ended, attempting to use a different device",Object.assign(Object.assign({},this.logContext),ar(l))),Qd(l)?yield l.restartTrack({deviceId:"default"}):yield l.restartTrack())}catch{this.log.warn("could not restart track, muting instead",Object.assign(Object.assign({},this.logContext),ar(l))),yield l.mute()}}),this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this.engine=r,this.roomOptions=a,this.setupEngine(r),this.activeDeviceMap=new Map([["audioinput","default"],["videoinput","default"],["audiooutput","default"]]),this.pendingSignalRequests=new Map,this.rpcHandlers=s}get lastCameraError(){return this.cameraError}get lastMicrophoneError(){return this.microphoneError}get isE2EEEnabled(){return this.encryptionType!==Po.NONE}getTrackPublication(e){const n=super.getTrackPublication(e);if(n)return n}getTrackPublicationByName(e){const n=super.getTrackPublicationByName(e);if(n)return n}setupEngine(e){this.engine=e,this.engine.on(et.RemoteMute,(n,r)=>{const a=this.trackPublications.get(n);!a||!a.track||(r?a.mute():a.unmute())}),this.engine.on(et.Connected,this.handleReconnected).on(et.SignalRestarted,this.handleReconnected).on(et.SignalResumed,this.handleReconnected).on(et.Restarting,this.handleReconnecting).on(et.Resuming,this.handleReconnecting).on(et.LocalTrackUnpublished,this.handleLocalTrackUnpublished).on(et.SubscribedQualityUpdate,this.handleSubscribedQualityUpdate).on(et.Disconnected,this.handleDisconnected).on(et.SignalRequestResponse,this.handleSignalRequestResponse).on(et.DataPacketReceived,this.handleDataPacket)}setMetadata(e){return Q(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({metadata:e})})}setName(e){return Q(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({name:e})})}setAttributes(e){return Q(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({attributes:e})})}requestMetadataUpdate(e){return Q(this,arguments,void 0,function(n){var r=this;let{metadata:a,name:s,attributes:l}=n;return function*(){return new Promise((c,h)=>Q(r,void 0,void 0,function*(){var p,v;try{let b=!1;const k=yield this.engine.client.sendUpdateLocalMetadata((p=a??this.metadata)!==null&&p!==void 0?p:"",(v=s??this.name)!==null&&v!==void 0?v:"",l),T=performance.now();for(this.pendingSignalRequests.set(k,{resolve:c,reject:E=>{h(E),b=!0},values:{name:s,metadata:a,attributes:l}});performance.now()-T<5e3&&!b;){if((!s||this.name===s)&&(!a||this.metadata===a)&&(!l||Object.entries(l).every(E=>{let[R,M]=E;return this.attributes[R]===M||M===""&&!this.attributes[R]}))){this.pendingSignalRequests.delete(k),c();return}yield io(50)}h(new nO("Request to update local metadata timed out","TimeoutError"))}catch(b){b instanceof Error&&h(b)}}))}()})}setCameraEnabled(e,n,r){return this.setTrackEnabled(De.Source.Camera,e,n,r)}setMicrophoneEnabled(e,n,r){return this.setTrackEnabled(De.Source.Microphone,e,n,r)}setScreenShareEnabled(e,n,r){return this.setTrackEnabled(De.Source.ScreenShare,e,n,r)}setPermissions(e){const n=this.permissions,r=super.setPermissions(e);return r&&n&&this.emit(Ie.ParticipantPermissionsChanged,n),r}setE2EEEnabled(e){return Q(this,void 0,void 0,function*(){this.encryptionType=e?Po.GCM:Po.NONE,yield this.republishAllTracks(void 0,!1)})}setTrackEnabled(e,n,r,a){return Q(this,void 0,void 0,function*(){var s,l;this.log.debug("setTrackEnabled",Object.assign(Object.assign({},this.logContext),{source:e,enabled:n})),this.republishPromise&&(yield this.republishPromise);let c=this.getTrackPublication(e);if(n)if(c)yield c.unmute();else{let h;if(this.pendingPublishing.has(e)){const p=yield this.waitForPendingPublicationOfSource(e);return p||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e})),yield p==null?void 0:p.unmute(),p}this.pendingPublishing.add(e);try{switch(e){case De.Source.Camera:h=yield this.createTracks({video:(s=r)!==null&&s!==void 0?s:!0});break;case De.Source.Microphone:h=yield this.createTracks({audio:(l=r)!==null&&l!==void 0?l:!0});break;case De.Source.ScreenShare:h=yield this.createScreenTracks(Object.assign({},r));break;default:throw new uu(e)}}catch(p){throw h==null||h.forEach(v=>{v.stop()}),p instanceof Error&&this.emit(Ie.MediaDevicesError,p),this.pendingPublishing.delete(e),p}try{const p=[];for(const b of h)this.log.info("publishing track",Object.assign(Object.assign({},this.logContext),ar(b))),p.push(this.publishTrack(b,a));[c]=yield Promise.all(p)}catch(p){throw h==null||h.forEach(v=>{v.stop()}),p}finally{this.pendingPublishing.delete(e)}}else if(!(c!=null&&c.track)&&this.pendingPublishing.has(e)&&(c=yield this.waitForPendingPublicationOfSource(e),c||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e}))),c&&c.track)if(e===De.Source.ScreenShare){c=yield this.unpublishTrack(c.track);const h=this.getTrackPublication(De.Source.ScreenShareAudio);h&&h.track&&this.unpublishTrack(h.track)}else yield c.mute();return c})}enableCameraAndMicrophone(){return Q(this,void 0,void 0,function*(){if(!(this.pendingPublishing.has(De.Source.Camera)||this.pendingPublishing.has(De.Source.Microphone))){this.pendingPublishing.add(De.Source.Camera),this.pendingPublishing.add(De.Source.Microphone);try{const e=yield this.createTracks({audio:!0,video:!0});yield Promise.all(e.map(n=>this.publishTrack(n)))}finally{this.pendingPublishing.delete(De.Source.Camera),this.pendingPublishing.delete(De.Source.Microphone)}}})}createTracks(e){return Q(this,void 0,void 0,function*(){var n,r;e??(e={});const a=mO(e,(n=this.roomOptions)===null||n===void 0?void 0:n.audioCaptureDefaults,(r=this.roomOptions)===null||r===void 0?void 0:r.videoCaptureDefaults);try{return(yield fb(a,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext})).map(c=>(cu(c)&&(this.microphoneError=void 0,c.setAudioContext(this.audioContext),c.source=De.Source.Microphone,this.emit(Ie.AudioStreamAcquired)),$h(c)&&(this.cameraError=void 0,c.source=De.Source.Camera),c))}catch(s){throw s instanceof Error&&(e.audio&&(this.microphoneError=s),e.video&&(this.cameraError=s)),s}})}createScreenTracks(e){return Q(this,void 0,void 0,function*(){if(e===void 0&&(e={}),navigator.mediaDevices.getDisplayMedia===void 0)throw new nT("getDisplayMedia not supported");e.resolution===void 0&&!cV()&&(e.resolution=uT.h1080fps30.resolution);const n=TV(e),r=yield navigator.mediaDevices.getDisplayMedia(n),a=r.getVideoTracks();if(a.length===0)throw new uu("no video track found");const s=new db(a[0],void 0,!1,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});s.source=De.Source.ScreenShare,e.contentHint&&(s.mediaStreamTrack.contentHint=e.contentHint);const l=[s];if(r.getAudioTracks().length>0){this.emit(Ie.AudioStreamAcquired);const c=new ub(r.getAudioTracks()[0],void 0,!1,this.audioContext,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});c.source=De.Source.ScreenShareAudio,l.push(c)}return l})}publishTrack(e,n){return Q(this,void 0,void 0,function*(){return this.publishOrRepublishTrack(e,n)})}publishOrRepublishTrack(e,n){return Q(this,arguments,void 0,function(r,a){var s=this;let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return function*(){var c,h,p,v;Qd(r)&&r.setAudioContext(s.audioContext),yield(c=s.reconnectFuture)===null||c===void 0?void 0:c.promise,s.republishPromise&&!l&&(yield s.republishPromise),Hh(r)&&s.pendingPublishPromises.has(r)&&(yield s.pendingPublishPromises.get(r));let b;if(r instanceof MediaStreamTrack)b=r.getConstraints();else{b=r.constraints;let A;switch(r.source){case De.Source.Microphone:A="audioinput";break;case De.Source.Camera:A="videoinput"}A&&s.activeDeviceMap.has(A)&&(b=Object.assign(Object.assign({},b),{deviceId:s.activeDeviceMap.get(A)}))}if(r instanceof MediaStreamTrack)switch(r.kind){case"audio":r=new ub(r,b,!0,s.audioContext,{loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});break;case"video":r=new db(r,b,!0,{loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});break;default:throw new uu("unsupported MediaStreamTrack kind ".concat(r.kind))}else r.updateLoggerOptions({loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});let k;if(s.trackPublications.forEach(A=>{A.track&&A.track===r&&(k=A)}),k)return s.log.warn("track has already been published, skipping",Object.assign(Object.assign({},s.logContext),ar(k))),k;const T="channelCount"in r.mediaStreamTrack.getSettings()&&r.mediaStreamTrack.getSettings().channelCount===2||r.mediaStreamTrack.getConstraints().channelCount===2,E=(h=a==null?void 0:a.forceStereo)!==null&&h!==void 0?h:T;E&&(a||(a={}),a.dtx===void 0&&s.log.info("Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.",Object.assign(Object.assign({},s.logContext),ar(r))),a.red===void 0&&s.log.info("Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work."),(p=a.dtx)!==null&&p!==void 0||(a.dtx=!1),(v=a.red)!==null&&v!==void 0||(a.red=!1));const R=Object.assign(Object.assign({},s.roomOptions.publishDefaults),a);!dV()&&s.roomOptions.e2ee&&(s.log.info("End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2",Object.assign({},s.logContext)),R.simulcast=!1),R.source&&(r.source=R.source);const M=new Promise((A,U)=>Q(s,void 0,void 0,function*(){try{if(this.engine.client.currentState!==Or.CONNECTED){this.log.debug("deferring track publication until signal is connected",Object.assign(Object.assign({},this.logContext),{track:ar(r)}));const V=()=>Q(this,void 0,void 0,function*(){try{const j=yield this.publish(r,R,E);A(j)}catch(j){U(j)}});setTimeout(()=>{this.engine.off(et.SignalConnected,V),U(new iT("publishing rejected as engine not connected within timeout",408))},15e3),this.engine.once(et.SignalConnected,V),this.engine.on(et.Closing,()=>{this.engine.off(et.SignalConnected,V),U(new iT("publishing rejected as engine closed",499))})}else try{const V=yield this.publish(r,R,E);A(V)}catch(V){U(V)}}catch(V){U(V)}}));s.pendingPublishPromises.set(r,M);try{return yield M}catch(A){throw A}finally{s.pendingPublishPromises.delete(r)}}()})}hasPermissionsToPublish(e){if(!this.permissions)return this.log.warn("no permissions present for publishing track",Object.assign(Object.assign({},this.logContext),ar(e))),!1;const{canPublish:n,canPublishSources:r}=this.permissions;return n&&(r.length===0||r.map(a=>EV(a)).includes(e.source))?!0:(this.log.warn("insufficient permissions to publish",Object.assign(Object.assign({},this.logContext),ar(e))),!1)}publish(e,n,r){return Q(this,void 0,void 0,function*(){var a,s,l,c,h,p,v,b,k,T;if(!this.hasPermissionsToPublish(e))throw new iT("failed to publish track, insufficient permissions",403);Array.from(this.trackPublications.values()).find(I=>Hh(e)&&I.source===e.source)&&e.source!==De.Source.Unknown&&this.log.info("publishing a second track with the same source: ".concat(e.source),Object.assign(Object.assign({},this.logContext),ar(e))),n.stopMicTrackOnMute&&cu(e)&&(e.stopOnMute=!0),e.source===De.Source.ScreenShare&&Bh()&&(n.simulcast=!1),n.videoCodec==="av1"&&!sV()&&(n.videoCodec=void 0),n.videoCodec==="vp9"&&!lV()&&(n.videoCodec=void 0),n.videoCodec===void 0&&(n.videoCodec=PT),this.enabledPublishVideoCodecs.length>0&&(this.enabledPublishVideoCodecs.some(I=>n.videoCodec===ob(I.mime))||(n.videoCodec=ob(this.enabledPublishVideoCodecs[0].mime)));const R=n.videoCodec;e.on(Qe.Muted,this.onTrackMuted),e.on(Qe.Unmuted,this.onTrackUnmuted),e.on(Qe.Ended,this.handleTrackEnded),e.on(Qe.UpstreamPaused,this.onTrackUpstreamPaused),e.on(Qe.UpstreamResumed,this.onTrackUpstreamResumed),e.on(Qe.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate);const M=new V1({cid:e.mediaStreamTrack.id,name:n.name,type:De.kindToProto(e.kind),muted:e.isMuted,source:De.sourceToProto(e.source),disableDtx:!(!((a=n.dtx)!==null&&a!==void 0)||a),encryption:this.encryptionType,stereo:r,disableRed:this.isE2EEEnabled||!(!((s=n.red)!==null&&s!==void 0)||s),stream:n==null?void 0:n.stream,backupCodecPolicy:n==null?void 0:n.backupCodecPolicy});let A;if(e.kind===De.Kind.Video){let I={width:0,height:0};try{I=yield e.waitForDimensions()}catch{const ne=(c=(l=this.roomOptions.videoCaptureDefaults)===null||l===void 0?void 0:l.resolution)!==null&&c!==void 0?c:Pg.h720.resolution;I={width:ne.width,height:ne.height},this.log.error("could not determine track dimensions, using defaults",Object.assign(Object.assign(Object.assign({},this.logContext),ar(e)),{dims:I}))}M.width=I.width,M.height=I.height,Cc(e)&&(Dg(R)&&(e.source===De.Source.ScreenShare&&(n.scalabilityMode="L1T3","contentHint"in e.mediaStreamTrack&&(e.mediaStreamTrack.contentHint="motion",this.log.info("forcing contentHint to motion for screenshare with SVC codecs",Object.assign(Object.assign({},this.logContext),ar(e))))),n.scalabilityMode=(h=n.scalabilityMode)!==null&&h!==void 0?h:"L3T3_KEY"),M.simulcastCodecs=[new j1({codec:R,cid:e.mediaStreamTrack.id})],n.backupCodec===!0&&(n.backupCodec={codec:PT}),n.backupCodec&&R!==n.backupCodec.codec&&M.encryption===Po.NONE&&(this.roomOptions.dynacast||(this.roomOptions.dynacast=!0),M.simulcastCodecs.push(new j1({codec:n.backupCodec.codec,cid:""})))),A=LT(e.source===De.Source.ScreenShare,M.width,M.height,n),M.layers=FO(M.width,M.height,A,Dg(n.videoCodec))}else e.kind===De.Kind.Audio&&(A=[{maxBitrate:(p=n.audioPreset)===null||p===void 0?void 0:p.maxBitrate,priority:(b=(v=n.audioPreset)===null||v===void 0?void 0:v.priority)!==null&&b!==void 0?b:"high",networkPriority:(T=(k=n.audioPreset)===null||k===void 0?void 0:k.priority)!==null&&T!==void 0?T:"high"}]);if(!this.engine||this.engine.isClosed)throw new xi("cannot publish track when not connected");const U=()=>Q(this,void 0,void 0,function*(){var I,N,ne;if(!this.engine.pcManager)throw new xi("pcManager is not ready");if(e.sender=yield this.engine.createSender(e,n,A),Cc(e)&&((I=n.degradationPreference)!==null&&I!==void 0||(n.degradationPreference=nz(e)),e.setDegradationPreference(n.degradationPreference)),A)if(Bh()&&e.kind===De.Kind.Audio){let X;for(const se of this.engine.pcManager.publisher.getTransceivers())if(se.sender===e.sender){X=se;break}X&&this.engine.pcManager.publisher.setTrackCodecBitrate({transceiver:X,codec:"opus",maxbr:!((N=A[0])===null||N===void 0)&&N.maxBitrate?A[0].maxBitrate/1e3:0})}else e.codec&&Dg(e.codec)&&(!((ne=A[0])===null||ne===void 0)&&ne.maxBitrate)&&this.engine.pcManager.publisher.setTrackCodecBitrate({cid:M.cid,codec:e.codec,maxbr:A[0].maxBitrate/1e3});yield this.engine.negotiate()});let V;if(this.enabledPublishVideoCodecs.length>0)V=(yield Promise.all([this.engine.addTrack(M),U()]))[0];else{V=yield this.engine.addTrack(M);let I;if(V.codecs.forEach(N=>{I===void 0&&(I=N.mimeType)}),I&&e.kind===De.Kind.Video){const N=ob(I);N!==R&&(this.log.debug("falling back to server selected codec",Object.assign(Object.assign(Object.assign({},this.logContext),ar(e)),{codec:N})),n.videoCodec=N,A=LT(e.source===De.Source.ScreenShare,M.width,M.height,n))}yield U()}const j=new VT(e.kind,V,e,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});return j.options=n,e.sid=V.sid,this.log.debug("publishing ".concat(e.kind," with encodings"),Object.assign(Object.assign({},this.logContext),{encodings:A,trackInfo:V})),Cc(e)?e.startMonitor(this.engine.client):Qd(e)&&e.startMonitor(),this.addTrackPublication(j),this.emit(Ie.LocalTrackPublished,j),j})}get isLocal(){return!0}publishAdditionalCodecForTrack(e,n,r){return Q(this,void 0,void 0,function*(){var a;if(this.encryptionType!==Po.NONE)return;let s;if(this.trackPublications.forEach(T=>{T.track&&T.track===e&&(s=T)}),!s)throw new uu("track is not published");if(!Cc(e))throw new uu("track is not a video track");const l=Object.assign(Object.assign({},(a=this.roomOptions)===null||a===void 0?void 0:a.publishDefaults),r),c=JV(e,n,l);if(!c){this.log.info("backup codec has been disabled, ignoring request to add additional codec for track",Object.assign(Object.assign({},this.logContext),ar(e)));return}const h=e.addSimulcastTrack(n,c);if(!h)return;const p=new V1({cid:h.mediaStreamTrack.id,type:De.kindToProto(e.kind),muted:e.isMuted,source:De.sourceToProto(e.source),sid:e.sid,simulcastCodecs:[{codec:l.videoCodec,cid:h.mediaStreamTrack.id}]});if(p.layers=FO(p.width,p.height,c),!this.engine||this.engine.isClosed)throw new xi("cannot publish track when not connected");const v=()=>Q(this,void 0,void 0,function*(){yield this.engine.createSimulcastSender(e,h,l,c),yield this.engine.negotiate()}),k=(yield Promise.all([this.engine.addTrack(p),v()]))[0];this.log.debug("published ".concat(n," for track ").concat(e.sid),Object.assign(Object.assign({},this.logContext),{encodings:c,trackInfo:k}))})}unpublishTrack(e,n){return Q(this,void 0,void 0,function*(){var r,a;if(Hh(e)){const p=this.pendingPublishPromises.get(e);p&&(this.log.info("awaiting publish promise before attempting to unpublish",Object.assign(Object.assign({},this.logContext),ar(e))),yield p)}const s=this.getPublicationForTrack(e),l=s?ar(s):void 0;if(this.log.debug("unpublishing track",Object.assign(Object.assign({},this.logContext),l)),!s||!s.track){this.log.warn("track was not unpublished because no publication was found",Object.assign(Object.assign({},this.logContext),l));return}e=s.track,e.off(Qe.Muted,this.onTrackMuted),e.off(Qe.Unmuted,this.onTrackUnmuted),e.off(Qe.Ended,this.handleTrackEnded),e.off(Qe.UpstreamPaused,this.onTrackUpstreamPaused),e.off(Qe.UpstreamResumed,this.onTrackUpstreamResumed),e.off(Qe.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate),n===void 0&&(n=(a=(r=this.roomOptions)===null||r===void 0?void 0:r.stopLocalTrackOnUnpublish)!==null&&a!==void 0?a:!0),n?e.stop():e.stopMonitor();let c=!1;const h=e.sender;if(e.sender=void 0,this.engine.pcManager&&this.engine.pcManager.currentState<Jr.FAILED&&h)try{for(const p of this.engine.pcManager.publisher.getTransceivers())p.sender===h&&(p.direction="inactive",c=!0);if(this.engine.removeTrack(h)&&(c=!0),Cc(e)){for(const[,p]of e.simulcastCodecs)p.sender&&(this.engine.removeTrack(p.sender)&&(c=!0),p.sender=void 0);e.simulcastCodecs.clear()}}catch(p){this.log.warn("failed to unpublish track",Object.assign(Object.assign(Object.assign({},this.logContext),l),{error:p}))}switch(this.trackPublications.delete(s.trackSid),s.kind){case De.Kind.Audio:this.audioTrackPublications.delete(s.trackSid);break;case De.Kind.Video:this.videoTrackPublications.delete(s.trackSid);break}return this.emit(Ie.LocalTrackUnpublished,s),s.setTrack(void 0),c&&(yield this.engine.negotiate()),s})}unpublishTracks(e){return Q(this,void 0,void 0,function*(){return(yield Promise.all(e.map(r=>this.unpublishTrack(r)))).filter(r=>!!r)})}republishAllTracks(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){r.republishPromise&&(yield r.republishPromise),r.republishPromise=new Promise((s,l)=>Q(r,void 0,void 0,function*(){try{const c=[];this.trackPublications.forEach(h=>{h.track&&(n&&(h.options=Object.assign(Object.assign({},h.options),n)),c.push(h))}),yield Promise.all(c.map(h=>Q(this,void 0,void 0,function*(){const p=h.track;yield this.unpublishTrack(p,!1),a&&!p.isMuted&&p.source!==De.Source.ScreenShare&&p.source!==De.Source.ScreenShareAudio&&(Qd(p)||Cc(p))&&!p.isUserProvided&&(this.log.debug("restarting existing track",Object.assign(Object.assign({},this.logContext),{track:h.trackSid})),yield p.restartTrack()),yield this.publishOrRepublishTrack(p,h.options,!0)}))),s()}catch(c){l(c)}finally{this.republishPromise=void 0}})),yield r.republishPromise}()})}publishData(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function*(){const s=a.reliable?$n.RELIABLE:$n.LOSSY,l=a.destinationIdentities,c=a.topic,h=new ro({kind:s,value:{case:"user",value:new zD({participantIdentity:r.identity,payload:n,destinationIdentities:l,topic:c})}});yield r.engine.sendDataPacket(h,s)}()})}publishDtmf(e,n){return Q(this,void 0,void 0,function*(){const r=new ro({kind:$n.RELIABLE,value:{case:"sipDtmf",value:new BD({code:e,digit:n})}});yield this.engine.sendDataPacket(r,$n.RELIABLE)})}sendChatMessage(e,n){return Q(this,void 0,void 0,function*(){const r={id:crypto.randomUUID(),message:e,timestamp:Date.now(),attachedFiles:n==null?void 0:n.attachments},a=new ro({value:{case:"chatMessage",value:new M1(Object.assign(Object.assign({},r),{timestamp:Ur.parse(r.timestamp)}))}});return yield this.engine.sendDataPacket(a,$n.RELIABLE),this.emit(Ie.ChatMessage,r),r})}editChatMessage(e,n){return Q(this,void 0,void 0,function*(){const r=Object.assign(Object.assign({},n),{message:e,editTimestamp:Date.now()}),a=new ro({value:{case:"chatMessage",value:new M1(Object.assign(Object.assign({},r),{timestamp:Ur.parse(r.timestamp),editTimestamp:Ur.parse(r.editTimestamp)}))}});return yield this.engine.sendDataPacket(a,$n.RELIABLE),this.emit(Ie.ChatMessage,r),r})}sendText(e,n){return Q(this,void 0,void 0,function*(){var r;const a=crypto.randomUUID(),l=new TextEncoder().encode(e).byteLength,c=(r=n==null?void 0:n.attachments)===null||r===void 0?void 0:r.map(()=>crypto.randomUUID()),h=new Array(c?c.length+1:1).fill(0),p=(b,k)=>{var T;h[k]=b;const E=h.reduce((R,M)=>R+M,0);(T=n==null?void 0:n.onProgress)===null||T===void 0||T.call(n,E)},v=yield this.streamText({streamId:a,totalSize:l,destinationIdentities:n==null?void 0:n.destinationIdentities,topic:n==null?void 0:n.topic,attachedStreamIds:c,attributes:n==null?void 0:n.attributes});return yield v.write(e),p(1,0),yield v.close(),n!=null&&n.attachments&&c&&(yield Promise.all(n.attachments.map((b,k)=>Q(this,void 0,void 0,function*(){return this._sendFile(c[k],b,{topic:n.topic,mimeType:b.type,onProgress:T=>{p(T,k+1)}})})))),v.info})}streamText(e){return Q(this,void 0,void 0,function*(){var n,r;const a=(n=e==null?void 0:e.streamId)!==null&&n!==void 0?n:crypto.randomUUID(),s={id:a,mimeType:"text/plain",timestamp:Date.now(),topic:(r=e==null?void 0:e.topic)!==null&&r!==void 0?r:"",size:e==null?void 0:e.totalSize,attributes:e==null?void 0:e.attributes},l=new N1({streamId:a,mimeType:s.mimeType,topic:s.topic,timestamp:Zd(s.timestamp),totalLength:Zd(e==null?void 0:e.totalSize),attributes:s.attributes,contentHeader:{case:"textHeader",value:new JD({version:e==null?void 0:e.version,attachedStreamIds:e==null?void 0:e.attachedStreamIds,replyToStreamId:e==null?void 0:e.replyToStreamId,operationType:(e==null?void 0:e.type)==="update"?L1.UPDATE:L1.CREATE})}}),c=e==null?void 0:e.destinationIdentities,h=new ro({destinationIdentities:c,value:{case:"streamHeader",value:l}});yield this.engine.sendDataPacket(h,$n.RELIABLE);let p=0;const v=this,b=new WritableStream({write(E){return Q(this,void 0,void 0,function*(){for(const R of CV(E,WO)){yield v.engine.waitForBufferStatusLow($n.RELIABLE);const M=new I1({content:R,streamId:a,chunkIndex:Zd(p)}),A=new ro({destinationIdentities:c,value:{case:"streamChunk",value:M}});yield v.engine.sendDataPacket(A,$n.RELIABLE),p+=1}})},close(){return Q(this,void 0,void 0,function*(){const E=new U1({streamId:a}),R=new ro({destinationIdentities:c,value:{case:"streamTrailer",value:E}});yield v.engine.sendDataPacket(R,$n.RELIABLE)})},abort(E){console.log("Sink error:",E)}});let k=()=>Q(this,void 0,void 0,function*(){yield T.close()});v.engine.once(et.Closing,k);const T=new dz(b,s,()=>this.engine.off(et.Closing,k));return T})}sendFile(e,n){return Q(this,void 0,void 0,function*(){const r=crypto.randomUUID();return yield this._sendFile(r,e,n),{id:r}})}_sendFile(e,n,r){return Q(this,void 0,void 0,function*(){var a;const s=yield this.streamBytes({streamId:e,totalSize:n.size,name:n.name,mimeType:(a=r==null?void 0:r.mimeType)!==null&&a!==void 0?a:n.type,topic:r==null?void 0:r.topic,destinationIdentities:r==null?void 0:r.destinationIdentities}),l=n.stream().getReader();for(;;){const{done:c,value:h}=yield l.read();if(c)break;yield s.write(h)}return yield s.close(),s.info})}streamBytes(e){return Q(this,void 0,void 0,function*(){var n,r,a,s,l;const c=(n=e==null?void 0:e.streamId)!==null&&n!==void 0?n:crypto.randomUUID(),h=e==null?void 0:e.destinationIdentities,p={id:c,mimeType:(r=e==null?void 0:e.mimeType)!==null&&r!==void 0?r:"application/octet-stream",topic:(a=e==null?void 0:e.topic)!==null&&a!==void 0?a:"",timestamp:Date.now(),attributes:e==null?void 0:e.attributes,size:e==null?void 0:e.totalSize,name:(s=e==null?void 0:e.name)!==null&&s!==void 0?s:"unknown"},v=new N1({totalLength:Zd((l=p.size)!==null&&l!==void 0?l:0),mimeType:p.mimeType,streamId:c,topic:p.topic,timestamp:Zd(Date.now()),contentHeader:{case:"byteHeader",value:new eA({name:p.name})}}),b=new ro({destinationIdentities:h,value:{case:"streamHeader",value:v}});yield this.engine.sendDataPacket(b,$n.RELIABLE);let k=0;const T=new to,E=this.engine,R=this.log,M=new WritableStream({write(U){return Q(this,void 0,void 0,function*(){const V=yield T.lock();let j=0;try{for(;j<U.byteLength;){const I=U.slice(j,j+WO);yield E.waitForBufferStatusLow($n.RELIABLE);const N=new ro({destinationIdentities:h,value:{case:"streamChunk",value:new I1({content:I,streamId:c,chunkIndex:Zd(k)})}});yield E.sendDataPacket(N,$n.RELIABLE),k+=1,j+=I.byteLength}}finally{V()}})},close(){return Q(this,void 0,void 0,function*(){const U=new U1({streamId:c}),V=new ro({destinationIdentities:h,value:{case:"streamTrailer",value:U}});yield E.sendDataPacket(V,$n.RELIABLE)})},abort(U){R.error("Sink error:",U)}});return new fz(M,p)})}performRpc(e){return Q(this,arguments,void 0,function(n){var r=this;let{destinationIdentity:a,method:s,payload:l,responseTimeout:c=1e4}=n;return function*(){return new Promise((p,v)=>Q(r,void 0,void 0,function*(){var b,k,T,E;if(AT(l)>AO){v(ei.builtIn("REQUEST_PAYLOAD_TOO_LARGE"));return}if(!((k=(b=this.engine.latestJoinResponse)===null||b===void 0?void 0:b.serverInfo)===null||k===void 0)&&k.version&&bc((E=(T=this.engine.latestJoinResponse)===null||T===void 0?void 0:T.serverInfo)===null||E===void 0?void 0:E.version,"1.8.0")<0){v(ei.builtIn("UNSUPPORTED_SERVER"));return}const R=crypto.randomUUID();yield this.publishRpcRequest(a,R,s,l,c-2e3);const M=setTimeout(()=>{this.pendingAcks.delete(R),v(ei.builtIn("CONNECTION_TIMEOUT")),this.pendingResponses.delete(R),clearTimeout(A)},2e3);this.pendingAcks.set(R,{resolve:()=>{clearTimeout(M)},participantIdentity:a});const A=setTimeout(()=>{this.pendingResponses.delete(R),v(ei.builtIn("RESPONSE_TIMEOUT"))},c);this.pendingResponses.set(R,{resolve:(U,V)=>{clearTimeout(A),this.pendingAcks.has(R)&&(console.warn("RPC response received before ack",R),this.pendingAcks.delete(R),clearTimeout(M)),V?v(V):p(U??"")},participantIdentity:a})}))}()})}registerRpcMethod(e,n){this.rpcHandlers.has(e)&&this.log.warn("you're overriding the RPC handler for method ".concat(e,", in the future this will throw an error")),this.rpcHandlers.set(e,n)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}setTrackSubscriptionPermissions(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];this.participantTrackPermissions=n,this.allParticipantsAllowedToSubscribe=e,this.engine.client.isDisconnected||this.updateTrackSubscriptionPermissions()}handleIncomingRpcAck(e){const n=this.pendingAcks.get(e);n?(n.resolve(),this.pendingAcks.delete(e)):console.error("Ack received for unexpected RPC request",e)}handleIncomingRpcResponse(e,n,r){const a=this.pendingResponses.get(e);a?(a.resolve(n,r),this.pendingResponses.delete(e)):console.error("Response received for unexpected RPC request",e)}publishRpcRequest(e,n,r,a,s){return Q(this,void 0,void 0,function*(){const l=new ro({destinationIdentities:[e],kind:$n.RELIABLE,value:{case:"rpcRequest",value:new HD({id:n,method:r,payload:a,responseTimeoutMs:s,version:1})}});yield this.engine.sendDataPacket(l,$n.RELIABLE)})}handleParticipantDisconnected(e){for(const[n,{participantIdentity:r}]of this.pendingAcks)r===e&&this.pendingAcks.delete(n);for(const[n,{participantIdentity:r,resolve:a}]of this.pendingResponses)r===e&&(a(null,ei.builtIn("RECIPIENT_DISCONNECTED")),this.pendingResponses.delete(n))}setEnabledPublishCodecs(e){this.enabledPublishVideoCodecs=e.filter(n=>n.mime.split("/")[0].toLowerCase()==="video")}updateInfo(e){return e.sid!==this.sid||!super.updateInfo(e)?!1:(e.tracks.forEach(n=>{var r,a;const s=this.trackPublications.get(n.sid);if(s){const l=s.isMuted||((a=(r=s.track)===null||r===void 0?void 0:r.isUpstreamPaused)!==null&&a!==void 0?a:!1);l!==n.muted&&(this.log.debug("updating server mute state after reconcile",Object.assign(Object.assign(Object.assign({},this.logContext),ar(s)),{mutedOnServer:l})),this.engine.client.sendMuteTrack(n.sid,l))}}),!0)}getPublicationForTrack(e){let n;return this.trackPublications.forEach(r=>{const a=r.track;a&&(e instanceof MediaStreamTrack?(Qd(a)||Cc(a))&&a.mediaStreamTrack===e&&(n=r):e===a&&(n=r))}),n}waitForPendingPublicationOfSource(e){return Q(this,void 0,void 0,function*(){const r=Date.now();for(;Date.now()<r+1e4;){const a=Array.from(this.pendingPublishPromises.entries()).find(s=>{let[l]=s;return l.source===e});if(a)return a[1];yield io(20)}})}}class GO extends du{constructor(e,n,r,a){super(e,n.sid,n.name,a),this.track=void 0,this.allowed=!0,this.disabled=!1,this.currentVideoQuality=Go.HIGH,this.handleEnded=s=>{this.setTrack(void 0),this.emit(Qe.Ended,s)},this.handleVisibilityChange=s=>{this.log.debug("adaptivestream video visibility ".concat(this.trackSid,", visible=").concat(s),this.logContext),this.disabled=!s,this.emitTrackUpdate()},this.handleVideoDimensionsChange=s=>{this.log.debug("adaptivestream video dimensions ".concat(s.width,"x").concat(s.height),this.logContext),this.videoDimensions=s,this.emitTrackUpdate()},this.subscribed=r,this.updateInfo(n)}setSubscribed(e){const n=this.subscriptionStatus,r=this.permissionStatus;this.subscribed=e,e&&(this.allowed=!0);const a=new q0({trackSids:[this.trackSid],subscribe:this.subscribed,participantTracks:[new GD({participantSid:"",trackSids:[this.trackSid]})]});this.emit(Qe.UpdateSubscription,a),this.emitSubscriptionUpdateIfChanged(n),this.emitPermissionUpdateIfChanged(r)}get subscriptionStatus(){return this.subscribed===!1?du.SubscriptionStatus.Unsubscribed:super.isSubscribed?du.SubscriptionStatus.Subscribed:du.SubscriptionStatus.Desired}get permissionStatus(){return this.allowed?du.PermissionStatus.Allowed:du.PermissionStatus.NotAllowed}get isSubscribed(){return this.subscribed===!1?!1:super.isSubscribed}get isDesired(){return this.subscribed!==!1}get isEnabled(){return!this.disabled}get isLocal(){return!1}setEnabled(e){!this.isManualOperationAllowed()||this.disabled===!e||(this.disabled=!e,this.emitTrackUpdate())}setVideoQuality(e){!this.isManualOperationAllowed()||this.currentVideoQuality===e||(this.currentVideoQuality=e,this.videoDimensions=void 0,this.emitTrackUpdate())}setVideoDimensions(e){var n,r;this.isManualOperationAllowed()&&(((n=this.videoDimensions)===null||n===void 0?void 0:n.width)===e.width&&((r=this.videoDimensions)===null||r===void 0?void 0:r.height)===e.height||(bT(this.track)&&(this.videoDimensions=e),this.currentVideoQuality=void 0,this.emitTrackUpdate()))}setVideoFPS(e){this.isManualOperationAllowed()&&bT(this.track)&&this.fps!==e&&(this.fps=e,this.emitTrackUpdate())}get videoQuality(){return this.currentVideoQuality}setTrack(e){const n=this.subscriptionStatus,r=this.permissionStatus,a=this.track;a!==e&&(a&&(a.off(Qe.VideoDimensionsChanged,this.handleVideoDimensionsChange),a.off(Qe.VisibilityChanged,this.handleVisibilityChange),a.off(Qe.Ended,this.handleEnded),a.detach(),a.stopMonitor(),this.emit(Qe.Unsubscribed,a)),super.setTrack(e),e&&(e.sid=this.trackSid,e.on(Qe.VideoDimensionsChanged,this.handleVideoDimensionsChange),e.on(Qe.VisibilityChanged,this.handleVisibilityChange),e.on(Qe.Ended,this.handleEnded),this.emit(Qe.Subscribed,e)),this.emitPermissionUpdateIfChanged(r),this.emitSubscriptionUpdateIfChanged(n))}setAllowed(e){const n=this.subscriptionStatus,r=this.permissionStatus;this.allowed=e,this.emitPermissionUpdateIfChanged(r),this.emitSubscriptionUpdateIfChanged(n)}setSubscriptionError(e){this.emit(Qe.SubscriptionFailed,e)}updateInfo(e){super.updateInfo(e);const n=this.metadataMuted;this.metadataMuted=e.muted,this.track?this.track.setMuted(e.muted):n!==e.muted&&this.emit(e.muted?Qe.Muted:Qe.Unmuted)}emitSubscriptionUpdateIfChanged(e){const n=this.subscriptionStatus;e!==n&&this.emit(Qe.SubscriptionStatusChanged,n,e)}emitPermissionUpdateIfChanged(e){this.permissionStatus!==e&&this.emit(Qe.SubscriptionPermissionChanged,this.permissionStatus,e)}isManualOperationAllowed(){return this.kind===De.Kind.Video&&this.isAdaptiveStream?(this.log.warn("adaptive stream is enabled, cannot change video track settings",this.logContext),!1):this.isDesired?!0:(this.log.warn("cannot update track settings when not subscribed",this.logContext),!1)}get isAdaptiveStream(){return bT(this.track)&&this.track.isAdaptiveStream}emitTrackUpdate(){const e=new nA({trackSids:[this.trackSid],disabled:this.disabled,fps:this.fps});this.videoDimensions?(e.width=Math.ceil(this.videoDimensions.width),e.height=Math.ceil(this.videoDimensions.height)):this.currentVideoQuality!==void 0?e.quality=this.currentVideoQuality:e.quality=Go.HIGH,this.emit(Qe.UpdateSettings,e)}}class pb extends qO{static fromParticipantInfo(e,n,r){return new pb(e,n.sid,n.identity,n.name,n.metadata,n.attributes,r,n.kind)}get logContext(){return Object.assign(Object.assign({},super.logContext),{rpID:this.sid,remoteParticipant:this.identity})}constructor(e,n,r,a,s,l,c){let h=arguments.length>7&&arguments[7]!==void 0?arguments[7]:_g.STANDARD;super(n,r||"",a,s,l,c,h),this.signalClient=e,this.trackPublications=new Map,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.volumeMap=new Map}addTrackPublication(e){super.addTrackPublication(e),e.on(Qe.UpdateSettings,n=>{this.log.debug("send update settings",Object.assign(Object.assign({},this.logContext),ar(e))),this.signalClient.sendUpdateTrackSettings(n)}),e.on(Qe.UpdateSubscription,n=>{n.participantTracks.forEach(r=>{r.participantSid=this.sid}),this.signalClient.sendUpdateSubscription(n)}),e.on(Qe.SubscriptionPermissionChanged,n=>{this.emit(Ie.TrackSubscriptionPermissionChanged,e,n)}),e.on(Qe.SubscriptionStatusChanged,n=>{this.emit(Ie.TrackSubscriptionStatusChanged,e,n)}),e.on(Qe.Subscribed,n=>{this.emit(Ie.TrackSubscribed,n,e)}),e.on(Qe.Unsubscribed,n=>{this.emit(Ie.TrackUnsubscribed,n,e)}),e.on(Qe.SubscriptionFailed,n=>{this.emit(Ie.TrackSubscriptionFailed,e.trackSid,n)})}getTrackPublication(e){const n=super.getTrackPublication(e);if(n)return n}getTrackPublicationByName(e){const n=super.getTrackPublicationByName(e);if(n)return n}setVolume(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:De.Source.Microphone;this.volumeMap.set(n,e);const r=this.getTrackPublication(n);r&&r.track&&r.track.setVolume(e)}getVolume(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:De.Source.Microphone;const n=this.getTrackPublication(e);return n&&n.track?n.track.getVolume():this.volumeMap.get(e)}addSubscribedMediaTrack(e,n,r,a,s,l){let c=this.getTrackPublicationBySid(n);if(c||n.startsWith("TR")||this.trackPublications.forEach(v=>{!c&&e.kind===v.kind.toString()&&(c=v)}),!c){if(l===0){this.log.error("could not find published track",Object.assign(Object.assign({},this.logContext),{trackSid:n})),this.emit(Ie.TrackSubscriptionFailed,n);return}l===void 0&&(l=20),setTimeout(()=>{this.addSubscribedMediaTrack(e,n,r,a,s,l-1)},150);return}if(e.readyState==="ended"){this.log.error("unable to subscribe because MediaStreamTrack is ended. Do not call MediaStreamTrack.stop()",Object.assign(Object.assign({},this.logContext),ar(c))),this.emit(Ie.TrackSubscriptionFailed,n);return}const h=e.kind==="video";let p;return h?p=new hz(e,n,a,s):p=new $O(e,n,a,this.audioContext,this.audioOutput),p.source=c.source,p.isMuted=c.isMuted,p.setMediaStream(r),p.start(),c.setTrack(p),this.volumeMap.has(c.source)&&yT(p)&&cu(p)&&p.setVolume(this.volumeMap.get(c.source)),c}get hasMetadata(){return!!this.participantInfo}getTrackPublicationBySid(e){return this.trackPublications.get(e)}updateInfo(e){if(!super.updateInfo(e))return!1;const n=new Map,r=new Map;return e.tracks.forEach(a=>{var s,l;let c=this.getTrackPublicationBySid(a.sid);if(c)c.updateInfo(a);else{const h=De.kindFromProto(a.type);if(!h)return;c=new GO(h,a,(s=this.signalClient.connectOptions)===null||s===void 0?void 0:s.autoSubscribe,{loggerContextCb:()=>this.logContext,loggerName:(l=this.loggerOptions)===null||l===void 0?void 0:l.loggerName}),c.updateInfo(a),r.set(a.sid,c);const p=Array.from(this.trackPublications.values()).find(v=>v.source===(c==null?void 0:c.source));p&&c.source!==De.Source.Unknown&&this.log.debug("received a second track publication for ".concat(this.identity," with the same source: ").concat(c.source),Object.assign(Object.assign({},this.logContext),{oldTrack:ar(p),newTrack:ar(c)})),this.addTrackPublication(c)}n.set(a.sid,c)}),this.trackPublications.forEach(a=>{n.has(a.trackSid)||(this.log.trace("detected removed track on remote participant, unpublishing",Object.assign(Object.assign({},this.logContext),ar(a))),this.unpublishTrack(a.trackSid,!0))}),r.forEach(a=>{this.emit(Ie.TrackPublished,a)}),!0}unpublishTrack(e,n){const r=this.trackPublications.get(e);if(!r)return;const{track:a}=r;switch(a&&(a.stop(),r.setTrack(void 0)),this.trackPublications.delete(e),r.kind){case De.Kind.Audio:this.audioTrackPublications.delete(e);break;case De.Kind.Video:this.videoTrackPublications.delete(e);break}n&&this.emit(Ie.TrackUnpublished,r)}setAudioOutput(e){return Q(this,void 0,void 0,function*(){this.audioOutput=e;const n=[];this.audioTrackPublications.forEach(r=>{var a;cu(r.track)&&yT(r.track)&&n.push(r.track.setSinkId((a=e.deviceId)!==null&&a!==void 0?a:"default"))}),yield Promise.all(n)})}emit(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];return this.log.trace("participant event",Object.assign(Object.assign({},this.logContext),{event:e,args:r})),super.emit(e,...r)}}var Fn;(function(t){t.Disconnected="disconnected",t.Connecting="connecting",t.Connected="connected",t.Reconnecting="reconnecting",t.SignalReconnecting="signalReconnecting"})(Fn||(Fn={}));const bz=4*1e3;class Gh extends dl.EventEmitter{constructor(e){var n,r,a,s;if(super(),n=this,this.state=Fn.Disconnected,this.activeSpeakers=[],this.isE2EEEnabled=!1,this.audioEnabled=!0,this.isVideoPlaybackBlocked=!1,this.log=Nn,this.bufferedEvents=[],this.isResuming=!1,this.byteStreamControllers=new Map,this.textStreamControllers=new Map,this.byteStreamHandlers=new Map,this.textStreamHandlers=new Map,this.rpcHandlers=new Map,this.connect=(l,c,h)=>Q(this,void 0,void 0,function*(){var p;if(!uV())throw fl()?Error("WebRTC isn't detected, have you called registerGlobals?"):Error("LiveKit doesn't seem to be supported on this browser. Try to update your browser and make sure no browser extensions are disabling webRTC.");const v=yield this.disconnectLock.lock();if(this.state===Fn.Connected)return this.log.info("already connected to room ".concat(this.name),this.logContext),v(),Promise.resolve();if(this.connectFuture)return v(),this.connectFuture.promise;this.setAndEmitConnectionState(Fn.Connecting),((p=this.regionUrlProvider)===null||p===void 0?void 0:p.getServerUrl().toString())!==l&&(this.regionUrl=void 0,this.regionUrlProvider=void 0),hT(new URL(l))&&(this.regionUrlProvider===void 0?this.regionUrlProvider=new UT(l,c):this.regionUrlProvider.updateToken(c),this.regionUrlProvider.fetchRegionSettings().then(T=>{var E;(E=this.regionUrlProvider)===null||E===void 0||E.setServerReportedRegions(T)}).catch(T=>{this.log.warn("could not fetch region settings",Object.assign(Object.assign({},this.logContext),{error:T}))}));const b=(T,E,R)=>Q(this,void 0,void 0,function*(){var M,A;this.abortController&&this.abortController.abort();const U=new AbortController;this.abortController=U,v==null||v();try{yield this.attemptConnection(R??l,c,h,U),this.abortController=void 0,T()}catch(V){if(this.regionUrlProvider&&V instanceof br&&V.reason!==Un.Cancelled&&V.reason!==Un.NotAllowed){let j=null;try{j=yield this.regionUrlProvider.getNextBestRegionUrl((M=this.abortController)===null||M===void 0?void 0:M.signal)}catch(I){if(I instanceof br&&(I.status===401||I.reason===Un.Cancelled)){this.handleDisconnect(this.options.stopLocalTrackOnUnpublish),E(I);return}}j&&!(!((A=this.abortController)===null||A===void 0)&&A.signal.aborted)?(this.log.info("Initial connection failed with ConnectionError: ".concat(V.message,". Retrying with another region: ").concat(j),this.logContext),this.recreateEngine(),yield b(T,E,j)):(this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,pO(V)),E(V))}else{let j=ks.UNKNOWN_REASON;V instanceof br&&(j=pO(V)),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,j),E(V)}}}),k=this.regionUrl;return this.regionUrl=void 0,this.connectFuture=new hO((T,E)=>{b(T,E,k)},()=>{this.clearConnectionFutures()}),this.connectFuture.promise}),this.connectSignal=(l,c,h,p,v,b)=>Q(this,void 0,void 0,function*(){var k,T,E;const R=yield h.join(l,c,{autoSubscribe:p.autoSubscribe,adaptiveStream:typeof v.adaptiveStream=="object"?!0:v.adaptiveStream,maxRetries:p.maxRetries,e2eeEnabled:!!this.e2eeManager,websocketTimeout:p.websocketTimeout},b.signal);let M=R.serverInfo;if(M||(M={version:R.serverVersion,region:R.serverRegion}),this.serverInfo=M,this.log.debug("connected to Livekit Server ".concat(Object.entries(M).map(A=>{let[U,V]=A;return"".concat(U,": ").concat(V)}).join(", ")),{room:(k=R.room)===null||k===void 0?void 0:k.name,roomSid:(T=R.room)===null||T===void 0?void 0:T.sid,identity:(E=R.participant)===null||E===void 0?void 0:E.identity}),!M.version)throw new Y8("unknown server version");return M.version==="0.15.1"&&this.options.dynacast&&(this.log.debug("disabling dynacast due to server version",this.logContext),v.dynacast=!1),R}),this.applyJoinResponse=l=>{const c=l.participant;if(this.localParticipant.sid=c.sid,this.localParticipant.identity=c.identity,this.localParticipant.setEnabledPublishCodecs(l.enabledPublishCodecs),this.options.e2ee&&this.e2eeManager)try{this.e2eeManager.setSifTrailer(l.sifTrailer)}catch(h){this.log.error(h instanceof Error?h.message:"Could not set SifTrailer",Object.assign(Object.assign({},this.logContext),{error:h}))}this.handleParticipantUpdates([c,...l.otherParticipants]),l.room&&this.handleRoomUpdate(l.room)},this.attemptConnection=(l,c,h,p)=>Q(this,void 0,void 0,function*(){var v,b;this.state===Fn.Reconnecting||this.isResuming||!((v=this.engine)===null||v===void 0)&&v.pendingReconnect?(this.log.info("Reconnection attempt replaced by new connection attempt",this.logContext),this.recreateEngine()):this.maybeCreateEngine(),!((b=this.regionUrlProvider)===null||b===void 0)&&b.isCloud()&&this.engine.setRegionUrlProvider(this.regionUrlProvider),this.acquireAudioContext(),this.connOptions=Object.assign(Object.assign({},DT),h),this.connOptions.rtcConfig&&(this.engine.rtcConfig=this.connOptions.rtcConfig),this.connOptions.peerConnectionTimeout&&(this.engine.peerConnectionTimeout=this.connOptions.peerConnectionTimeout);try{const k=yield this.connectSignal(l,c,this.engine,this.connOptions,this.options,p);this.applyJoinResponse(k),this.setupLocalParticipantEvents(),this.emit(Ee.SignalConnected)}catch(k){yield this.engine.close(),this.recreateEngine();const T=new br("could not establish signal connection",Un.ServerUnreachable);throw k instanceof Error&&(T.message="".concat(T.message,": ").concat(k.message)),k instanceof br&&(T.reason=k.reason,T.status=k.status),this.log.debug("error trying to establish signal connection",Object.assign(Object.assign({},this.logContext),{error:k})),T}if(p.signal.aborted)throw yield this.engine.close(),this.recreateEngine(),new br("Connection attempt aborted",Un.Cancelled);try{yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout,p)}catch(k){throw yield this.engine.close(),this.recreateEngine(),k}ao()&&this.options.disconnectOnPageLeave&&(window.addEventListener("pagehide",this.onPageLeave),window.addEventListener("beforeunload",this.onPageLeave)),ao()&&document.addEventListener("freeze",this.onPageLeave),this.setAndEmitConnectionState(Fn.Connected),this.emit(Ee.Connected),this.registerConnectionReconcile()}),this.disconnect=function(){for(var l=arguments.length,c=new Array(l),h=0;h<l;h++)c[h]=arguments[h];return Q(n,[...c],void 0,function(){var p=this;let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var b,k,T,E;const R=yield p.disconnectLock.lock();try{if(p.state===Fn.Disconnected){p.log.debug("already disconnected",p.logContext);return}p.log.info("disconnect from room",Object.assign({},p.logContext)),(p.state===Fn.Connecting||p.state===Fn.Reconnecting||p.isResuming)&&(p.log.warn("abort connection attempt",p.logContext),(b=p.abortController)===null||b===void 0||b.abort(),(T=(k=p.connectFuture)===null||k===void 0?void 0:k.reject)===null||T===void 0||T.call(k,new br("Client initiated disconnect",Un.Cancelled)),p.connectFuture=void 0),!((E=p.engine)===null||E===void 0)&&E.client.isDisconnected||(yield p.engine.client.sendLeave()),p.engine&&(yield p.engine.close()),p.handleDisconnect(v,ks.CLIENT_INITIATED),p.engine=void 0}finally{R()}}()})},this.onPageLeave=()=>Q(this,void 0,void 0,function*(){this.log.info("Page leave detected, disconnecting",this.logContext),yield this.disconnect()}),this.startAudio=()=>Q(this,void 0,void 0,function*(){const l=[],c=ws();if(c&&c.os==="iOS"){const h="livekit-dummy-audio-el";let p=document.getElementById(h);if(!p){p=document.createElement("audio"),p.id=h,p.autoplay=!0,p.hidden=!0;const v=gT();v.enabled=!0;const b=new MediaStream([v]);p.srcObject=b,document.addEventListener("visibilitychange",()=>{p&&(p.srcObject=document.hidden?null:b,document.hidden||(this.log.debug("page visible again, triggering startAudio to resume playback and update playback status",this.logContext),this.startAudio()))}),document.body.append(p),this.once(Ee.Disconnected,()=>{p==null||p.remove(),p=null})}l.push(p)}this.remoteParticipants.forEach(h=>{h.audioTrackPublications.forEach(p=>{p.track&&p.track.attachedElements.forEach(v=>{l.push(v)})})});try{yield Promise.all([this.acquireAudioContext(),...l.map(h=>(h.muted=!1,h.play()))]),this.handleAudioPlaybackStarted()}catch(h){throw this.handleAudioPlaybackFailed(h),h}}),this.startVideo=()=>Q(this,void 0,void 0,function*(){const l=[];for(const c of this.remoteParticipants.values())c.videoTrackPublications.forEach(h=>{var p;(p=h.track)===null||p===void 0||p.attachedElements.forEach(v=>{l.includes(v)||l.push(v)})});yield Promise.all(l.map(c=>c.play())).then(()=>{this.handleVideoPlaybackStarted()}).catch(c=>{c.name==="NotAllowedError"?this.handleVideoPlaybackFailed():this.log.warn("Resuming video playback failed, make sure you call `startVideo` directly in a user gesture handler",this.logContext)})}),this.handleRestarting=()=>{this.clearConnectionReconcile(),this.isResuming=!1;for(const l of this.remoteParticipants.values())this.handleParticipantDisconnected(l.identity,l);this.setAndEmitConnectionState(Fn.Reconnecting)&&this.emit(Ee.Reconnecting)},this.handleSignalRestarted=l=>Q(this,void 0,void 0,function*(){this.log.debug("signal reconnected to server, region ".concat(l.serverRegion),Object.assign(Object.assign({},this.logContext),{region:l.serverRegion})),this.bufferedEvents=[],this.applyJoinResponse(l);try{yield this.localParticipant.republishAllTracks(void 0,!0)}catch(c){this.log.error("error trying to re-publish tracks after reconnection",Object.assign(Object.assign({},this.logContext),{error:c}))}try{yield this.engine.waitForRestarted(),this.log.debug("fully reconnected to server",Object.assign(Object.assign({},this.logContext),{region:l.serverRegion}))}catch{return}this.setAndEmitConnectionState(Fn.Connected),this.emit(Ee.Reconnected),this.registerConnectionReconcile(),this.emitBufferedEvents()}),this.handleParticipantUpdates=l=>{l.forEach(c=>{var h;if(c.identity===this.localParticipant.identity){this.localParticipant.updateInfo(c);return}c.identity===""&&(c.identity=(h=this.sidToIdentity.get(c.sid))!==null&&h!==void 0?h:"");let p=this.remoteParticipants.get(c.identity);c.state===O1.DISCONNECTED?this.handleParticipantDisconnected(c.identity,p):p=this.getOrCreateParticipant(c.identity,c)})},this.handleActiveSpeakersUpdate=l=>{const c=[],h={};l.forEach(p=>{if(h[p.sid]=!0,p.sid===this.localParticipant.sid)this.localParticipant.audioLevel=p.level,this.localParticipant.setIsSpeaking(!0),c.push(this.localParticipant);else{const v=this.getRemoteParticipantBySid(p.sid);v&&(v.audioLevel=p.level,v.setIsSpeaking(!0),c.push(v))}}),h[this.localParticipant.sid]||(this.localParticipant.audioLevel=0,this.localParticipant.setIsSpeaking(!1)),this.remoteParticipants.forEach(p=>{h[p.sid]||(p.audioLevel=0,p.setIsSpeaking(!1))}),this.activeSpeakers=c,this.emitWhenConnected(Ee.ActiveSpeakersChanged,c)},this.handleSpeakersChanged=l=>{const c=new Map;this.activeSpeakers.forEach(p=>{const v=this.remoteParticipants.get(p.identity);v&&v.sid!==p.sid||c.set(p.sid,p)}),l.forEach(p=>{let v=this.getRemoteParticipantBySid(p.sid);p.sid===this.localParticipant.sid&&(v=this.localParticipant),v&&(v.audioLevel=p.level,v.setIsSpeaking(p.active),p.active?c.set(p.sid,v):c.delete(p.sid))});const h=Array.from(c.values());h.sort((p,v)=>v.audioLevel-p.audioLevel),this.activeSpeakers=h,this.emitWhenConnected(Ee.ActiveSpeakersChanged,h)},this.handleStreamStateUpdate=l=>{l.streamStates.forEach(c=>{const h=this.getRemoteParticipantBySid(c.participantSid);if(!h)return;const p=h.getTrackPublicationBySid(c.trackSid);if(!p||!p.track)return;const v=De.streamStateFromProto(c.state);v!==p.track.streamState&&(p.track.streamState=v,h.emit(Ie.TrackStreamStateChanged,p,p.track.streamState),this.emitWhenConnected(Ee.TrackStreamStateChanged,p,p.track.streamState,h))})},this.handleSubscriptionPermissionUpdate=l=>{const c=this.getRemoteParticipantBySid(l.participantSid);if(!c)return;const h=c.getTrackPublicationBySid(l.trackSid);h&&h.setAllowed(l.allowed)},this.handleSubscriptionError=l=>{const c=Array.from(this.remoteParticipants.values()).find(p=>p.trackPublications.has(l.trackSid));if(!c)return;const h=c.getTrackPublicationBySid(l.trackSid);h&&h.setSubscriptionError(l.err)},this.handleDataPacket=l=>{const c=this.remoteParticipants.get(l.participantIdentity);if(l.value.case==="user")this.handleUserPacket(c,l.value.value,l.kind);else if(l.value.case==="transcription")this.handleTranscription(c,l.value.value);else if(l.value.case==="sipDtmf")this.handleSipDtmf(c,l.value.value);else if(l.value.case==="chatMessage")this.handleChatMessage(c,l.value.value);else if(l.value.case==="metrics")this.handleMetrics(l.value.value,c);else if(l.value.case==="streamHeader")this.handleStreamHeader(l.value.value,l.participantIdentity);else if(l.value.case==="streamChunk")this.handleStreamChunk(l.value.value);else if(l.value.case==="streamTrailer")this.handleStreamTrailer(l.value.value);else if(l.value.case==="rpcRequest"){const h=l.value.value;this.handleIncomingRpcRequest(l.participantIdentity,h.id,h.method,h.payload,h.responseTimeoutMs,h.version)}},this.handleUserPacket=(l,c,h)=>{this.emit(Ee.DataReceived,c.payload,l,h,c.topic),l==null||l.emit(Ie.DataReceived,c.payload,h)},this.handleSipDtmf=(l,c)=>{this.emit(Ee.SipDTMFReceived,c,l),l==null||l.emit(Ie.SipDTMFReceived,c)},this.bufferedSegments=new Map,this.handleTranscription=(l,c)=>{const h=c.transcribedParticipantIdentity===this.localParticipant.identity?this.localParticipant:this.getParticipantByIdentity(c.transcribedParticipantIdentity),p=h==null?void 0:h.trackPublications.get(c.trackId),v=vV(c,this.transcriptionReceivedTimes);p==null||p.emit(Qe.TranscriptionReceived,v),h==null||h.emit(Ie.TranscriptionReceived,v,p),this.emit(Ee.TranscriptionReceived,v,h,p)},this.handleChatMessage=(l,c)=>{const h=yV(c);this.emit(Ee.ChatMessage,h,l)},this.handleMetrics=(l,c)=>{this.emit(Ee.MetricsReceived,l,c)},this.handleAudioPlaybackStarted=()=>{this.canPlaybackAudio||(this.audioEnabled=!0,this.emit(Ee.AudioPlaybackStatusChanged,!0))},this.handleAudioPlaybackFailed=l=>{this.log.warn("could not playback audio",Object.assign(Object.assign({},this.logContext),{error:l})),this.canPlaybackAudio&&(this.audioEnabled=!1,this.emit(Ee.AudioPlaybackStatusChanged,!1))},this.handleVideoPlaybackStarted=()=>{this.isVideoPlaybackBlocked&&(this.isVideoPlaybackBlocked=!1,this.emit(Ee.VideoPlaybackStatusChanged,!0))},this.handleVideoPlaybackFailed=()=>{this.isVideoPlaybackBlocked||(this.isVideoPlaybackBlocked=!0,this.emit(Ee.VideoPlaybackStatusChanged,!1))},this.handleDeviceChange=()=>Q(this,void 0,void 0,function*(){var l,c,h;const p=zi.getInstance().previousDevices,v=yield zi.getInstance().getDevices(void 0,!1),b=ws();if((b==null?void 0:b.name)==="Chrome"&&b.os!=="iOS")for(let T of v){const E=p.find(R=>R.deviceId===T.deviceId);E&&E.label!==""&&E.kind===T.kind&&E.label!==T.label&&this.getActiveDevice(T.kind)==="default"&&this.emit(Ee.ActiveDeviceChanged,T.kind,T.deviceId)}const k=["audiooutput","audioinput","videoinput"];for(let T of k){const E=kV(T),R=this.localParticipant.getTrackPublication(E);if(R&&(!((l=R.track)===null||l===void 0)&&l.isUserProvided))continue;const M=v.filter(U=>U.kind===T),A=this.getActiveDevice(T);if(A===((c=p.filter(U=>U.kind===T)[0])===null||c===void 0?void 0:c.deviceId)&&M.length>0&&((h=M[0])===null||h===void 0?void 0:h.deviceId)!==A){yield this.switchActiveDevice(T,M[0].deviceId);continue}T==="audioinput"&&!yc()||T==="videoinput"||M.length>0&&!M.find(U=>U.deviceId===this.getActiveDevice(T))&&(yield this.switchActiveDevice(T,M[0].deviceId))}this.emit(Ee.MediaDevicesChanged)}),this.handleRoomUpdate=l=>{const c=this.roomInfo;this.roomInfo=l,c&&c.metadata!==l.metadata&&this.emitWhenConnected(Ee.RoomMetadataChanged,l.metadata),(c==null?void 0:c.activeRecording)!==l.activeRecording&&this.emitWhenConnected(Ee.RecordingStatusChanged,l.activeRecording)},this.handleConnectionQualityUpdate=l=>{l.updates.forEach(c=>{if(c.participantSid===this.localParticipant.sid){this.localParticipant.setConnectionQuality(c.quality);return}const h=this.getRemoteParticipantBySid(c.participantSid);h&&h.setConnectionQuality(c.quality)})},this.onLocalParticipantMetadataChanged=l=>{this.emit(Ee.ParticipantMetadataChanged,l,this.localParticipant)},this.onLocalParticipantNameChanged=l=>{this.emit(Ee.ParticipantNameChanged,l,this.localParticipant)},this.onLocalAttributesChanged=l=>{this.emit(Ee.ParticipantAttributesChanged,l,this.localParticipant)},this.onLocalTrackMuted=l=>{this.emit(Ee.TrackMuted,l,this.localParticipant)},this.onLocalTrackUnmuted=l=>{this.emit(Ee.TrackUnmuted,l,this.localParticipant)},this.onTrackProcessorUpdate=l=>{var c;(c=l==null?void 0:l.onPublish)===null||c===void 0||c.call(l,this)},this.onLocalTrackPublished=l=>Q(this,void 0,void 0,function*(){var c,h,p,v,b,k;(c=l.track)===null||c===void 0||c.on(Qe.TrackProcessorUpdate,this.onTrackProcessorUpdate),(h=l.track)===null||h===void 0||h.on(Qe.Restarted,this.onLocalTrackRestarted),(b=(v=(p=l.track)===null||p===void 0?void 0:p.getProcessor())===null||v===void 0?void 0:v.onPublish)===null||b===void 0||b.call(v,this),this.emit(Ee.LocalTrackPublished,l,this.localParticipant),Qd(l.track)&&(yield l.track.checkForSilence())&&this.emit(Ee.LocalAudioSilenceDetected,l);const T=yield(k=l.track)===null||k===void 0?void 0:k.getDeviceId(!1),E=yO(l.source);E&&T&&T!==this.localParticipant.activeDeviceMap.get(E)&&(this.localParticipant.activeDeviceMap.set(E,T),this.emit(Ee.ActiveDeviceChanged,E,T))}),this.onLocalTrackUnpublished=l=>{var c,h;(c=l.track)===null||c===void 0||c.off(Qe.TrackProcessorUpdate,this.onTrackProcessorUpdate),(h=l.track)===null||h===void 0||h.off(Qe.Restarted,this.onLocalTrackRestarted),this.emit(Ee.LocalTrackUnpublished,l,this.localParticipant)},this.onLocalTrackRestarted=l=>Q(this,void 0,void 0,function*(){const c=yield l.getDeviceId(!1),h=yO(l.source);h&&c&&c!==this.localParticipant.activeDeviceMap.get(h)&&(this.log.debug("local track restarted, setting ".concat(h," ").concat(c," active"),this.logContext),this.localParticipant.activeDeviceMap.set(h,c),this.emit(Ee.ActiveDeviceChanged,h,c))}),this.onLocalConnectionQualityChanged=l=>{this.emit(Ee.ConnectionQualityChanged,l,this.localParticipant)},this.onMediaDevicesError=l=>{this.emit(Ee.MediaDevicesError,l)},this.onLocalParticipantPermissionsChanged=l=>{this.emit(Ee.ParticipantPermissionsChanged,l,this.localParticipant)},this.onLocalChatMessageSent=l=>{this.emit(Ee.ChatMessage,l,this.localParticipant)},this.setMaxListeners(100),this.remoteParticipants=new Map,this.sidToIdentity=new Map,this.options=Object.assign(Object.assign({},HV),e),this.log=lu((r=this.options.loggerName)!==null&&r!==void 0?r:xs.Room),this.transcriptionReceivedTimes=new Map,this.options.audioCaptureDefaults=Object.assign(Object.assign({},PO),e==null?void 0:e.audioCaptureDefaults),this.options.videoCaptureDefaults=Object.assign(Object.assign({},DO),e==null?void 0:e.videoCaptureDefaults),this.options.publishDefaults=Object.assign(Object.assign({},BV),e==null?void 0:e.publishDefaults),this.maybeCreateEngine(),this.disconnectLock=new to,this.localParticipant=new hb("","",this.engine,this.options,this.rpcHandlers),this.options.videoCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("videoinput",Sc(this.options.videoCaptureDefaults.deviceId)),this.options.audioCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("audioinput",Sc(this.options.audioCaptureDefaults.deviceId)),!((a=this.options.audioOutput)===null||a===void 0)&&a.deviceId&&this.switchActiveDevice("audiooutput",Sc(this.options.audioOutput.deviceId)).catch(l=>this.log.warn("Could not set audio output: ".concat(l.message),this.logContext)),this.options.e2ee&&this.setupE2EE(),ao()){const l=new AbortController;(s=navigator.mediaDevices)===null||s===void 0||s.addEventListener("devicechange",this.handleDeviceChange,{signal:l.signal}),Gh.cleanupRegistry&&Gh.cleanupRegistry.register(this,()=>{l.abort()})}}registerTextStreamHandler(e,n){if(this.textStreamHandlers.has(e))throw new TypeError('A text stream handler for topic "'.concat(e,'" has already been set.'));this.textStreamHandlers.set(e,n)}unregisterTextStreamHandler(e){this.textStreamHandlers.delete(e)}registerByteStreamHandler(e,n){if(this.byteStreamHandlers.has(e))throw new TypeError('A byte stream handler for topic "'.concat(e,'" has already been set.'));this.byteStreamHandlers.set(e,n)}unregisterByteStreamHandler(e){this.byteStreamHandlers.delete(e)}registerRpcMethod(e,n){if(this.rpcHandlers.has(e))throw Error("RPC handler already registered for method ".concat(e,", unregisterRpcMethod before trying to register again"));this.rpcHandlers.set(e,n)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}handleIncomingRpcRequest(e,n,r,a,s,l){return Q(this,void 0,void 0,function*(){if(yield this.engine.publishRpcAck(e,n),l!==1){yield this.engine.publishRpcResponse(e,n,null,ei.builtIn("UNSUPPORTED_VERSION"));return}const c=this.rpcHandlers.get(r);if(!c){yield this.engine.publishRpcResponse(e,n,null,ei.builtIn("UNSUPPORTED_METHOD"));return}let h=null,p=null;try{const v=yield c({requestId:n,callerIdentity:e,payload:a,responseTimeout:s});AT(v)>AO?(h=ei.builtIn("RESPONSE_PAYLOAD_TOO_LARGE"),console.warn("RPC Response payload too large for ".concat(r))):p=v}catch(v){v instanceof ei?h=v:(console.warn("Uncaught error returned by RPC handler for ".concat(r,". Returning APPLICATION_ERROR instead."),v),h=ei.builtIn("APPLICATION_ERROR"))}yield this.engine.publishRpcResponse(e,n,p,h)})}setE2EEEnabled(e){return Q(this,void 0,void 0,function*(){if(this.e2eeManager)yield Promise.all([this.localParticipant.setE2EEEnabled(e)]),this.localParticipant.identity!==""&&this.e2eeManager.setParticipantCryptorEnabled(e,this.localParticipant.identity);else throw Error("e2ee not configured, please set e2ee settings within the room options")})}setupE2EE(){var e;this.options.e2ee&&("e2eeManager"in this.options.e2ee?this.e2eeManager=this.options.e2ee.e2eeManager:this.e2eeManager=new RV(this.options.e2ee),this.e2eeManager.on(gc.ParticipantEncryptionStatusChanged,(n,r)=>{SV(r)&&(this.isE2EEEnabled=n),this.emit(Ee.ParticipantEncryptionStatusChanged,n,r)}),this.e2eeManager.on(gc.EncryptionError,n=>this.emit(Ee.EncryptionError,n)),(e=this.e2eeManager)===null||e===void 0||e.setup(this))}get logContext(){var e;return{room:this.name,roomID:(e=this.roomInfo)===null||e===void 0?void 0:e.sid,participant:this.localParticipant.identity,pID:this.localParticipant.sid}}get isRecording(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.activeRecording)!==null&&n!==void 0?n:!1}getSid(){return Q(this,void 0,void 0,function*(){return this.state===Fn.Disconnected?"":this.roomInfo&&this.roomInfo.sid!==""?this.roomInfo.sid:new Promise((e,n)=>{const r=a=>{a.sid!==""&&(this.engine.off(et.RoomUpdate,r),e(a.sid))};this.engine.on(et.RoomUpdate,r),this.once(Ee.Disconnected,()=>{this.engine.off(et.RoomUpdate,r),n("Room disconnected before room server id was available")})})})}get name(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.name)!==null&&n!==void 0?n:""}get metadata(){var e;return(e=this.roomInfo)===null||e===void 0?void 0:e.metadata}get numParticipants(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.numParticipants)!==null&&n!==void 0?n:0}get numPublishers(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.numPublishers)!==null&&n!==void 0?n:0}maybeCreateEngine(){this.engine&&!this.engine.isClosed||(this.engine=new az(this.options),this.engine.on(et.ParticipantUpdate,this.handleParticipantUpdates).on(et.RoomUpdate,this.handleRoomUpdate).on(et.SpeakersChanged,this.handleSpeakersChanged).on(et.StreamStateChanged,this.handleStreamStateUpdate).on(et.ConnectionQualityUpdate,this.handleConnectionQualityUpdate).on(et.SubscriptionError,this.handleSubscriptionError).on(et.SubscriptionPermissionUpdate,this.handleSubscriptionPermissionUpdate).on(et.MediaTrackAdded,(e,n,r)=>{this.onTrackAdded(e,n,r)}).on(et.Disconnected,e=>{this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,e)}).on(et.ActiveSpeakersUpdate,this.handleActiveSpeakersUpdate).on(et.DataPacketReceived,this.handleDataPacket).on(et.Resuming,()=>{this.clearConnectionReconcile(),this.isResuming=!0,this.log.info("Resuming signal connection",this.logContext),this.setAndEmitConnectionState(Fn.SignalReconnecting)&&this.emit(Ee.SignalReconnecting)}).on(et.Resumed,()=>{this.registerConnectionReconcile(),this.isResuming=!1,this.log.info("Resumed signal connection",this.logContext),this.updateSubscriptions(),this.emitBufferedEvents(),this.setAndEmitConnectionState(Fn.Connected)&&this.emit(Ee.Reconnected)}).on(et.SignalResumed,()=>{this.bufferedEvents=[],(this.state===Fn.Reconnecting||this.isResuming)&&this.sendSyncState()}).on(et.Restarting,this.handleRestarting).on(et.SignalRestarted,this.handleSignalRestarted).on(et.Offline,()=>{this.setAndEmitConnectionState(Fn.Reconnecting)&&this.emit(Ee.Reconnecting)}).on(et.DCBufferStatusChanged,(e,n)=>{this.emit(Ee.DCBufferStatusChanged,e,n)}).on(et.LocalTrackSubscribed,e=>{const n=this.localParticipant.getTrackPublications().find(r=>{let{trackSid:a}=r;return a===e});if(!n){this.log.warn("could not find local track subscription for subscribed event",this.logContext);return}this.localParticipant.emit(Ie.LocalTrackSubscribed,n),this.emitWhenConnected(Ee.LocalTrackSubscribed,n,this.localParticipant)}),this.localParticipant&&this.localParticipant.setupEngine(this.engine),this.e2eeManager&&this.e2eeManager.setupEngine(this.engine))}static getLocalDevices(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return zi.getInstance().getDevices(e,n)}prepareConnection(e,n){return Q(this,void 0,void 0,function*(){if(this.state===Fn.Disconnected){this.log.debug("prepareConnection to ".concat(e),this.logContext);try{if(hT(new URL(e))&&n){this.regionUrlProvider=new UT(e,n);const r=yield this.regionUrlProvider.getNextBestRegionUrl();r&&this.state===Fn.Disconnected&&(this.regionUrl=r,yield fetch(vT(r),{method:"HEAD"}),this.log.debug("prepared connection to ".concat(r),this.logContext))}else yield fetch(vT(e),{method:"HEAD"})}catch(r){this.log.warn("could not prepare connection",Object.assign(Object.assign({},this.logContext),{error:r}))}}})}getParticipantByIdentity(e){return this.localParticipant.identity===e?this.localParticipant:this.remoteParticipants.get(e)}clearConnectionFutures(){this.connectFuture=void 0}simulateScenario(e,n){return Q(this,void 0,void 0,function*(){let r=()=>{},a;switch(e){case"signal-reconnect":yield this.engine.client.handleOnClose("simulate disconnect");break;case"speaker":a=new cl({scenario:{case:"speakerUpdate",value:3}});break;case"node-failure":a=new cl({scenario:{case:"nodeFailure",value:!0}});break;case"server-leave":a=new cl({scenario:{case:"serverLeave",value:!0}});break;case"migration":a=new cl({scenario:{case:"migration",value:!0}});break;case"resume-reconnect":this.engine.failNext(),yield this.engine.client.handleOnClose("simulate resume-disconnect");break;case"disconnect-signal-on-resume":r=()=>Q(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),a=new cl({scenario:{case:"disconnectSignalOnResume",value:!0}});break;case"disconnect-signal-on-resume-no-messages":r=()=>Q(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),a=new cl({scenario:{case:"disconnectSignalOnResumeNoMessages",value:!0}});break;case"full-reconnect":this.engine.fullReconnectOnNext=!0,yield this.engine.client.handleOnClose("simulate full-reconnect");break;case"force-tcp":case"force-tls":a=new cl({scenario:{case:"switchCandidateProtocol",value:e==="force-tls"?2:1}}),r=()=>Q(this,void 0,void 0,function*(){const s=this.engine.client.onLeave;s&&s(new W0({reason:ks.CLIENT_INITIATED,action:Fh.RECONNECT}))});break;case"subscriber-bandwidth":if(n===void 0||typeof n!="number")throw new Error("subscriber-bandwidth requires a number as argument");a=new cl({scenario:{case:"subscriberBandwidth",value:Zd(n)}});break;case"leave-full-reconnect":a=new cl({scenario:{case:"leaveRequestFullReconnect",value:!0}})}a&&(yield this.engine.client.sendSimulateScenario(a),yield r())})}get canPlaybackAudio(){return this.audioEnabled}get canPlaybackVideo(){return!this.isVideoPlaybackBlocked}getActiveDevice(e){return this.localParticipant.activeDeviceMap.get(e)}switchActiveDevice(e,n){return Q(this,arguments,void 0,function(r,a){var s=this;let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return function*(){var c,h,p,v,b,k,T,E;let R=!0,M=!1;const A=l?{exact:a}:a;if(r==="audioinput"){M=s.localParticipant.audioTrackPublications.size===0;const U=(c=s.getActiveDevice(r))!==null&&c!==void 0?c:s.options.audioCaptureDefaults.deviceId;s.options.audioCaptureDefaults.deviceId=A;const V=Array.from(s.localParticipant.audioTrackPublications.values()).filter(j=>j.source===De.Source.Microphone);try{R=(yield Promise.all(V.map(j=>{var I;return(I=j.audioTrack)===null||I===void 0?void 0:I.setDeviceId(A)}))).every(j=>j===!0)}catch(j){throw s.options.audioCaptureDefaults.deviceId=U,j}}else if(r==="videoinput"){M=s.localParticipant.videoTrackPublications.size===0;const U=(h=s.getActiveDevice(r))!==null&&h!==void 0?h:s.options.videoCaptureDefaults.deviceId;s.options.videoCaptureDefaults.deviceId=A;const V=Array.from(s.localParticipant.videoTrackPublications.values()).filter(j=>j.source===De.Source.Camera);try{R=(yield Promise.all(V.map(j=>{var I;return(I=j.videoTrack)===null||I===void 0?void 0:I.setDeviceId(A)}))).every(j=>j===!0)}catch(j){throw s.options.videoCaptureDefaults.deviceId=U,j}}else if(r==="audiooutput"){if(!fT()&&!s.options.webAudioMix||s.options.webAudioMix&&s.audioContext&&!("setSinkId"in s.audioContext))throw new Error("cannot switch audio output, setSinkId not supported");s.options.webAudioMix&&(a=(p=yield zi.getInstance().normalizeDeviceId("audiooutput",a))!==null&&p!==void 0?p:""),(v=(E=s.options).audioOutput)!==null&&v!==void 0||(E.audioOutput={});const U=(b=s.getActiveDevice(r))!==null&&b!==void 0?b:s.options.audioOutput.deviceId;s.options.audioOutput.deviceId=a;try{s.options.webAudioMix&&((k=s.audioContext)===null||k===void 0||k.setSinkId(a)),yield Promise.all(Array.from(s.remoteParticipants.values()).map(V=>V.setAudioOutput({deviceId:a})))}catch(V){throw s.options.audioOutput.deviceId=U,V}}return(M||r==="audiooutput")&&(s.localParticipant.activeDeviceMap.set(r,r==="audiooutput"&&((T=s.options.audioOutput)===null||T===void 0?void 0:T.deviceId)||a),s.emit(Ee.ActiveDeviceChanged,r,a)),R}()})}setupLocalParticipantEvents(){this.localParticipant.on(Ie.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).on(Ie.ParticipantNameChanged,this.onLocalParticipantNameChanged).on(Ie.AttributesChanged,this.onLocalAttributesChanged).on(Ie.TrackMuted,this.onLocalTrackMuted).on(Ie.TrackUnmuted,this.onLocalTrackUnmuted).on(Ie.LocalTrackPublished,this.onLocalTrackPublished).on(Ie.LocalTrackUnpublished,this.onLocalTrackUnpublished).on(Ie.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).on(Ie.MediaDevicesError,this.onMediaDevicesError).on(Ie.AudioStreamAcquired,this.startAudio).on(Ie.ChatMessage,this.onLocalChatMessageSent).on(Ie.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged)}recreateEngine(){var e;(e=this.engine)===null||e===void 0||e.close(),this.engine=void 0,this.isResuming=!1,this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.bufferedEvents=[],this.maybeCreateEngine()}onTrackAdded(e,n,r){if(this.state===Fn.Connecting||this.state===Fn.Reconnecting){const v=()=>{this.onTrackAdded(e,n,r),b()},b=()=>{this.off(Ee.Reconnected,v),this.off(Ee.Connected,v),this.off(Ee.Disconnected,b)};this.once(Ee.Reconnected,v),this.once(Ee.Connected,v),this.once(Ee.Disconnected,b);return}if(this.state===Fn.Disconnected){this.log.warn("skipping incoming track after Room disconnected",this.logContext);return}if(e.readyState==="ended"){this.log.info("skipping incoming track as it already ended",this.logContext);return}const a=oV(n.id),s=a[0];let l=a[1],c=e.id;if(l&&l.startsWith("TR")&&(c=l),s===this.localParticipant.sid){this.log.warn("tried to create RemoteParticipant for local participant",this.logContext);return}const h=Array.from(this.remoteParticipants.values()).find(v=>v.sid===s);if(!h){this.log.error("Tried to add a track for a participant, that's not present. Sid: ".concat(s),this.logContext);return}let p;this.options.adaptiveStream&&(typeof this.options.adaptiveStream=="object"?p=this.options.adaptiveStream:p={}),h.addSubscribedMediaTrack(e,c,n,r,p)}handleDisconnect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,n=arguments.length>1?arguments[1]:void 0;var r;if(this.clearConnectionReconcile(),this.isResuming=!1,this.bufferedEvents=[],this.transcriptionReceivedTimes.clear(),this.state!==Fn.Disconnected){this.regionUrl=void 0;try{this.remoteParticipants.forEach(a=>{a.trackPublications.forEach(s=>{a.unpublishTrack(s.trackSid)})}),this.localParticipant.trackPublications.forEach(a=>{var s,l,c;a.track&&this.localParticipant.unpublishTrack(a.track,e),e?((s=a.track)===null||s===void 0||s.detach(),(l=a.track)===null||l===void 0||l.stop()):(c=a.track)===null||c===void 0||c.stopMonitor()}),this.localParticipant.off(Ie.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).off(Ie.ParticipantNameChanged,this.onLocalParticipantNameChanged).off(Ie.AttributesChanged,this.onLocalAttributesChanged).off(Ie.TrackMuted,this.onLocalTrackMuted).off(Ie.TrackUnmuted,this.onLocalTrackUnmuted).off(Ie.LocalTrackPublished,this.onLocalTrackPublished).off(Ie.LocalTrackUnpublished,this.onLocalTrackUnpublished).off(Ie.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).off(Ie.MediaDevicesError,this.onMediaDevicesError).off(Ie.AudioStreamAcquired,this.startAudio).off(Ie.ChatMessage,this.onLocalChatMessageSent).off(Ie.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged),this.localParticipant.trackPublications.clear(),this.localParticipant.videoTrackPublications.clear(),this.localParticipant.audioTrackPublications.clear(),this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.activeSpeakers=[],this.audioContext&&typeof this.options.webAudioMix=="boolean"&&(this.audioContext.close(),this.audioContext=void 0),ao()&&(window.removeEventListener("beforeunload",this.onPageLeave),window.removeEventListener("pagehide",this.onPageLeave),window.removeEventListener("freeze",this.onPageLeave),(r=navigator.mediaDevices)===null||r===void 0||r.removeEventListener("devicechange",this.handleDeviceChange))}finally{this.setAndEmitConnectionState(Fn.Disconnected),this.emit(Ee.Disconnected,n)}}}handleParticipantDisconnected(e,n){var r;this.remoteParticipants.delete(e),n&&(n.trackPublications.forEach(a=>{n.unpublishTrack(a.trackSid,!0)}),this.emit(Ee.ParticipantDisconnected,n),(r=this.localParticipant)===null||r===void 0||r.handleParticipantDisconnected(n.identity))}handleStreamHeader(e,n){return Q(this,void 0,void 0,function*(){var r;if(e.contentHeader.case==="byteHeader"){const a=this.byteStreamHandlers.get(e.topic);if(!a){this.log.debug("ignoring incoming byte stream due to no handler for topic",e.topic);return}let s;const l={id:e.streamId,name:(r=e.contentHeader.value.name)!==null&&r!==void 0?r:"unknown",mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:ab(e.timestamp),attributes:e.attributes},c=new ReadableStream({start:h=>{s=h,this.byteStreamControllers.set(e.streamId,{info:l,controller:s,startTime:Date.now()})}});a(new uz(l,c,ab(e.totalLength)),{identity:n})}else if(e.contentHeader.case==="textHeader"){const a=this.textStreamHandlers.get(e.topic);if(!a){this.log.debug("ignoring incoming text stream due to no handler for topic",e.topic);return}let s;const l={id:e.streamId,mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:Number(e.timestamp),attributes:e.attributes},c=new ReadableStream({start:h=>{s=h,this.textStreamControllers.set(e.streamId,{info:l,controller:s,startTime:Date.now()})}});a(new cz(l,c,ab(e.totalLength)),{identity:n})}})}handleStreamChunk(e){const n=this.byteStreamControllers.get(e.streamId);n&&e.content.length>0&&n.controller.enqueue(e);const r=this.textStreamControllers.get(e.streamId);r&&e.content.length>0&&r.controller.enqueue(e)}handleStreamTrailer(e){const n=this.textStreamControllers.get(e.streamId);n&&(n.info.attributes=Object.assign(Object.assign({},n.info.attributes),e.attributes),n.controller.close(),this.textStreamControllers.delete(e.streamId));const r=this.byteStreamControllers.get(e.streamId);r&&(r.info.attributes=Object.assign(Object.assign({},r.info.attributes),e.attributes),r.controller.close(),this.byteStreamControllers.delete(e.streamId))}acquireAudioContext(){return Q(this,void 0,void 0,function*(){var e,n;if(typeof this.options.webAudioMix!="boolean"&&this.options.webAudioMix.audioContext?this.audioContext=this.options.webAudioMix.audioContext:(!this.audioContext||this.audioContext.state==="closed")&&(this.audioContext=(e=vO())!==null&&e!==void 0?e:void 0),this.options.webAudioMix&&this.remoteParticipants.forEach(a=>a.setAudioContext(this.audioContext)),this.localParticipant.setAudioContext(this.audioContext),this.audioContext&&this.audioContext.state==="suspended")try{yield Promise.race([this.audioContext.resume(),io(200)])}catch(a){this.log.warn("Could not resume audio context",Object.assign(Object.assign({},this.logContext),{error:a}))}const r=((n=this.audioContext)===null||n===void 0?void 0:n.state)==="running";r!==this.canPlaybackAudio&&(this.audioEnabled=r,this.emit(Ee.AudioPlaybackStatusChanged,r))})}createParticipant(e,n){var r;let a;return n?a=pb.fromParticipantInfo(this.engine.client,n,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}):a=new pb(this.engine.client,"",e,void 0,void 0,void 0,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}),this.options.webAudioMix&&a.setAudioContext(this.audioContext),!((r=this.options.audioOutput)===null||r===void 0)&&r.deviceId&&a.setAudioOutput(this.options.audioOutput).catch(s=>this.log.warn("Could not set audio output: ".concat(s.message),this.logContext)),a}getOrCreateParticipant(e,n){if(this.remoteParticipants.has(e)){const a=this.remoteParticipants.get(e);return n&&a.updateInfo(n)&&this.sidToIdentity.set(n.sid,n.identity),a}const r=this.createParticipant(e,n);return this.remoteParticipants.set(e,r),this.sidToIdentity.set(n.sid,n.identity),this.emitWhenConnected(Ee.ParticipantConnected,r),r.on(Ie.TrackPublished,a=>{this.emitWhenConnected(Ee.TrackPublished,a,r)}).on(Ie.TrackSubscribed,(a,s)=>{a.kind===De.Kind.Audio?(a.on(Qe.AudioPlaybackStarted,this.handleAudioPlaybackStarted),a.on(Qe.AudioPlaybackFailed,this.handleAudioPlaybackFailed)):a.kind===De.Kind.Video&&(a.on(Qe.VideoPlaybackFailed,this.handleVideoPlaybackFailed),a.on(Qe.VideoPlaybackStarted,this.handleVideoPlaybackStarted)),this.emit(Ee.TrackSubscribed,a,s,r)}).on(Ie.TrackUnpublished,a=>{this.emit(Ee.TrackUnpublished,a,r)}).on(Ie.TrackUnsubscribed,(a,s)=>{this.emit(Ee.TrackUnsubscribed,a,s,r)}).on(Ie.TrackMuted,a=>{this.emitWhenConnected(Ee.TrackMuted,a,r)}).on(Ie.TrackUnmuted,a=>{this.emitWhenConnected(Ee.TrackUnmuted,a,r)}).on(Ie.ParticipantMetadataChanged,a=>{this.emitWhenConnected(Ee.ParticipantMetadataChanged,a,r)}).on(Ie.ParticipantNameChanged,a=>{this.emitWhenConnected(Ee.ParticipantNameChanged,a,r)}).on(Ie.AttributesChanged,a=>{this.emitWhenConnected(Ee.ParticipantAttributesChanged,a,r)}).on(Ie.ConnectionQualityChanged,a=>{this.emitWhenConnected(Ee.ConnectionQualityChanged,a,r)}).on(Ie.ParticipantPermissionsChanged,a=>{this.emitWhenConnected(Ee.ParticipantPermissionsChanged,a,r)}).on(Ie.TrackSubscriptionStatusChanged,(a,s)=>{this.emitWhenConnected(Ee.TrackSubscriptionStatusChanged,a,s,r)}).on(Ie.TrackSubscriptionFailed,(a,s)=>{this.emit(Ee.TrackSubscriptionFailed,a,r,s)}).on(Ie.TrackSubscriptionPermissionChanged,(a,s)=>{this.emitWhenConnected(Ee.TrackSubscriptionPermissionChanged,a,s,r)}),n&&r.updateInfo(n),r}sendSyncState(){const e=Array.from(this.remoteParticipants.values()).reduce((r,a)=>(r.push(...a.getTrackPublications()),r),[]),n=this.localParticipant.getTrackPublications();this.engine.sendSyncState(e,n)}updateSubscriptions(){for(const e of this.remoteParticipants.values())for(const n of e.videoTrackPublications.values())n.isSubscribed&&bV(n)&&n.emitTrackUpdate()}getRemoteParticipantBySid(e){const n=this.sidToIdentity.get(e);if(n)return this.remoteParticipants.get(n)}registerConnectionReconcile(){this.clearConnectionReconcile();let e=0;this.connectionReconcileInterval=Qi.setInterval(()=>{!this.engine||this.engine.isClosed||!this.engine.verifyTransport()?(e++,this.log.warn("detected connection state mismatch",Object.assign(Object.assign({},this.logContext),{numFailures:e,engine:this.engine?{closed:this.engine.isClosed,transportsConnected:this.engine.verifyTransport()}:void 0})),e>=3&&(this.recreateEngine(),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,ks.STATE_MISMATCH))):e=0},bz)}clearConnectionReconcile(){this.connectionReconcileInterval&&Qi.clearInterval(this.connectionReconcileInterval)}setAndEmitConnectionState(e){return e===this.state?!1:(this.state=e,this.emit(Ee.ConnectionStateChanged,this.state),!0)}emitBufferedEvents(){this.bufferedEvents.forEach(e=>{let[n,r]=e;this.emit(n,...r)}),this.bufferedEvents=[]}emitWhenConnected(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];if(this.state===Fn.Reconnecting||this.isResuming||!this.engine||this.engine.pendingReconnect)this.bufferedEvents.push([e,r]);else if(this.state===Fn.Connected)return this.emit(e,...r);return!1}simulateParticipants(e){return Q(this,void 0,void 0,function*(){var n,r;const a=Object.assign({audio:!0,video:!0,useRealTracks:!1},e.publish),s=Object.assign({count:9,audio:!1,video:!0,aspectRatios:[1.66,1.7,1.3]},e.participants);if(this.handleDisconnect(),this.roomInfo=new A1({sid:"RM_SIMULATED",name:"simulated-room",emptyTimeout:0,maxParticipants:0,creationTime:Ur.parse(new Date().getTime()),metadata:"",numParticipants:1,numPublishers:1,turnPassword:"",enabledCodecs:[],activeRecording:!1}),this.localParticipant.updateInfo(new wg({identity:"simulated-local",name:"local-name"})),this.setupLocalParticipantEvents(),this.emit(Ee.SignalConnected),this.emit(Ee.Connected),this.setAndEmitConnectionState(Fn.Connected),a.video){const l=new VT(De.Kind.Video,new Uh({source:gi.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:Cs.AUDIO,name:"video-dummy"}),new db(a.useRealTracks?(yield window.navigator.mediaDevices.getUserMedia({video:!0})).getVideoTracks()[0]:fO(160*((n=s.aspectRatios[0])!==null&&n!==void 0?n:1),160,!0,!0),void 0,!1,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(l),this.localParticipant.emit(Ie.LocalTrackPublished,l)}if(a.audio){const l=new VT(De.Kind.Audio,new Uh({source:gi.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:Cs.AUDIO}),new ub(a.useRealTracks?(yield navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0]:gT(),void 0,!1,this.audioContext,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(l),this.localParticipant.emit(Ie.LocalTrackPublished,l)}for(let l=0;l<s.count-1;l+=1){let c=new wg({sid:Math.floor(Math.random()*1e4).toString(),identity:"simulated-".concat(l),state:O1.ACTIVE,tracks:[],joinedAt:Ur.parse(Date.now())});const h=this.getOrCreateParticipant(c.identity,c);if(s.video){const p=fO(160*((r=s.aspectRatios[l%s.aspectRatios.length])!==null&&r!==void 0?r:1),160,!1,!0),v=new Uh({source:gi.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:Cs.AUDIO});h.addSubscribedMediaTrack(p,v.sid,new MediaStream([p]),new RTCRtpReceiver),c.tracks=[...c.tracks,v]}if(s.audio){const p=gT(),v=new Uh({source:gi.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:Cs.AUDIO});h.addSubscribedMediaTrack(p,v.sid,new MediaStream([p]),new RTCRtpReceiver),c.tracks=[...c.tracks,v]}h.updateInfo(c)}})}emit(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];if(e!==Ee.ActiveSpeakersChanged&&e!==Ee.TranscriptionReceived){const s=YO(r).filter(l=>l!==void 0);this.log.debug("room event ".concat(e),Object.assign(Object.assign({},this.logContext),{event:e,args:s}))}return super.emit(e,...r)}}Gh.cleanupRegistry=typeof FinalizationRegistry<"u"&&new FinalizationRegistry(t=>{t()});function YO(t){return t.map(e=>{if(e)return Array.isArray(e)?YO(e):typeof e=="object"?"logContext"in e?e.logContext:void 0:e})}var Rs;(function(t){t[t.IDLE=0]="IDLE",t[t.RUNNING=1]="RUNNING",t[t.SKIPPED=2]="SKIPPED",t[t.SUCCESS=3]="SUCCESS",t[t.FAILED=4]="FAILED"})(Rs||(Rs={}));class xc extends dl.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.status=Rs.IDLE,this.logs=[],this.options={},this.url=e,this.token=n,this.name=this.constructor.name,this.room=new Gh(r.roomOptions),this.connectOptions=r.connectOptions,this.options=r}run(e){return Q(this,void 0,void 0,function*(){if(this.status!==Rs.IDLE)throw Error("check is running already");this.setStatus(Rs.RUNNING);try{yield this.perform()}catch(n){n instanceof Error&&(this.options.errorsAsWarnings?this.appendWarning(n.message):this.appendError(n.message))}return yield this.disconnect(),yield new Promise(n=>setTimeout(n,500)),this.status!==Rs.SKIPPED&&this.setStatus(this.isSuccess()?Rs.SUCCESS:Rs.FAILED),e&&e(),this.getInfo()})}isSuccess(){return!this.logs.some(e=>e.level==="error")}connect(e){return Q(this,void 0,void 0,function*(){return this.room.state===Fn.Connected?this.room:(e||(e=this.url),yield this.room.connect(e,this.token,this.connectOptions),this.room)})}disconnect(){return Q(this,void 0,void 0,function*(){this.room&&this.room.state!==Fn.Disconnected&&(yield this.room.disconnect(),yield new Promise(e=>setTimeout(e,500)))})}skip(){this.setStatus(Rs.SKIPPED)}switchProtocol(e){return Q(this,void 0,void 0,function*(){let n=!1,r=!1;if(this.room.on(Ee.Reconnecting,()=>{n=!0}),this.room.once(Ee.Reconnected,()=>{r=!0}),this.room.simulateScenario("force-".concat(e)),yield new Promise(s=>setTimeout(s,1e3)),!n)return;const a=Date.now()+1e4;for(;Date.now()<a;){if(r)return;yield io(100)}throw new Error("Could not reconnect using ".concat(e," protocol after 10 seconds"))})}appendMessage(e){this.logs.push({level:"info",message:e}),this.emit("update",this.getInfo())}appendWarning(e){this.logs.push({level:"warning",message:e}),this.emit("update",this.getInfo())}appendError(e){this.logs.push({level:"error",message:e}),this.emit("update",this.getInfo())}setStatus(e){this.status=e,this.emit("update",this.getInfo())}get engine(){var e;return(e=this.room)===null||e===void 0?void 0:e.engine}getInfo(){return{logs:this.logs,name:this.name,status:this.status,description:this.description}}}class Sz extends xc{get description(){return"Cloud regions"}perform(){return Q(this,void 0,void 0,function*(){const e=new UT(this.url,this.token);if(!e.isCloud()){this.skip();return}const n=[],r=new Set;for(let s=0;s<3;s++){const l=yield e.getNextBestRegionUrl();if(!l)break;if(r.has(l))continue;r.add(l);const c=yield this.checkCloudRegion(l);this.appendMessage("".concat(c.region," RTT: ").concat(c.rtt,"ms, duration: ").concat(c.duration,"ms")),n.push(c)}n.sort((s,l)=>(s.duration-l.duration)*.5+(s.rtt-l.rtt)*.5);const a=n[0];this.bestStats=a,this.appendMessage("best Cloud region: ".concat(a.region))})}getInfo(){const e=super.getInfo();return e.data=this.bestStats,e}checkCloudRegion(e){return Q(this,void 0,void 0,function*(){var n,r;yield this.connect(e),this.options.protocol==="tcp"&&(yield this.switchProtocol("tcp"));const a=(n=this.room.serverInfo)===null||n===void 0?void 0:n.region;if(!a)throw new Error("Region not found");const s=yield this.room.localParticipant.streamText({topic:"test"}),l=1e3,h=1e6/l,p="A".repeat(l),v=Date.now();for(let E=0;E<h;E++)yield s.write(p);yield s.close();const b=Date.now(),k=yield(r=this.room.engine.pcManager)===null||r===void 0?void 0:r.publisher.getStats(),T={region:a,rtt:1e4,duration:b-v};return k==null||k.forEach(E=>{E.type==="candidate-pair"&&E.nominated&&(T.rtt=E.currentRoundTripTime*1e3)}),yield this.disconnect(),T})}}const zT=1e4;class Cz extends xc{get description(){return"Connection via UDP vs TCP"}perform(){return Q(this,void 0,void 0,function*(){const e=yield this.checkConnectionProtocol("udp"),n=yield this.checkConnectionProtocol("tcp");this.bestStats=e,e.qualityLimitationDurations.bandwidth-n.qualityLimitationDurations.bandwidth>.5||(e.packetsLost-n.packetsLost)/e.packetsSent>.01?(this.appendMessage("best connection quality via tcp"),this.bestStats=n):this.appendMessage("best connection quality via udp");const r=this.bestStats;this.appendMessage("upstream bitrate: ".concat((r.bitrateTotal/r.count/1e3/1e3).toFixed(2)," mbps")),this.appendMessage("RTT: ".concat((r.rttTotal/r.count*1e3).toFixed(2)," ms")),this.appendMessage("jitter: ".concat((r.jitterTotal/r.count*1e3).toFixed(2)," ms")),r.packetsLost>0&&this.appendWarning("packets lost: ".concat((r.packetsLost/r.packetsSent*100).toFixed(2),"%")),r.qualityLimitationDurations.bandwidth>1&&this.appendWarning("bandwidth limited ".concat((r.qualityLimitationDurations.bandwidth/(zT/1e3)*100).toFixed(2),"%")),r.qualityLimitationDurations.cpu>0&&this.appendWarning("cpu limited ".concat((r.qualityLimitationDurations.cpu/(zT/1e3)*100).toFixed(2),"%"))})}getInfo(){const e=super.getInfo();return e.data=this.bestStats,e}checkConnectionProtocol(e){return Q(this,void 0,void 0,function*(){yield this.connect(),e==="tcp"?yield this.switchProtocol("tcp"):yield this.switchProtocol("udp");const n=document.createElement("canvas");n.width=1280,n.height=720;const r=n.getContext("2d");if(!r)throw new Error("Could not get canvas context");let a=0;const s=()=>{a=(a+1)%360,r.fillStyle="hsl(".concat(a,", 100%, 50%)"),r.fillRect(0,0,n.width,n.height),requestAnimationFrame(s)};s();const c=n.captureStream(30).getVideoTracks()[0],p=(yield this.room.localParticipant.publishTrack(c,{simulcast:!1,degradationPreference:"maintain-resolution",videoEncoding:{maxBitrate:2e6}})).track,v={protocol:e,packetsLost:0,packetsSent:0,qualityLimitationDurations:{},rttTotal:0,jitterTotal:0,bitrateTotal:0,count:0},b=setInterval(()=>Q(this,void 0,void 0,function*(){const k=yield p.getRTCStatsReport();k==null||k.forEach(T=>{T.type==="outbound-rtp"?(v.packetsSent=T.packetsSent,v.qualityLimitationDurations=T.qualityLimitationDurations,v.bitrateTotal+=T.targetBitrate,v.count++):T.type==="remote-inbound-rtp"&&(v.packetsLost=T.packetsLost,v.rttTotal+=T.roundTripTime,v.jitterTotal+=T.jitter)})}),1e3);return yield new Promise(k=>setTimeout(k,zT)),clearInterval(b),c.stop(),n.remove(),yield this.disconnect(),v})}}class kz extends xc{get description(){return"Can publish audio"}perform(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.connect(),r=yield gz();if(yield gO(r,1e3))throw new Error("unable to detect audio from microphone");this.appendMessage("detected audio from microphone"),n.localParticipant.publishTrack(r),yield new Promise(c=>setTimeout(c,3e3));const s=yield(e=r.sender)===null||e===void 0?void 0:e.getStats();if(!s)throw new Error("Could not get RTCStats");let l=0;if(s.forEach(c=>{c.type==="outbound-rtp"&&(c.kind==="audio"||!c.kind&&c.mediaType==="audio")&&(l=c.packetsSent)}),l===0)throw new Error("Could not determine packets are sent");this.appendMessage("published ".concat(l," audio packets"))})}}class Tz extends xc{get description(){return"Can publish video"}perform(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.connect(),r=yield mz();yield this.checkForVideo(r.mediaStreamTrack),n.localParticipant.publishTrack(r),yield new Promise(l=>setTimeout(l,5e3));const a=yield(e=r.sender)===null||e===void 0?void 0:e.getStats();if(!a)throw new Error("Could not get RTCStats");let s=0;if(a.forEach(l=>{l.type==="outbound-rtp"&&(l.kind==="video"||!l.kind&&l.mediaType==="video")&&(s+=l.packetsSent)}),s===0)throw new Error("Could not determine packets are sent");this.appendMessage("published ".concat(s," video packets"))})}checkForVideo(e){return Q(this,void 0,void 0,function*(){const n=new MediaStream;n.addTrack(e.clone());const r=document.createElement("video");r.srcObject=n,r.muted=!0,yield new Promise(a=>{r.onplay=()=>{setTimeout(()=>{var s,l,c,h;const p=document.createElement("canvas"),v=e.getSettings(),b=(l=(s=v.width)!==null&&s!==void 0?s:r.videoWidth)!==null&&l!==void 0?l:1280,k=(h=(c=v.height)!==null&&c!==void 0?c:r.videoHeight)!==null&&h!==void 0?h:720;p.width=b,p.height=k;const T=p.getContext("2d");T.drawImage(r,0,0);const R=T.getImageData(0,0,p.width,p.height).data;let M=!0;for(let A=0;A<R.length;A+=4)if(R[A]!==0||R[A+1]!==0||R[A+2]!==0){M=!1;break}M?this.appendError("camera appears to be producing only black frames"):this.appendMessage("received video frames"),a()},1e3)},r.play()}),r.remove()})}}class xz extends xc{get description(){return"Resuming connection after interruption"}perform(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.connect();let r=!1,a=!1,s;const l=new Promise(p=>{setTimeout(p,5e3),s=p}),c=()=>{r=!0};n.on(Ee.SignalReconnecting,c).on(Ee.Reconnecting,c).on(Ee.Reconnected,()=>{a=!0,s(!0)}),(e=n.engine.client.ws)===null||e===void 0||e.close();const h=n.engine.client.onClose;if(h&&h(""),yield l,r){if(!a||n.state!==Fn.Connected)throw this.appendWarning("reconnection is only possible in Redis-based configurations"),new Error("Not able to reconnect")}else throw new Error("Did not attempt to reconnect")})}}class wz extends xc{get description(){return"Can connect via TURN"}perform(){return Q(this,void 0,void 0,function*(){var e,n;const r=new TT,a=yield r.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15e3});let s=!1,l=!1,c=!1;for(let h of a.iceServers)for(let p of h.urls)p.startsWith("turn:")?(l=!0,c=!0):p.startsWith("turns:")&&(l=!0,c=!0,s=!0),p.startsWith("stun:")&&(c=!0);c?l&&!s&&this.appendWarning("TURN is configured server side, but TURN/TLS is unavailable."):this.appendWarning("No STUN servers configured on server side."),yield r.close(),!((n=(e=this.connectOptions)===null||e===void 0?void 0:e.rtcConfig)===null||n===void 0)&&n.iceServers||l?yield this.room.connect(this.url,this.token,{rtcConfig:{iceTransportPolicy:"relay"}}):(this.appendWarning("No TURN servers configured."),this.skip(),yield new Promise(h=>setTimeout(h,0)))})}}class _z extends xc{get description(){return"Establishing WebRTC connection"}perform(){return Q(this,void 0,void 0,function*(){let e=!1,n=!1;this.room.on(Ee.SignalConnected,()=>{const r=this.room.engine.client.onTrickle;this.room.engine.client.onTrickle=(a,s)=>{if(a.candidate){const l=new RTCIceCandidate(a);let c="".concat(l.protocol," ").concat(l.address,":").concat(l.port," ").concat(l.type);l.address&&(Ez(l.address)?c+=" (private)":l.protocol==="tcp"&&l.tcpType==="passive"?(e=!0,c+=" (passive)"):l.protocol==="udp"&&(n=!0)),this.appendMessage(c)}r&&r(a,s)},this.room.engine.pcManager&&(this.room.engine.pcManager.subscriber.onIceCandidateError=a=>{a instanceof RTCPeerConnectionIceErrorEvent&&this.appendWarning("error with ICE candidate: ".concat(a.errorCode," ").concat(a.errorText," ").concat(a.url))})});try{yield this.connect(),Nn.info("now the room is connected")}catch(r){throw this.appendWarning("ports need to be open on firewall in order to connect."),r}e||this.appendWarning("Server is not configured for ICE/TCP"),n||this.appendWarning("No public IPv4 UDP candidates were found. Your server is likely not configured correctly")})}}function Ez(t){const e=t.split(".");if(e.length===4){if(e[0]==="10")return!0;if(e[0]==="192"&&e[1]==="168")return!0;if(e[0]==="172"){const n=parseInt(e[1],10);if(n>=16&&n<=31)return!0}}return!1}class Rz extends xc{get description(){return"Connecting to signal connection via WebSocket"}perform(){return Q(this,void 0,void 0,function*(){var e,n,r;(this.url.startsWith("ws:")||this.url.startsWith("http:"))&&this.appendWarning("Server is insecure, clients may block connections to it");let a=new TT;const s=yield a.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15e3});this.appendMessage("Connected to server, version ".concat(s.serverVersion,".")),((e=s.serverInfo)===null||e===void 0?void 0:e.edition)===YD.Cloud&&(!((n=s.serverInfo)===null||n===void 0)&&n.region)&&this.appendMessage("LiveKit Cloud: ".concat((r=s.serverInfo)===null||r===void 0?void 0:r.region)),yield a.close()})}}class Ase extends dl.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.options={},this.checkResults=new Map,this.url=e,this.token=n,this.options=r}getNextCheckId(){const e=this.checkResults.size;return this.checkResults.set(e,{logs:[],status:Rs.IDLE,name:"",description:""}),e}updateCheck(e,n){this.checkResults.set(e,n),this.emit("checkUpdate",e,n)}isSuccess(){return Array.from(this.checkResults.values()).every(e=>e.status!==Rs.FAILED)}getResults(){return Array.from(this.checkResults.values())}createAndRunCheck(e){return Q(this,void 0,void 0,function*(){const n=this.getNextCheckId(),r=new e(this.url,this.token,this.options),a=l=>{this.updateCheck(n,l)};r.on("update",a);const s=yield r.run();return r.off("update",a),s})}checkWebsocket(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(Rz)})}checkWebRTC(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(_z)})}checkTURN(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(wz)})}checkReconnect(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(xz)})}checkPublishAudio(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(kz)})}checkPublishVideo(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(Tz)})}checkConnectionProtocol(){return Q(this,void 0,void 0,function*(){const e=yield this.createAndRunCheck(Cz);if(e.data&&"protocol"in e.data){const n=e.data;this.options.protocol=n.protocol}return e})}checkCloudRegion(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(Sz)})}}var mb=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Pz(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var BT={exports:{}},Dz=BT.exports,KO;function Az(){return KO||(KO=1,function(t){(function(e,n){t.exports?t.exports=n():e.log=n()})(Dz,function(){var e=function(){},n="undefined",r=typeof window!==n&&typeof window.navigator!==n&&/Trident\/|MSIE /.test(window.navigator.userAgent),a=["trace","debug","info","warn","error"],s={},l=null;function c(R,M){var A=R[M];if(typeof A.bind=="function")return A.bind(R);try{return Function.prototype.bind.call(A,R)}catch{return function(){return Function.prototype.apply.apply(A,[R,arguments])}}}function h(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function p(R){return R==="debug"&&(R="log"),typeof console===n?!1:R==="trace"&&r?h:console[R]!==void 0?c(console,R):console.log!==void 0?c(console,"log"):e}function v(){for(var R=this.getLevel(),M=0;M<a.length;M++){var A=a[M];this[A]=M<R?e:this.methodFactory(A,R,this.name)}if(this.log=this.debug,typeof console===n&&R<this.levels.SILENT)return"No console available for logging"}function b(R){return function(){typeof console!==n&&(v.call(this),this[R].apply(this,arguments))}}function k(R,M,A){return p(R)||b.apply(this,arguments)}function T(R,M){var A=this,U,V,j,I="loglevel";typeof R=="string"?I+=":"+R:typeof R=="symbol"&&(I=void 0);function N(oe){var J=(a[oe]||"silent").toUpperCase();if(!(typeof window===n||!I)){try{window.localStorage[I]=J;return}catch{}try{window.document.cookie=encodeURIComponent(I)+"="+J+";"}catch{}}}function ne(){var oe;if(!(typeof window===n||!I)){try{oe=window.localStorage[I]}catch{}if(typeof oe===n)try{var J=window.document.cookie,xe=encodeURIComponent(I),ke=J.indexOf(xe+"=");ke!==-1&&(oe=/^([^;]+)/.exec(J.slice(ke+xe.length+1))[1])}catch{}return A.levels[oe]===void 0&&(oe=void 0),oe}}function X(){if(!(typeof window===n||!I)){try{window.localStorage.removeItem(I)}catch{}try{window.document.cookie=encodeURIComponent(I)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function se(oe){var J=oe;if(typeof J=="string"&&A.levels[J.toUpperCase()]!==void 0&&(J=A.levels[J.toUpperCase()]),typeof J=="number"&&J>=0&&J<=A.levels.SILENT)return J;throw new TypeError("log.setLevel() called with invalid level: "+oe)}A.name=R,A.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},A.methodFactory=M||k,A.getLevel=function(){return j??V??U},A.setLevel=function(oe,J){return j=se(oe),J!==!1&&N(j),v.call(A)},A.setDefaultLevel=function(oe){V=se(oe),ne()||A.setLevel(oe,!1)},A.resetLevel=function(){j=null,X(),v.call(A)},A.enableAll=function(oe){A.setLevel(A.levels.TRACE,oe)},A.disableAll=function(oe){A.setLevel(A.levels.SILENT,oe)},A.rebuild=function(){if(l!==A&&(U=se(l.getLevel())),v.call(A),l===A)for(var oe in s)s[oe].rebuild()},U=se(l?l.getLevel():"WARN");var $=ne();$!=null&&(j=se($)),v.call(A)}l=new T,l.getLogger=function(R){if(typeof R!="symbol"&&typeof R!="string"||R==="")throw new TypeError("You must supply a name when creating a logger.");var M=s[R];return M||(M=s[R]=new T(R,l.methodFactory)),M};var E=typeof window!==n?window.log:void 0;return l.noConflict=function(){return typeof window!==n&&window.log===l&&(window.log=E),l},l.getLoggers=function(){return s},l.default=l,l})}(BT)),BT.exports}var Oz=Az();const Mz=Pz(Oz);var HT=function(t,e){return HT=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[a]=r[a])},HT(t,e)};function fu(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");HT(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function Lz(t,e,n,r){function a(s){return s instanceof n?s:new n(function(l){l(s)})}return new(n||(n=Promise))(function(s,l){function c(v){try{p(r.next(v))}catch(b){l(b)}}function h(v){try{p(r.throw(v))}catch(b){l(b)}}function p(v){v.done?s(v.value):a(v.value).then(c,h)}p((r=r.apply(t,[])).next())})}function ZO(t,e){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},r,a,s,l=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return l.next=c(0),l.throw=c(1),l.return=c(2),typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function c(p){return function(v){return h([p,v])}}function h(p){if(r)throw new TypeError("Generator is already executing.");for(;l&&(l=0,p[0]&&(n=0)),n;)try{if(r=1,a&&(s=p[0]&2?a.return:p[0]?a.throw||((s=a.return)&&s.call(a),0):a.next)&&!(s=s.call(a,p[1])).done)return s;switch(a=0,s&&(p=[p[0]&2,s.value]),p[0]){case 0:case 1:s=p;break;case 4:return n.label++,{value:p[1],done:!1};case 5:n.label++,a=p[1],p=[0];continue;case 7:p=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(p[0]===6||p[0]===2)){n=0;continue}if(p[0]===3&&(!s||p[1]>s[0]&&p[1]<s[3])){n.label=p[1];break}if(p[0]===6&&n.label<s[1]){n.label=s[1],s=p;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(p);break}s[2]&&n.ops.pop(),n.trys.pop();continue}p=e.call(t,n)}catch(v){p=[6,v],a=0}finally{r=s=0}if(p[0]&5)throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}}function Yh(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function gb(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var r=n.call(t),a,s=[],l;try{for(;(e===void 0||e-- >0)&&!(a=r.next()).done;)s.push(a.value)}catch(c){l={error:c}}finally{try{a&&!a.done&&(n=r.return)&&n.call(r)}finally{if(l)throw l.error}}return s}function vb(t,e,n){if(arguments.length===2)for(var r=0,a=e.length,s;r<a;r++)(s||!(r in e))&&(s||(s=Array.prototype.slice.call(e,0,r)),s[r]=e[r]);return t.concat(s||Array.prototype.slice.call(e))}function Kh(t){return this instanceof Kh?(this.v=t,this):new Kh(t)}function Nz(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),a,s=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),c("next"),c("throw"),c("return",l),a[Symbol.asyncIterator]=function(){return this},a;function l(T){return function(E){return Promise.resolve(E).then(T,b)}}function c(T,E){r[T]&&(a[T]=function(R){return new Promise(function(M,A){s.push([T,R,M,A])>1||h(T,R)})},E&&(a[T]=E(a[T])))}function h(T,E){try{p(r[T](E))}catch(R){k(s[0][3],R)}}function p(T){T.value instanceof Kh?Promise.resolve(T.value.v).then(v,b):k(s[0][2],T)}function v(T){h("next",T)}function b(T){h("throw",T)}function k(T,E){T(E),s.shift(),s.length&&h(s[0][0],s[0][1])}}function Iz(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof Yh=="function"?Yh(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=t[s]&&function(l){return new Promise(function(c,h){l=t[s](l),a(c,h,l.done,l.value)})}}function a(s,l,c,h){Promise.resolve(h).then(function(p){s({value:p,done:c})},l)}}function wi(t){return typeof t=="function"}function $T(t){var e=function(r){Error.call(r),r.stack=new Error().stack},n=t(e);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var qT=$T(function(t){return function(e){t(this),this.message=e?e.length+` errors occurred during unsubscription:
278
+ `},ET}var wO;function FV(){if(wO)return _s;wO=1;var t=IV(),e=UV(),n=_T();return _s.grammar=n,_s.write=e,_s.parse=t.parse,_s.parseParams=t.parseParams,_s.parseFmtpConfig=t.parseFmtpConfig,_s.parsePayloads=t.parsePayloads,_s.parseRemoteCandidates=t.parseRemoteCandidates,_s.parseImageAttributes=t.parseImageAttributes,_s.parseSimulcastStreamList=t.parseSimulcastStreamList,_s}var kc=FV();function RT(t,e,n){var r,a,s;e===void 0&&(e=50),n===void 0&&(n={});var l=(r=n.isImmediate)!=null&&r,c=(a=n.callback)!=null&&a,h=n.maxWait,p=Date.now(),v=[];function b(){if(h!==void 0){var T=Date.now()-p;if(T+e>=h)return h-T}return e}var k=function(){var T=[].slice.call(arguments),E=this;return new Promise(function(R,M){var A=l&&s===void 0;if(s!==void 0&&clearTimeout(s),s=setTimeout(function(){if(s=void 0,p=Date.now(),!l){var V=t.apply(E,T);c&&c(V),v.forEach(function(j){return(0,j.resolve)(V)}),v=[]}},b()),A){var U=t.apply(E,T);return c&&c(U),R(U)}v.push({resolve:R,reject:M})})};return k.cancel=function(T){s!==void 0&&clearTimeout(s),v.forEach(function(E){return(0,E.reject)(T)}),v=[]},k}const jV=.7,VV=20,qh={NegotiationStarted:"negotiationStarted",NegotiationComplete:"negotiationComplete",RTPVideoPayloadTypes:"rtpVideoPayloadTypes"};class _O extends dl.EventEmitter{get pc(){return this._pc||(this._pc=this.createPC()),this._pc}constructor(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};var r;super(),this.log=Nn,this.ddExtID=0,this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate=!1,this.trackBitrates=[],this.remoteStereoMids=[],this.remoteNackMids=[],this.negotiate=RT(a=>Q(this,void 0,void 0,function*(){this.emit(qh.NegotiationStarted);try{yield this.createAndSendOffer()}catch(s){if(a)a(s);else throw s}}),VV),this.close=()=>{this._pc&&(this._pc.close(),this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.ondatachannel=null,this._pc.onnegotiationneeded=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ondatachannel=null,this._pc.ontrack=null,this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc=null)},this.log=lu((r=n.loggerName)!==null&&r!==void 0?r:xs.PCTransport),this.loggerOptions=n,this.config=e,this._pc=this.createPC()}createPC(){const e=new RTCPeerConnection(this.config);return e.onicecandidate=n=>{var r;n.candidate&&((r=this.onIceCandidate)===null||r===void 0||r.call(this,n.candidate))},e.onicecandidateerror=n=>{var r;(r=this.onIceCandidateError)===null||r===void 0||r.call(this,n)},e.oniceconnectionstatechange=()=>{var n;(n=this.onIceConnectionStateChange)===null||n===void 0||n.call(this,e.iceConnectionState)},e.onsignalingstatechange=()=>{var n;(n=this.onSignalingStatechange)===null||n===void 0||n.call(this,e.signalingState)},e.onconnectionstatechange=()=>{var n;(n=this.onConnectionStateChange)===null||n===void 0||n.call(this,e.connectionState)},e.ondatachannel=n=>{var r;(r=this.onDataChannel)===null||r===void 0||r.call(this,n)},e.ontrack=n=>{var r;(r=this.onTrack)===null||r===void 0||r.call(this,n)},e}get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions).loggerContextCb)===null||n===void 0?void 0:n.call(e))}get isICEConnected(){return this._pc!==null&&(this.pc.iceConnectionState==="connected"||this.pc.iceConnectionState==="completed")}addIceCandidate(e){return Q(this,void 0,void 0,function*(){if(this.pc.remoteDescription&&!this.restartingIce)return this.pc.addIceCandidate(e);this.pendingCandidates.push(e)})}setRemoteDescription(e){return Q(this,void 0,void 0,function*(){var n;let r;if(e.type==="offer"){let{stereoMids:a,nackMids:s}=zV(e);this.remoteStereoMids=a,this.remoteNackMids=s}else if(e.type==="answer"){const a=kc.parse((n=e.sdp)!==null&&n!==void 0?n:"");a.media.forEach(s=>{s.type==="audio"&&this.trackBitrates.some(l=>{if(!l.transceiver||s.mid!=l.transceiver.mid)return!1;let c=0;if(s.rtp.some(p=>p.codec.toUpperCase()===l.codec.toUpperCase()?(c=p.payload,!0):!1),c===0)return!0;let h=!1;for(const p of s.fmtp)if(p.payload===c){p.config=p.config.split(";").filter(v=>!v.includes("maxaveragebitrate")).join(";"),l.maxbr>0&&(p.config+=";maxaveragebitrate=".concat(l.maxbr*1e3)),h=!0;break}return h||l.maxbr>0&&s.fmtp.push({payload:c,config:"maxaveragebitrate=".concat(l.maxbr*1e3)}),!0})}),r=kc.write(a)}yield this.setMungedSDP(e,r,!0),this.pendingCandidates.forEach(a=>{this.pc.addIceCandidate(a)}),this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate?(this.renegotiate=!1,yield this.createAndSendOffer()):e.type==="answer"&&(this.emit(qh.NegotiationComplete),e.sdp&&kc.parse(e.sdp).media.forEach(s=>{s.type==="video"&&this.emit(qh.RTPVideoPayloadTypes,s.rtp)}))})}createAndSendOffer(e){return Q(this,void 0,void 0,function*(){var n;if(this.onOffer===void 0)return;if(e!=null&&e.iceRestart&&(this.log.debug("restarting ICE",this.logContext),this.restartingIce=!0),this._pc&&this._pc.signalingState==="have-local-offer"){const s=this._pc.remoteDescription;if(e!=null&&e.iceRestart&&s)yield this._pc.setRemoteDescription(s);else{this.renegotiate=!0;return}}else if(!this._pc||this._pc.signalingState==="closed"){this.log.warn("could not createOffer with closed peer connection",this.logContext);return}this.log.debug("starting to negotiate",this.logContext);const r=yield this.pc.createOffer(e);this.log.debug("original offer",Object.assign({sdp:r.sdp},this.logContext));const a=kc.parse((n=r.sdp)!==null&&n!==void 0?n:"");a.media.forEach(s=>{RO(s),s.type==="audio"?EO(s,[],[]):s.type==="video"&&this.trackBitrates.some(l=>{if(!s.msid||!l.cid||!s.msid.includes(l.cid))return!1;let c=0;if(s.rtp.some(p=>p.codec.toUpperCase()===l.codec.toUpperCase()?(c=p.payload,!0):!1),c===0||(Dg(l.codec)&&this.ensureVideoDDExtensionForSVC(s,a),l.codec!=="av1"))return!0;const h=Math.round(l.maxbr*jV);for(const p of s.fmtp)if(p.payload===c){p.config.includes("x-google-start-bitrate")||(p.config+=";x-google-start-bitrate=".concat(h));break}return!0})}),yield this.setMungedSDP(r,kc.write(a)),this.onOffer(r)})}createAndSetAnswer(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.pc.createAnswer(),r=kc.parse((e=n.sdp)!==null&&e!==void 0?e:"");return r.media.forEach(a=>{RO(a),a.type==="audio"&&EO(a,this.remoteStereoMids,this.remoteNackMids)}),yield this.setMungedSDP(n,kc.write(r)),n})}createDataChannel(e,n){return this.pc.createDataChannel(e,n)}addTransceiver(e,n){return this.pc.addTransceiver(e,n)}addTrack(e){if(!this._pc)throw new xi("PC closed, cannot add track");return this._pc.addTrack(e)}setTrackCodecBitrate(e){this.trackBitrates.push(e)}setConfiguration(e){var n;if(!this._pc)throw new xi("PC closed, cannot configure");return(n=this._pc)===null||n===void 0?void 0:n.setConfiguration(e)}canRemoveTrack(){var e;return!!(!((e=this._pc)===null||e===void 0)&&e.removeTrack)}removeTrack(e){var n;return(n=this._pc)===null||n===void 0?void 0:n.removeTrack(e)}getConnectionState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.connectionState)!==null&&n!==void 0?n:"closed"}getICEConnectionState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.iceConnectionState)!==null&&n!==void 0?n:"closed"}getSignallingState(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.signalingState)!==null&&n!==void 0?n:"closed"}getTransceivers(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.getTransceivers())!==null&&n!==void 0?n:[]}getSenders(){var e,n;return(n=(e=this._pc)===null||e===void 0?void 0:e.getSenders())!==null&&n!==void 0?n:[]}getLocalDescription(){var e;return(e=this._pc)===null||e===void 0?void 0:e.localDescription}getRemoteDescription(){var e;return(e=this.pc)===null||e===void 0?void 0:e.remoteDescription}getStats(){return this.pc.getStats()}getConnectedAddress(){return Q(this,void 0,void 0,function*(){var e;if(!this._pc)return;let n="";const r=new Map,a=new Map;if((yield this._pc.getStats()).forEach(c=>{switch(c.type){case"transport":n=c.selectedCandidatePairId;break;case"candidate-pair":n===""&&c.selected&&(n=c.id),r.set(c.id,c);break;case"remote-candidate":a.set(c.id,"".concat(c.address,":").concat(c.port));break}}),n==="")return;const l=(e=r.get(n))===null||e===void 0?void 0:e.remoteCandidateId;if(l!==void 0)return a.get(l)})}setMungedSDP(e,n,r){return Q(this,void 0,void 0,function*(){if(n){const a=e.sdp;e.sdp=n;try{this.log.debug("setting munged ".concat(r?"remote":"local"," description"),this.logContext),r?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e);return}catch(s){this.log.warn("not able to set ".concat(e.type,", falling back to unmodified sdp"),Object.assign(Object.assign({},this.logContext),{error:s,sdp:n})),e.sdp=a}}try{r?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e)}catch(a){let s="unknown error";a instanceof Error?s=a.message:typeof a=="string"&&(s=a);const l={error:s,sdp:e.sdp};throw!r&&this.pc.remoteDescription&&(l.remoteSdp=this.pc.remoteDescription),this.log.error("unable to set ".concat(e.type),Object.assign(Object.assign({},this.logContext),{fields:l})),new rT(s)}})}ensureVideoDDExtensionForSVC(e,n){var r,a;if(!((r=e.ext)===null||r===void 0?void 0:r.some(l=>l.uri===aO))){if(this.ddExtID===0){let l=0;n.media.forEach(c=>{var h;c.type==="video"&&((h=c.ext)===null||h===void 0||h.forEach(p=>{p.value>l&&(l=p.value)}))}),this.ddExtID=l+1}(a=e.ext)===null||a===void 0||a.push({value:this.ddExtID,uri:aO})}}}function EO(t,e,n){let r=0;t.rtp.some(a=>a.codec==="opus"?(r=a.payload,!0):!1),r>0&&(t.rtcpFb||(t.rtcpFb=[]),n.includes(t.mid)&&!t.rtcpFb.some(a=>a.payload===r&&a.type==="nack")&&t.rtcpFb.push({payload:r,type:"nack"}),e.includes(t.mid)&&t.fmtp.some(a=>a.payload===r?(a.config.includes("stereo=1")||(a.config+=";stereo=1"),!0):!1))}function zV(t){var e;const n=[],r=[],a=kc.parse((e=t.sdp)!==null&&e!==void 0?e:"");let s=0;return a.media.forEach(l=>{var c;l.type==="audio"&&(l.rtp.some(h=>h.codec==="opus"?(s=h.payload,!0):!1),!((c=l.rtcpFb)===null||c===void 0)&&c.some(h=>h.payload===s&&h.type==="nack")&&r.push(l.mid),l.fmtp.some(h=>h.payload===s?(h.config.includes("sprop-stereo=1")&&n.push(l.mid),!0):!1))}),{stereoMids:n,nackMids:r}}function RO(t){if(t.connection){const e=t.connection.ip.indexOf(":")>=0;(t.connection.version===4&&e||t.connection.version===6&&!e)&&(t.connection.ip="0.0.0.0",t.connection.version=4)}}const PT="vp8",BV={audioPreset:sT.music,dtx:!0,red:!0,forceStereo:!1,simulcast:!0,screenShareEncoding:uT.h1080fps15.encoding,stopMicTrackOnMute:!1,videoCodec:PT,backupCodec:!0},PO={deviceId:{ideal:"default"},autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,voiceIsolation:!0},DO={deviceId:{ideal:"default"},resolution:Pg.h720.resolution},HV={adaptiveStream:!1,dynacast:!1,stopLocalTrackOnUnpublish:!0,reconnectPolicy:new M8,disconnectOnPageLeave:!0,webAudioMix:!1},DT={autoSubscribe:!0,maxRetries:1,peerConnectionTimeout:15e3,websocketTimeout:15e3};var Jr;(function(t){t[t.NEW=0]="NEW",t[t.CONNECTING=1]="CONNECTING",t[t.CONNECTED=2]="CONNECTED",t[t.FAILED=3]="FAILED",t[t.CLOSING=4]="CLOSING",t[t.CLOSED=5]="CLOSED"})(Jr||(Jr={}));class $V{get needsPublisher(){return this.isPublisherConnectionRequired}get needsSubscriber(){return this.isSubscriberConnectionRequired}get currentState(){return this.state}constructor(e,n,r){var a;this.peerConnectionTimeout=DT.peerConnectionTimeout,this.log=Nn,this.updateState=()=>{var s;const l=this.state,c=this.requiredTransports.map(h=>h.getConnectionState());c.every(h=>h==="connected")?this.state=Jr.CONNECTED:c.some(h=>h==="failed")?this.state=Jr.FAILED:c.some(h=>h==="connecting")?this.state=Jr.CONNECTING:c.every(h=>h==="closed")?this.state=Jr.CLOSED:c.some(h=>h==="closed")?this.state=Jr.CLOSING:c.every(h=>h==="new")&&(this.state=Jr.NEW),l!==this.state&&(this.log.debug("pc state change: from ".concat(Jr[l]," to ").concat(Jr[this.state]),this.logContext),(s=this.onStateChange)===null||s===void 0||s.call(this,this.state,this.publisher.getConnectionState(),this.subscriber.getConnectionState()))},this.log=lu((a=r.loggerName)!==null&&a!==void 0?a:xs.PCManager),this.loggerOptions=r,this.isPublisherConnectionRequired=!n,this.isSubscriberConnectionRequired=n,this.publisher=new _O(e,r),this.subscriber=new _O(e,r),this.publisher.onConnectionStateChange=this.updateState,this.subscriber.onConnectionStateChange=this.updateState,this.publisher.onIceConnectionStateChange=this.updateState,this.subscriber.onIceConnectionStateChange=this.updateState,this.publisher.onSignalingStatechange=this.updateState,this.subscriber.onSignalingStatechange=this.updateState,this.publisher.onIceCandidate=s=>{var l;(l=this.onIceCandidate)===null||l===void 0||l.call(this,s,Ts.PUBLISHER)},this.subscriber.onIceCandidate=s=>{var l;(l=this.onIceCandidate)===null||l===void 0||l.call(this,s,Ts.SUBSCRIBER)},this.subscriber.onDataChannel=s=>{var l;(l=this.onDataChannel)===null||l===void 0||l.call(this,s)},this.subscriber.onTrack=s=>{var l;(l=this.onTrack)===null||l===void 0||l.call(this,s)},this.publisher.onOffer=s=>{var l;(l=this.onPublisherOffer)===null||l===void 0||l.call(this,s)},this.state=Jr.NEW,this.connectionLock=new to,this.remoteOfferLock=new to}get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions).loggerContextCb)===null||n===void 0?void 0:n.call(e))}requirePublisher(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isPublisherConnectionRequired=e,this.updateState()}requireSubscriber(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.isSubscriberConnectionRequired=e,this.updateState()}createAndSendPublisherOffer(e){return this.publisher.createAndSendOffer(e)}setPublisherAnswer(e){return this.publisher.setRemoteDescription(e)}removeTrack(e){return this.publisher.removeTrack(e)}close(){return Q(this,void 0,void 0,function*(){if(this.publisher&&this.publisher.getSignallingState()!=="closed"){const e=this.publisher;for(const n of e.getSenders())try{e.canRemoveTrack()&&e.removeTrack(n)}catch(r){this.log.warn("could not removeTrack",Object.assign(Object.assign({},this.logContext),{error:r}))}}yield Promise.all([this.publisher.close(),this.subscriber.close()]),this.updateState()})}triggerIceRestart(){return Q(this,void 0,void 0,function*(){this.subscriber.restartingIce=!0,this.needsPublisher&&(yield this.createAndSendPublisherOffer({iceRestart:!0}))})}addIceCandidate(e,n){return Q(this,void 0,void 0,function*(){n===Ts.PUBLISHER?yield this.publisher.addIceCandidate(e):yield this.subscriber.addIceCandidate(e)})}createSubscriberAnswerFromOffer(e){return Q(this,void 0,void 0,function*(){this.log.debug("received server offer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type,sdp:e.sdp,signalingState:this.subscriber.getSignallingState().toString()}));const n=yield this.remoteOfferLock.lock();try{return yield this.subscriber.setRemoteDescription(e),yield this.subscriber.createAndSetAnswer()}finally{n()}})}updateConfiguration(e,n){this.publisher.setConfiguration(e),this.subscriber.setConfiguration(e),n&&this.triggerIceRestart()}ensurePCTransportConnection(e,n){return Q(this,void 0,void 0,function*(){var r;const a=yield this.connectionLock.lock();try{this.isPublisherConnectionRequired&&this.publisher.getConnectionState()!=="connected"&&this.publisher.getConnectionState()!=="connecting"&&(this.log.debug("negotiation required, start negotiating",this.logContext),this.publisher.negotiate()),yield Promise.all((r=this.requiredTransports)===null||r===void 0?void 0:r.map(s=>this.ensureTransportConnected(s,e,n)))}finally{a()}})}negotiate(e){return Q(this,void 0,void 0,function*(){return new Promise((n,r)=>Q(this,void 0,void 0,function*(){const a=setTimeout(()=>{r("negotiation timed out")},this.peerConnectionTimeout),s=()=>{clearTimeout(a),r("negotiation aborted")};e.signal.addEventListener("abort",s),this.publisher.once(qh.NegotiationStarted,()=>{e.signal.aborted||this.publisher.once(qh.NegotiationComplete,()=>{clearTimeout(a),n()})}),yield this.publisher.negotiate(l=>{clearTimeout(a),r(l)})}))})}addPublisherTransceiver(e,n){return this.publisher.addTransceiver(e,n)}addPublisherTrack(e){return this.publisher.addTrack(e)}createPublisherDataChannel(e,n){return this.publisher.createDataChannel(e,n)}getConnectedAddress(e){return e===Ts.PUBLISHER?this.publisher.getConnectedAddress():e===Ts.SUBSCRIBER?this.publisher.getConnectedAddress():this.requiredTransports[0].getConnectedAddress()}get requiredTransports(){const e=[];return this.isPublisherConnectionRequired&&e.push(this.publisher),this.isSubscriberConnectionRequired&&e.push(this.subscriber),e}ensureTransportConnected(e,n){return Q(this,arguments,void 0,function(r,a){var s=this;let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.peerConnectionTimeout;return function*(){if(r.getConnectionState()!=="connected")return new Promise((h,p)=>Q(s,void 0,void 0,function*(){const v=()=>{this.log.warn("abort transport connection",this.logContext),Qi.clearTimeout(b),p(new br("room connection has been cancelled",Un.Cancelled))};a!=null&&a.signal.aborted&&v(),a==null||a.signal.addEventListener("abort",v);const b=Qi.setTimeout(()=>{a==null||a.signal.removeEventListener("abort",v),p(new br("could not establish pc connection",Un.InternalError))},l);for(;this.state!==Jr.CONNECTED;)if(yield io(50),a!=null&&a.signal.aborted){p(new br("room connection has been cancelled",Un.Cancelled));return}Qi.clearTimeout(b),a==null||a.signal.removeEventListener("abort",v),h()}))}()})}}class ei extends Error{constructor(e,n,r){super(n),this.code=e,this.message=OO(n,ei.MAX_MESSAGE_BYTES),this.data=r?OO(r,ei.MAX_DATA_BYTES):void 0}static fromProto(e){return new ei(e.code,e.message,e.data)}toProto(){return new WD({code:this.code,message:this.message,data:this.data})}static builtIn(e,n){return new ei(ei.ErrorCode[e],ei.ErrorMessage[e],n)}}ei.MAX_MESSAGE_BYTES=256,ei.MAX_DATA_BYTES=15360,ei.ErrorCode={APPLICATION_ERROR:1500,CONNECTION_TIMEOUT:1501,RESPONSE_TIMEOUT:1502,RECIPIENT_DISCONNECTED:1503,RESPONSE_PAYLOAD_TOO_LARGE:1504,SEND_FAILED:1505,UNSUPPORTED_METHOD:1400,RECIPIENT_NOT_FOUND:1401,REQUEST_PAYLOAD_TOO_LARGE:1402,UNSUPPORTED_SERVER:1403,UNSUPPORTED_VERSION:1404},ei.ErrorMessage={APPLICATION_ERROR:"Application error in method handler",CONNECTION_TIMEOUT:"Connection timeout",RESPONSE_TIMEOUT:"Response timeout",RECIPIENT_DISCONNECTED:"Recipient disconnected",RESPONSE_PAYLOAD_TOO_LARGE:"Response payload too large",SEND_FAILED:"Failed to send",UNSUPPORTED_METHOD:"Method not supported at destination",RECIPIENT_NOT_FOUND:"Recipient not found",REQUEST_PAYLOAD_TOO_LARGE:"Request payload too large",UNSUPPORTED_SERVER:"RPC not supported by server",UNSUPPORTED_VERSION:"Unsupported RPC version"};const AO=15360;function AT(t){return new TextEncoder().encode(t).length}function OO(t,e){if(AT(t)<=e)return t;let n=0,r=t.length;const a=new TextEncoder;for(;n<r;){const s=Math.floor((n+r+1)/2);a.encode(t.slice(0,s)).length<=e?n=s:r=s-1}return t.slice(0,n)}const OT=2e3;function lb(t,e){if(!e)return 0;let n,r;return"bytesReceived"in t?(n=t.bytesReceived,r=e.bytesReceived):"bytesSent"in t&&(n=t.bytesSent,r=e.bytesSent),n===void 0||r===void 0||t.timestamp===void 0||e.timestamp===void 0?0:(n-r)*8*1e3/(t.timestamp-e.timestamp)}const qV=1e3;class MO extends De{get sender(){return this._sender}set sender(e){this._sender=e}get constraints(){return this._constraints}constructor(e,n,r){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,s=arguments.length>4?arguments[4]:void 0;super(e,n,s),this.manuallyStopped=!1,this._isUpstreamPaused=!1,this.handleTrackMuteEvent=()=>this.debouncedTrackMuteHandler().catch(()=>this.log.debug("track mute bounce got cancelled by an unmute event",this.logContext)),this.debouncedTrackMuteHandler=RT(()=>Q(this,void 0,void 0,function*(){yield this.pauseUpstream()}),5e3),this.handleTrackUnmuteEvent=()=>Q(this,void 0,void 0,function*(){this.debouncedTrackMuteHandler.cancel("unmute"),yield this.resumeUpstream()}),this.handleEnded=()=>{this.isInBackground&&(this.reacquireTrack=!0),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),this.emit(Qe.Ended,this)},this.reacquireTrack=!1,this.providedByUser=a,this.muteLock=new to,this.pauseUpstreamLock=new to,this.processorLock=new to,this.restartLock=new to,this.setMediaStreamTrack(e,!0),this._constraints=e.getConstraints(),r&&(this._constraints=r)}get id(){return this._mediaStreamTrack.id}get dimensions(){if(this.kind!==De.Kind.Video)return;const{width:e,height:n}=this._mediaStreamTrack.getSettings();if(e&&n)return{width:e,height:n}}get isUpstreamPaused(){return this._isUpstreamPaused}get isUserProvided(){return this.providedByUser}get mediaStreamTrack(){var e,n;return(n=(e=this.processor)===null||e===void 0?void 0:e.processedTrack)!==null&&n!==void 0?n:this._mediaStreamTrack}get isLocal(){return!0}getSourceTrackSettings(){return this._mediaStreamTrack.getSettings()}setMediaStreamTrack(e,n){return Q(this,void 0,void 0,function*(){var r;if(e===this._mediaStreamTrack&&!n)return;this._mediaStreamTrack&&(this.attachedElements.forEach(s=>{zh(this._mediaStreamTrack,s)}),this.debouncedTrackMuteHandler.cancel("new-track"),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent)),this.mediaStream=new MediaStream([e]),e&&(e.addEventListener("ended",this.handleEnded),e.addEventListener("mute",this.handleTrackMuteEvent),e.addEventListener("unmute",this.handleTrackUnmuteEvent),this._constraints=e.getConstraints());let a;if(this.processor&&e){const s=yield this.processorLock.lock();try{if(this.log.debug("restarting processor",this.logContext),this.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");this.processorElement&&(Vh(e,this.processorElement),this.processorElement.muted=!0),yield this.processor.restart({track:e,kind:this.kind,element:this.processorElement}),a=this.processor.processedTrack}finally{s()}}this.sender&&((r=this.sender.transport)===null||r===void 0?void 0:r.state)!=="closed"&&(yield this.sender.replaceTrack(a??e)),!this.providedByUser&&this._mediaStreamTrack!==e&&this._mediaStreamTrack.stop(),this._mediaStreamTrack=e,e&&(this._mediaStreamTrack.enabled=!this.isMuted,yield this.resumeUpstream(),this.attachedElements.forEach(s=>{Vh(a??e,s)}))})}waitForDimensions(){return Q(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:qV;return function*(){var r;if(e.kind===De.Kind.Audio)throw new Error("cannot get dimensions for audio tracks");((r=ws())===null||r===void 0?void 0:r.os)==="iOS"&&(yield io(10));const a=Date.now();for(;Date.now()-a<n;){const s=e.dimensions;if(s)return s;yield io(50)}throw new uu("unable to get track dimensions after timeout")}()})}setDeviceId(e){return Q(this,void 0,void 0,function*(){return this._constraints.deviceId===e&&this._mediaStreamTrack.getSettings().deviceId===Sc(e)||(this._constraints.deviceId=e,this.isMuted)?!0:(yield this.restartTrack(),Sc(e)===this._mediaStreamTrack.getSettings().deviceId)})}getDeviceId(){return Q(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){if(e.source===De.Source.ScreenShare)return;const{deviceId:r,groupId:a}=e._mediaStreamTrack.getSettings(),s=e.kind===De.Kind.Audio?"audioinput":"videoinput";return n?zi.getInstance().normalizeDeviceId(s,r,a):r}()})}mute(){return Q(this,void 0,void 0,function*(){return this.setTrackMuted(!0),this})}unmute(){return Q(this,void 0,void 0,function*(){return this.setTrackMuted(!1),this})}replaceTrack(e,n){return Q(this,void 0,void 0,function*(){if(!this.sender)throw new uu("unable to replace an unpublished track");let r,a;return typeof n=="boolean"?r=n:n!==void 0&&(r=n.userProvidedTrack,a=n.stopProcessor),this.providedByUser=r??!0,this.log.debug("replace MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(e),a&&this.processor&&(yield this.stopProcessor()),this})}restart(e){return Q(this,void 0,void 0,function*(){this.manuallyStopped=!1;const n=yield this.restartLock.lock();try{e||(e=this._constraints);const{deviceId:r,facingMode:a}=e,s=L8(e,["deviceId","facingMode"]);this.log.debug("restarting track with constraints",Object.assign(Object.assign({},this.logContext),{constraints:e}));const l={audio:!1,video:!1};this.kind===De.Kind.Video?l.video=r||a?{deviceId:r,facingMode:a}:!0:l.audio=r?{deviceId:r}:!0,this.attachedElements.forEach(p=>{zh(this.mediaStreamTrack,p)}),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.stop();const h=(yield navigator.mediaDevices.getUserMedia(l)).getTracks()[0];return yield h.applyConstraints(s),h.addEventListener("ended",this.handleEnded),this.log.debug("re-acquired MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(h),this._constraints=e,this.emit(Qe.Restarted,this),this.manuallyStopped&&(this.log.warn("track was stopped during a restart, stopping restarted track",this.logContext),this.stop()),this}finally{n()}})}setTrackMuted(e){this.log.debug("setting ".concat(this.kind," track ").concat(e?"muted":"unmuted"),this.logContext),!(this.isMuted===e&&this._mediaStreamTrack.enabled!==e)&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?Qe.Muted:Qe.Unmuted,this))}get needsReAcquisition(){return this._mediaStreamTrack.readyState!=="live"||this._mediaStreamTrack.muted||!this._mediaStreamTrack.enabled||this.reacquireTrack}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return Q(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),oO()&&(this.log.debug("visibility changed, is in Background: ".concat(this.isInBackground),this.logContext),!this.isInBackground&&this.needsReAcquisition&&!this.isUserProvided&&!this.isMuted&&(this.log.debug("track needs to be reacquired, restarting ".concat(this.source),this.logContext),yield this.restart(),this.reacquireTrack=!1))})}stop(){var e;this.manuallyStopped=!0,super.stop(),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),(e=this.processor)===null||e===void 0||e.destroy(),this.processor=void 0}pauseUpstream(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!0)return;if(!this.sender){this.log.warn("unable to pause upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!0,this.emit(Qe.UpstreamPaused,this);const r=ws();if((r==null?void 0:r.name)==="Safari"&&bc(r.version,"12.0")<0)throw new nT("pauseUpstream is not supported on Safari < 12.");((e=this.sender.transport)===null||e===void 0?void 0:e.state)!=="closed"&&(yield this.sender.replaceTrack(null))}finally{n()}})}resumeUpstream(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.pauseUpstreamLock.lock();try{if(this._isUpstreamPaused===!1)return;if(!this.sender){this.log.warn("unable to resume upstream for an unpublished track",this.logContext);return}this._isUpstreamPaused=!1,this.emit(Qe.UpstreamResumed,this),((e=this.sender.transport)===null||e===void 0?void 0:e.state)!=="closed"&&(yield this.sender.replaceTrack(this.mediaStreamTrack))}finally{n()}})}getRTCStatsReport(){return Q(this,void 0,void 0,function*(){var e;return!((e=this.sender)===null||e===void 0)&&e.getStats?yield this.sender.getStats():void 0})}setProcessor(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var s;const l=yield r.processorLock.lock();try{r.log.debug("setting up processor",r.logContext);const c=document.createElement(r.kind),h={kind:r.kind,track:r._mediaStreamTrack,element:c,audioContext:r.audioContext};if(yield n.init(h),r.log.debug("processor initialized",r.logContext),r.processor&&(yield r.stopProcessor()),r.kind==="unknown")throw TypeError("cannot set processor on track of unknown kind");if(Vh(r._mediaStreamTrack,c),c.muted=!0,c.play().catch(p=>r.log.error("failed to play processor element",Object.assign(Object.assign({},r.logContext),{error:p}))),r.processor=n,r.processorElement=c,r.processor.processedTrack){for(const p of r.attachedElements)p!==r.processorElement&&a&&(zh(r._mediaStreamTrack,p),Vh(r.processor.processedTrack,p));yield(s=r.sender)===null||s===void 0?void 0:s.replaceTrack(r.processor.processedTrack)}r.emit(Qe.TrackProcessorUpdate,r.processor)}finally{l()}}()})}getProcessor(){return this.processor}stopProcessor(){return Q(this,arguments,void 0,function(){var e=this;let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var r,a;e.processor&&(e.log.debug("stopping processor",e.logContext),(r=e.processor.processedTrack)===null||r===void 0||r.stop(),yield e.processor.destroy(),e.processor=void 0,n||((a=e.processorElement)===null||a===void 0||a.remove(),e.processorElement=void 0),yield e._mediaStreamTrack.applyConstraints(e._constraints),yield e.setMediaStreamTrack(e._mediaStreamTrack,!0),e.emit(Qe.TrackProcessorUpdate))}()})}}class ub extends MO{get enhancedNoiseCancellation(){return this.isKrispNoiseFilterEnabled}constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=arguments.length>3?arguments[3]:void 0,s=arguments.length>4?arguments[4]:void 0;super(e,De.Kind.Audio,n,r,s),this.stopOnMute=!1,this.isKrispNoiseFilterEnabled=!1,this.monitorSender=()=>Q(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let l;try{l=yield this.getSenderStats()}catch(c){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:c}));return}l&&this.prevStats&&(this._currentBitrate=lb(l,this.prevStats)),this.prevStats=l}),this.handleKrispNoiseFilterEnable=()=>{this.isKrispNoiseFilterEnabled=!0,this.log.debug("Krisp noise filter enabled",this.logContext),this.emit(Qe.AudioTrackFeatureUpdate,this,ul.TF_ENHANCED_NOISE_CANCELLATION,!0)},this.handleKrispNoiseFilterDisable=()=>{this.isKrispNoiseFilterEnabled=!1,this.log.debug("Krisp noise filter disabled",this.logContext),this.emit(Qe.AudioTrackFeatureUpdate,this,ul.TF_ENHANCED_NOISE_CANCELLATION,!1)},this.audioContext=a,this.checkForSilence()}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return Q(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===De.Source.Microphone&&this.stopOnMute&&!this.isUserProvided&&(this.log.debug("stopping mic track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{n()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return Q(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{if(!this.isMuted)return this.log.debug("Track already unmuted",this.logContext),this;const r=this._constraints.deviceId&&this._mediaStreamTrack.getSettings().deviceId!==Sc(this._constraints.deviceId);return this.source===De.Source.Microphone&&(this.stopOnMute||this._mediaStreamTrack.readyState==="ended"||r)&&!this.isUserProvided&&(this.log.debug("reacquiring mic track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this}finally{n()}})}restartTrack(e){return Q(this,void 0,void 0,function*(){let n;if(e){const r=CT({audio:e});typeof r.audio!="boolean"&&(n=r.audio)}yield this.restart(n)})}restart(e){const n=Object.create(null,{restart:{get:()=>super.restart}});return Q(this,void 0,void 0,function*(){const r=yield n.restart.call(this,e);return this.checkForSilence(),r})}startMonitor(){ao()&&(this.monitorInterval||(this.monitorInterval=setInterval(()=>{this.monitorSender()},OT)))}setProcessor(e){return Q(this,void 0,void 0,function*(){var n;const r=yield this.processorLock.lock();try{if(!fl()&&!this.audioContext)throw Error("Audio context needs to be set on LocalAudioTrack in order to enable processors");this.processor&&(yield this.stopProcessor());const a={kind:this.kind,track:this._mediaStreamTrack,audioContext:this.audioContext};this.log.debug("setting up audio processor ".concat(e.name),this.logContext),yield e.init(a),this.processor=e,this.processor.processedTrack&&(yield(n=this.sender)===null||n===void 0?void 0:n.replaceTrack(this.processor.processedTrack),this.processor.processedTrack.addEventListener("enable-lk-krisp-noise-filter",this.handleKrispNoiseFilterEnable),this.processor.processedTrack.addEventListener("disable-lk-krisp-noise-filter",this.handleKrispNoiseFilterDisable)),this.emit(Qe.TrackProcessorUpdate,this.processor)}finally{r()}})}setAudioContext(e){this.audioContext=e}getSenderStats(){return Q(this,void 0,void 0,function*(){var e;if(!(!((e=this.sender)===null||e===void 0)&&e.getStats))return;const n=yield this.sender.getStats();let r;return n.forEach(a=>{a.type==="outbound-rtp"&&(r={type:"audio",streamId:a.id,packetsSent:a.packetsSent,packetsLost:a.packetsLost,bytesSent:a.bytesSent,timestamp:a.timestamp,roundTripTime:a.roundTripTime,jitter:a.jitter})}),r})}checkForSilence(){return Q(this,void 0,void 0,function*(){const e=yield gO(this);return e&&(this.isMuted||this.log.warn("silence detected on local audio track",this.logContext),this.emit(Qe.AudioSilenceDetected)),e})}}function WV(t,e,n){switch(t.kind){case"audio":return new ub(t,e,!1,void 0,n);case"video":return new db(t,e,!1,n);default:throw new uu("unsupported track type: ".concat(t.kind))}}const GV=Object.values(Pg),YV=Object.values(lT),KV=Object.values(uT),ZV=[Pg.h180,Pg.h360],QV=[lT.h180,lT.h360],XV=t=>[{scaleResolutionDownBy:2,fps:t.encoding.maxFramerate}].map(n=>{var r,a;return new gr(Math.floor(t.width/n.scaleResolutionDownBy),Math.floor(t.height/n.scaleResolutionDownBy),Math.max(15e4,Math.floor(t.encoding.maxBitrate/(Math.pow(n.scaleResolutionDownBy,2)*(((r=t.encoding.maxFramerate)!==null&&r!==void 0?r:30)/((a=n.fps)!==null&&a!==void 0?a:30))))),n.fps,t.encoding.priority)}),MT=["q","h","f"];function LT(t,e,n,r){var a,s;let l=r==null?void 0:r.videoEncoding;t&&(l=r==null?void 0:r.screenShareEncoding);const c=r==null?void 0:r.simulcast,h=r==null?void 0:r.scalabilityMode,p=r==null?void 0:r.videoCodec;if(!l&&!c&&!h||!e||!n)return[{}];l||(l=ez(t,e,n,p),Nn.debug("using video encoding",l));const v=l.maxFramerate,b=new gr(e,n,l.maxBitrate,l.maxFramerate,l.priority);if(h&&Dg(p)){const E=new cb(h),R=[];if(E.spatial>3)throw new Error("unsupported scalabilityMode: ".concat(h));const M=ws();if(yc()||fl()||(M==null?void 0:M.name)==="Chrome"&&bc(M==null?void 0:M.version,"113")<0){const A=E.suffix=="h"?2:3;for(let U=0;U<E.spatial;U+=1)R.push({rid:MT[2-U],maxBitrate:l.maxBitrate/Math.pow(A,U),maxFramerate:b.encoding.maxFramerate});R[0].scalabilityMode=h}else R.push({maxBitrate:l.maxBitrate,maxFramerate:b.encoding.maxFramerate,scalabilityMode:h});return b.encoding.priority&&(R[0].priority=b.encoding.priority,R[0].networkPriority=b.encoding.priority),Nn.debug("using svc encoding",{encodings:R}),R}if(!c)return[l];let k=[];t?k=(a=NO(r==null?void 0:r.screenShareSimulcastLayers))!==null&&a!==void 0?a:LO(t,b):k=(s=NO(r==null?void 0:r.videoSimulcastLayers))!==null&&s!==void 0?s:LO(t,b);let T;if(k.length>0){const E=k[0];k.length>1&&([,T]=k);const R=Math.max(e,n);if(R>=960&&T)return NT(e,n,[E,T,b],v);if(R>=480)return NT(e,n,[E,b],v)}return NT(e,n,[b])}function JV(t,e,n){var r,a,s,l;if(!n.backupCodec||n.backupCodec===!0||n.backupCodec.codec===n.videoCodec)return;e!==n.backupCodec.codec&&Nn.warn("requested a different codec than specified as backup",{serverRequested:e,backup:n.backupCodec.codec}),n.videoCodec=e,n.videoEncoding=n.backupCodec.encoding;const c=t.mediaStreamTrack.getSettings(),h=(r=c.width)!==null&&r!==void 0?r:(a=t.dimensions)===null||a===void 0?void 0:a.width,p=(s=c.height)!==null&&s!==void 0?s:(l=t.dimensions)===null||l===void 0?void 0:l.height;return t.source===De.Source.ScreenShare&&n.simulcast&&(n.simulcast=!1),LT(t.source===De.Source.ScreenShare,h,p,n)}function ez(t,e,n,r){const a=tz(t,e,n);let{encoding:s}=a[0];const l=Math.max(e,n);for(let c=0;c<a.length;c+=1){const h=a[c];if(s=h.encoding,h.width>=l)break}if(r)switch(r){case"av1":s=Object.assign({},s),s.maxBitrate=s.maxBitrate*.7;break;case"vp9":s=Object.assign({},s),s.maxBitrate=s.maxBitrate*.85;break}return s}function tz(t,e,n){if(t)return KV;const r=e>n?e/n:n/e;return Math.abs(r-16/9)<Math.abs(r-4/3)?GV:YV}function LO(t,e){if(t)return XV(e);const{width:n,height:r}=e,a=n>r?n/r:r/n;return Math.abs(a-16/9)<Math.abs(a-4/3)?ZV:QV}function NT(t,e,n,r){const a=[];if(n.forEach((s,l)=>{if(l>=MT.length)return;const c=Math.min(t,e),p={rid:MT[l],scaleResolutionDownBy:Math.max(1,c/Math.min(s.width,s.height)),maxBitrate:s.encoding.maxBitrate},v=r&&s.encoding.maxFramerate?Math.min(r,s.encoding.maxFramerate):s.encoding.maxFramerate;v&&(p.maxFramerate=v);const b=Bh()||l===0;s.encoding.priority&&b&&(p.priority=s.encoding.priority,p.networkPriority=s.encoding.priority),a.push(p)}),fl()&&lO()==="ios"){let s;a.forEach(c=>{s?c.maxFramerate&&c.maxFramerate>s&&(s=c.maxFramerate):s=c.maxFramerate});let l=!0;a.forEach(c=>{var h;c.maxFramerate!=s&&(l&&(l=!1,Nn.info("Simulcast on iOS React-Native requires all encodings to share the same framerate.")),Nn.info('Setting framerate of encoding "'.concat((h=c.rid)!==null&&h!==void 0?h:"",'" to ').concat(s)),c.maxFramerate=s)})}return a}function NO(t){if(t)return t.sort((e,n)=>{const{encoding:r}=e,{encoding:a}=n;return r.maxBitrate>a.maxBitrate?1:r.maxBitrate<a.maxBitrate?-1:r.maxBitrate===a.maxBitrate&&r.maxFramerate&&a.maxFramerate?r.maxFramerate>a.maxFramerate?1:-1:0})}class cb{constructor(e){const n=e.match(/^L(\d)T(\d)(h|_KEY|_KEY_SHIFT){0,1}$/);if(!n)throw new Error("invalid scalability mode");if(this.spatial=parseInt(n[1]),this.temporal=parseInt(n[2]),n.length>3)switch(n[3]){case"h":case"_KEY":case"_KEY_SHIFT":this.suffix=n[3]}}toString(){var e;return"L".concat(this.spatial,"T").concat(this.temporal).concat((e=this.suffix)!==null&&e!==void 0?e:"")}}function nz(t){return t.source===De.Source.ScreenShare||t.constraints.height&&Sc(t.constraints.height)>=1080?"maintain-resolution":"balanced"}const rz=5e3;class db extends MO{get sender(){return this._sender}set sender(e){this._sender=e,this.degradationPreference&&this.setDegradationPreference(this.degradationPreference)}constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,a=arguments.length>3?arguments[3]:void 0;super(e,De.Kind.Video,n,r,a),this.simulcastCodecs=new Map,this.degradationPreference="balanced",this.monitorSender=()=>Q(this,void 0,void 0,function*(){if(!this.sender){this._currentBitrate=0;return}let s;try{s=yield this.getSenderStats()}catch(c){this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:c}));return}const l=new Map(s.map(c=>[c.rid,c]));if(this.prevStats){let c=0;l.forEach((h,p)=>{var v;const b=(v=this.prevStats)===null||v===void 0?void 0:v.get(p);c+=lb(h,b)}),this._currentBitrate=c}this.prevStats=l}),this.senderLock=new to}get isSimulcast(){return!!(this.sender&&this.sender.getParameters().encodings.length>1)}startMonitor(e){var n;if(this.signalClient=e,!ao())return;const r=(n=this.sender)===null||n===void 0?void 0:n.getParameters();r&&(this.encodings=r.encodings),!this.monitorInterval&&(this.monitorInterval=setInterval(()=>{this.monitorSender()},OT))}stop(){this._mediaStreamTrack.getConstraints(),this.simulcastCodecs.forEach(e=>{e.mediaStreamTrack.stop()}),super.stop()}pauseUpstream(){const e=Object.create(null,{pauseUpstream:{get:()=>super.pauseUpstream}});return Q(this,void 0,void 0,function*(){var n,r,a,s,l;yield e.pauseUpstream.call(this);try{for(var c=!0,h=pc(this.simulcastCodecs.values()),p;p=yield h.next(),n=p.done,!n;c=!0)s=p.value,c=!1,yield(l=s.sender)===null||l===void 0?void 0:l.replaceTrack(null)}catch(v){r={error:v}}finally{try{!c&&!n&&(a=h.return)&&(yield a.call(h))}finally{if(r)throw r.error}}})}resumeUpstream(){const e=Object.create(null,{resumeUpstream:{get:()=>super.resumeUpstream}});return Q(this,void 0,void 0,function*(){var n,r,a,s,l;yield e.resumeUpstream.call(this);try{for(var c=!0,h=pc(this.simulcastCodecs.values()),p;p=yield h.next(),n=p.done,!n;c=!0){s=p.value,c=!1;const v=s;yield(l=v.sender)===null||l===void 0?void 0:l.replaceTrack(v.mediaStreamTrack)}}catch(v){r={error:v}}finally{try{!c&&!n&&(a=h.return)&&(yield a.call(h))}finally{if(r)throw r.error}}})}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return Q(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===De.Source.Camera&&!this.isUserProvided&&(this.log.debug("stopping camera track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{n()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return Q(this,void 0,void 0,function*(){const n=yield this.muteLock.lock();try{return this.isMuted?(this.source===De.Source.Camera&&!this.isUserProvided&&(this.log.debug("reacquiring camera track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this):(this.log.debug("Track already unmuted",this.logContext),this)}finally{n()}})}setTrackMuted(e){super.setTrackMuted(e);for(const n of this.simulcastCodecs.values())n.mediaStreamTrack.enabled=!e}getSenderStats(){return Q(this,void 0,void 0,function*(){var e;if(!(!((e=this.sender)===null||e===void 0)&&e.getStats))return[];const n=[],r=yield this.sender.getStats();return r.forEach(a=>{var s;if(a.type==="outbound-rtp"){const l={type:"video",streamId:a.id,frameHeight:a.frameHeight,frameWidth:a.frameWidth,framesPerSecond:a.framesPerSecond,framesSent:a.framesSent,firCount:a.firCount,pliCount:a.pliCount,nackCount:a.nackCount,packetsSent:a.packetsSent,bytesSent:a.bytesSent,qualityLimitationReason:a.qualityLimitationReason,qualityLimitationDurations:a.qualityLimitationDurations,qualityLimitationResolutionChanges:a.qualityLimitationResolutionChanges,rid:(s=a.rid)!==null&&s!==void 0?s:a.id,retransmittedPacketsSent:a.retransmittedPacketsSent,targetBitrate:a.targetBitrate,timestamp:a.timestamp},c=r.get(a.remoteId);c&&(l.jitter=c.jitter,l.packetsLost=c.packetsLost,l.roundTripTime=c.roundTripTime),n.push(l)}}),n.sort((a,s)=>{var l,c;return((l=s.frameWidth)!==null&&l!==void 0?l:0)-((c=a.frameWidth)!==null&&c!==void 0?c:0)}),n})}setPublishingQuality(e){const n=[];for(let r=Go.LOW;r<=Go.HIGH;r+=1)n.push(new $1({quality:r,enabled:r<=e}));this.log.debug("setting publishing quality. max quality ".concat(e),this.logContext),this.setPublishingLayers(n)}restartTrack(e){return Q(this,void 0,void 0,function*(){var n,r,a,s,l;let c;if(e){const b=CT({video:e});typeof b.video!="boolean"&&(c=b.video)}yield this.restart(c);try{for(var h=!0,p=pc(this.simulcastCodecs.values()),v;v=yield p.next(),n=v.done,!n;h=!0){s=v.value,h=!1;const b=s;b.sender&&((l=b.sender.transport)===null||l===void 0?void 0:l.state)!=="closed"&&(b.mediaStreamTrack=this.mediaStreamTrack.clone(),yield b.sender.replaceTrack(b.mediaStreamTrack))}}catch(b){r={error:b}}finally{try{!h&&!n&&(a=p.return)&&(yield a.call(p))}finally{if(r)throw r.error}}})}setProcessor(e){const n=Object.create(null,{setProcessor:{get:()=>super.setProcessor}});return Q(this,arguments,void 0,function(r){var a=this;let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){var l,c,h,p,v,b;if(yield n.setProcessor.call(a,r,s),!((v=a.processor)===null||v===void 0)&&v.processedTrack)try{for(var k=!0,T=pc(a.simulcastCodecs.values()),E;E=yield T.next(),l=E.done,!l;k=!0)p=E.value,k=!1,yield(b=p.sender)===null||b===void 0?void 0:b.replaceTrack(a.processor.processedTrack)}catch(R){c={error:R}}finally{try{!k&&!l&&(h=T.return)&&(yield h.call(T))}finally{if(c)throw c.error}}}()})}setDegradationPreference(e){return Q(this,void 0,void 0,function*(){if(this.degradationPreference=e,this.sender)try{this.log.debug("setting degradationPreference to ".concat(e),this.logContext);const n=this.sender.getParameters();n.degradationPreference=e,this.sender.setParameters(n)}catch(n){this.log.warn("failed to set degradationPreference",Object.assign({error:n},this.logContext))}})}addSimulcastTrack(e,n){if(this.simulcastCodecs.has(e)){this.log.error("".concat(e," already added, skipping adding simulcast codec"),this.logContext);return}const r={codec:e,mediaStreamTrack:this.mediaStreamTrack.clone(),sender:void 0,encodings:n};return this.simulcastCodecs.set(e,r),r}setSimulcastTrackSender(e,n){const r=this.simulcastCodecs.get(e);r&&(r.sender=n,setTimeout(()=>{this.subscribedCodecs&&this.setPublishingCodecs(this.subscribedCodecs)},rz))}setPublishingCodecs(e){return Q(this,void 0,void 0,function*(){var n,r,a,s,l,c,h;if(this.log.debug("setting publishing codecs",Object.assign(Object.assign({},this.logContext),{codecs:e,currentCodec:this.codec})),!this.codec&&e.length>0)return yield this.setPublishingLayers(e[0].qualities),[];this.subscribedCodecs=e;const p=[];try{for(n=!0,r=pc(e);a=yield r.next(),s=a.done,!s;n=!0){h=a.value,n=!1;const v=h;if(!this.codec||this.codec===v.codec)yield this.setPublishingLayers(v.qualities);else{const b=this.simulcastCodecs.get(v.codec);if(this.log.debug("try setPublishingCodec for ".concat(v.codec),Object.assign(Object.assign({},this.logContext),{simulcastCodecInfo:b})),!b||!b.sender){for(const k of v.qualities)if(k.enabled){p.push(v.codec);break}}else b.encodings&&(this.log.debug("try setPublishingLayersForSender ".concat(v.codec),this.logContext),yield IO(b.sender,b.encodings,v.qualities,this.senderLock,this.log,this.logContext))}}}catch(v){l={error:v}}finally{try{!n&&!s&&(c=r.return)&&(yield c.call(r))}finally{if(l)throw l.error}}return p})}setPublishingLayers(e){return Q(this,void 0,void 0,function*(){this.log.debug("setting publishing layers",Object.assign(Object.assign({},this.logContext),{qualities:e})),!(!this.sender||!this.encodings)&&(yield IO(this.sender,this.encodings,e,this.senderLock,this.log,this.logContext))})}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return Q(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),oO()&&this.isInBackground&&this.source===De.Source.Camera&&(this._mediaStreamTrack.enabled=!1)})}}function IO(t,e,n,r,a,s){return Q(this,void 0,void 0,function*(){const l=yield r.lock();a.debug("setPublishingLayersForSender",Object.assign(Object.assign({},s),{sender:t,qualities:n,senderEncodings:e}));try{const c=t.getParameters(),{encodings:h}=c;if(!h)return;if(h.length!==e.length){a.warn("cannot set publishing layers, encodings mismatch",Object.assign(Object.assign({},s),{encodings:h,senderEncodings:e}));return}let p=!1;const v=ws();if((v==null?void 0:v.name)==="Chrome"&&bc(v==null?void 0:v.version,"133")>0&&h[0].scalabilityMode){const k=h[0],T=new cb(k.scalabilityMode);let E=Nh.OFF;if(n.forEach(R=>{R.enabled&&(E===Nh.OFF||R.quality>E)&&(E=R.quality)}),E===Nh.OFF)k.active&&(k.active=!1,p=!0);else if(!k.active||T.spatial!==E+1){p=!0,k.active=!0;const R=new cb(e[0].scalabilityMode);T.spatial=E+1,T.suffix=R.suffix,T.spatial===1&&(T.suffix=void 0),k.scalabilityMode=T.toString(),k.scaleResolutionDownBy=Math.pow(2,2-E),e[0].maxBitrate&&(k.maxBitrate=e[0].maxBitrate/(k.scaleResolutionDownBy*k.scaleResolutionDownBy))}}else h.forEach((k,T)=>{var E;let R=(E=k.rid)!==null&&E!==void 0?E:"";R===""&&(R="q");const M=UO(R),A=n.find(U=>U.quality===M);A&&k.active!==A.enabled&&(p=!0,k.active=A.enabled,a.debug("setting layer ".concat(A.quality," to ").concat(k.active?"enabled":"disabled"),s),Bh()&&(A.enabled?(k.scaleResolutionDownBy=e[T].scaleResolutionDownBy,k.maxBitrate=e[T].maxBitrate,k.maxFrameRate=e[T].maxFrameRate):(k.scaleResolutionDownBy=4,k.maxBitrate=10,k.maxFrameRate=2)))});p&&(c.encodings=h,a.debug("setting encodings",Object.assign(Object.assign({},s),{encodings:c.encodings})),yield t.setParameters(c))}finally{l()}})}function UO(t){switch(t){case"f":return Go.HIGH;case"h":return Go.MEDIUM;case"q":return Go.LOW;default:return Go.HIGH}}function FO(t,e,n,r){if(!n)return[new Gd({quality:Go.HIGH,width:t,height:e,bitrate:0,ssrc:0})];if(r){const a=n[0].scalabilityMode,s=new cb(a),l=[],c=s.suffix=="h"?1.5:2,h=s.suffix=="h"?2:3;for(let p=0;p<s.spatial;p+=1)l.push(new Gd({quality:Math.min(Go.HIGH,s.spatial-1)-p,width:Math.ceil(t/Math.pow(c,p)),height:Math.ceil(e/Math.pow(c,p)),bitrate:n[0].maxBitrate?Math.ceil(n[0].maxBitrate/Math.pow(h,p)):0,ssrc:0}));return l}return n.map(a=>{var s,l,c;const h=(s=a.scaleResolutionDownBy)!==null&&s!==void 0?s:1;let p=UO((l=a.rid)!==null&&l!==void 0?l:"");return new Gd({quality:p,width:Math.ceil(t/h),height:Math.ceil(e/h),bitrate:(c=a.maxBitrate)!==null&&c!==void 0?c:0,ssrc:0})})}const jO="_lossy",VO="_reliable",iz=2*1e3,IT="leave-reconnect";var Es;(function(t){t[t.New=0]="New",t[t.Connected=1]="Connected",t[t.Disconnected=2]="Disconnected",t[t.Reconnecting=3]="Reconnecting",t[t.Closed=4]="Closed"})(Es||(Es={}));class az extends dl.EventEmitter{get isClosed(){return this._isClosed}get pendingReconnect(){return!!this.reconnectTimeout}constructor(e){var n;super(),this.options=e,this.rtcConfig={},this.peerConnectionTimeout=DT.peerConnectionTimeout,this.fullReconnectOnNext=!1,this.subscriberPrimary=!1,this.pcState=Es.New,this._isClosed=!0,this.pendingTrackResolvers={},this.reconnectAttempts=0,this.reconnectStart=0,this.attemptingReconnect=!1,this.joinAttempts=0,this.maxJoinAttempts=1,this.shouldFailNext=!1,this.log=Nn,this.handleDataChannel=r=>Q(this,[r],void 0,function(a){var s=this;let{channel:l}=a;return function*(){if(l){if(l.label===VO)s.reliableDCSub=l;else if(l.label===jO)s.lossyDCSub=l;else return;s.log.debug("on data channel ".concat(l.id,", ").concat(l.label),s.logContext),l.onmessage=s.handleDataMessage}}()}),this.handleDataMessage=r=>Q(this,void 0,void 0,function*(){var a,s;const l=yield this.dataProcessLock.lock();try{let c;if(r.data instanceof ArrayBuffer)c=r.data;else if(r.data instanceof Blob)c=yield r.data.arrayBuffer();else{this.log.error("unsupported data type",Object.assign(Object.assign({},this.logContext),{data:r.data}));return}const h=ro.fromBinary(new Uint8Array(c));((a=h.value)===null||a===void 0?void 0:a.case)==="speaker"?this.emit(tt.ActiveSpeakersUpdate,h.value.value.speakers):(((s=h.value)===null||s===void 0?void 0:s.case)==="user"&&sz(h,h.value.value),this.emit(tt.DataPacketReceived,h))}finally{l()}}),this.handleDataError=r=>{const s=r.currentTarget.maxRetransmits===0?"lossy":"reliable";if(r instanceof ErrorEvent&&r.error){const{error:l}=r.error;this.log.error("DataChannel error on ".concat(s,": ").concat(r.message),Object.assign(Object.assign({},this.logContext),{error:l}))}else this.log.error("Unknown DataChannel error on ".concat(s),Object.assign(Object.assign({},this.logContext),{event:r}))},this.handleBufferedAmountLow=r=>{const s=r.currentTarget.maxRetransmits===0?$n.LOSSY:$n.RELIABLE;this.updateAndEmitDCBufferStatus(s)},this.handleDisconnect=(r,a)=>{if(this._isClosed)return;this.log.warn("".concat(r," disconnected"),this.logContext),this.reconnectAttempts===0&&(this.reconnectStart=Date.now());const s=h=>{this.log.warn("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(h,"ms. giving up"),this.logContext),this.emit(tt.Disconnected),this.close()},l=Date.now()-this.reconnectStart;let c=this.getNextRetryDelay({elapsedMs:l,retryCount:this.reconnectAttempts});if(c===null){s(l);return}r===IT&&(c=0),this.log.debug("reconnecting in ".concat(c,"ms"),this.logContext),this.clearReconnectTimeout(),this.token&&this.regionUrlProvider&&this.regionUrlProvider.updateToken(this.token),this.reconnectTimeout=Qi.setTimeout(()=>this.attemptReconnect(a).finally(()=>this.reconnectTimeout=void 0),c)},this.waitForRestarted=()=>new Promise((r,a)=>{this.pcState===Es.Connected&&r();const s=()=>{this.off(tt.Disconnected,l),r()},l=()=>{this.off(tt.Restarted,s),a()};this.once(tt.Restarted,s),this.once(tt.Disconnected,l)}),this.updateAndEmitDCBufferStatus=r=>{const a=this.isBufferStatusLow(r);typeof a<"u"&&a!==this.dcBufferStatus.get(r)&&(this.dcBufferStatus.set(r,a),this.emit(tt.DCBufferStatusChanged,a,r))},this.isBufferStatusLow=r=>{const a=this.dataChannelForKind(r);if(a)return a.bufferedAmount<=a.bufferedAmountLowThreshold},this.handleBrowserOnLine=()=>{this.client.currentState===Or.RECONNECTING&&(this.clearReconnectTimeout(),this.attemptReconnect(Ih.RR_SIGNAL_DISCONNECTED))},this.log=lu((n=e.loggerName)!==null&&n!==void 0?n:xs.Engine),this.loggerOptions={loggerName:e.loggerName,loggerContextCb:()=>this.logContext},this.client=new TT(void 0,this.loggerOptions),this.client.signalLatency=this.options.expSignalLatency,this.reconnectPolicy=this.options.reconnectPolicy,this.registerOnLineListener(),this.closingLock=new to,this.dataProcessLock=new to,this.dcBufferStatus=new Map([[$n.LOSSY,!0],[$n.RELIABLE,!0]]),this.client.onParticipantUpdate=r=>this.emit(tt.ParticipantUpdate,r),this.client.onConnectionQuality=r=>this.emit(tt.ConnectionQualityUpdate,r),this.client.onRoomUpdate=r=>this.emit(tt.RoomUpdate,r),this.client.onSubscriptionError=r=>this.emit(tt.SubscriptionError,r),this.client.onSubscriptionPermissionUpdate=r=>this.emit(tt.SubscriptionPermissionUpdate,r),this.client.onSpeakersChanged=r=>this.emit(tt.SpeakersChanged,r),this.client.onStreamStateUpdate=r=>this.emit(tt.StreamStateChanged,r),this.client.onRequestResponse=r=>this.emit(tt.SignalRequestResponse,r)}get logContext(){var e,n,r,a,s,l,c,h;return{room:(n=(e=this.latestJoinResponse)===null||e===void 0?void 0:e.room)===null||n===void 0?void 0:n.name,roomID:(a=(r=this.latestJoinResponse)===null||r===void 0?void 0:r.room)===null||a===void 0?void 0:a.sid,participant:(l=(s=this.latestJoinResponse)===null||s===void 0?void 0:s.participant)===null||l===void 0?void 0:l.identity,pID:(h=(c=this.latestJoinResponse)===null||c===void 0?void 0:c.participant)===null||h===void 0?void 0:h.sid}}join(e,n,r,a){return Q(this,void 0,void 0,function*(){this.url=e,this.token=n,this.signalOpts=r,this.maxJoinAttempts=r.maxRetries;try{this.joinAttempts+=1,this.setupSignalClientCallbacks();const s=yield this.client.join(e,n,r,a);return this._isClosed=!1,this.latestJoinResponse=s,this.subscriberPrimary=s.subscriberPrimary,this.pcManager||(yield this.configure(s)),(!this.subscriberPrimary||s.fastPublish)&&this.negotiate(),this.clientConfiguration=s.clientConfiguration,setTimeout(()=>{this.emit(tt.SignalConnected)},10),s}catch(s){if(s instanceof br&&s.reason===Un.ServerUnreachable&&(this.log.warn("Couldn't connect to server, attempt ".concat(this.joinAttempts," of ").concat(this.maxJoinAttempts),this.logContext),this.joinAttempts<this.maxJoinAttempts))return this.join(e,n,r,a);throw s}})}close(){return Q(this,void 0,void 0,function*(){const e=yield this.closingLock.lock();if(this.isClosed){e();return}try{this._isClosed=!0,this.joinAttempts=0,this.emit(tt.Closing),this.removeAllListeners(),this.deregisterOnLineListener(),this.clearPendingReconnect(),yield this.cleanupPeerConnections(),yield this.cleanupClient()}finally{e()}})}cleanupPeerConnections(){return Q(this,void 0,void 0,function*(){var e;yield(e=this.pcManager)===null||e===void 0?void 0:e.close(),this.pcManager=void 0;const n=r=>{r&&(r.close(),r.onbufferedamountlow=null,r.onclose=null,r.onclosing=null,r.onerror=null,r.onmessage=null,r.onopen=null)};n(this.lossyDC),n(this.lossyDCSub),n(this.reliableDC),n(this.reliableDCSub),this.lossyDC=void 0,this.lossyDCSub=void 0,this.reliableDC=void 0,this.reliableDCSub=void 0})}cleanupClient(){return Q(this,void 0,void 0,function*(){yield this.client.close(),this.client.resetCallbacks()})}addTrack(e){if(this.pendingTrackResolvers[e.cid])throw new uu("a track with the same ID has already been published");return new Promise((n,r)=>{const a=setTimeout(()=>{delete this.pendingTrackResolvers[e.cid],r(new br("publication of local track timed out, no response from server",Un.InternalError))},1e4);this.pendingTrackResolvers[e.cid]={resolve:s=>{clearTimeout(a),n(s)},reject:()=>{clearTimeout(a),r(new Error("Cancelled publication by calling unpublish"))}},this.client.sendAddTrack(e)})}removeTrack(e){if(e.track&&this.pendingTrackResolvers[e.track.id]){const{reject:n}=this.pendingTrackResolvers[e.track.id];n&&n(),delete this.pendingTrackResolvers[e.track.id]}try{return this.pcManager.removeTrack(e),!0}catch(n){this.log.warn("failed to remove track",Object.assign(Object.assign({},this.logContext),{error:n}))}return!1}updateMuteStatus(e,n){this.client.sendMuteTrack(e,n)}get dataSubscriberReadyState(){var e;return(e=this.reliableDCSub)===null||e===void 0?void 0:e.readyState}getConnectedServerAddress(){return Q(this,void 0,void 0,function*(){var e;return(e=this.pcManager)===null||e===void 0?void 0:e.getConnectedAddress()})}setRegionUrlProvider(e){this.regionUrlProvider=e}configure(e){return Q(this,void 0,void 0,function*(){var n,r;if(this.pcManager&&this.pcManager.currentState!==Jr.NEW)return;this.participantSid=(n=e.participant)===null||n===void 0?void 0:n.sid;const a=this.makeRTCConfiguration(e);this.pcManager=new $V(a,e.subscriberPrimary,this.loggerOptions),this.emit(tt.TransportsCreated,this.pcManager.publisher,this.pcManager.subscriber),this.pcManager.onIceCandidate=(s,l)=>{this.client.sendIceCandidate(s,l)},this.pcManager.onPublisherOffer=s=>{this.client.sendOffer(s)},this.pcManager.onDataChannel=this.handleDataChannel,this.pcManager.onStateChange=(s,l,c)=>Q(this,void 0,void 0,function*(){if(this.log.debug("primary PC state changed ".concat(s),this.logContext),["closed","disconnected","failed"].includes(l)&&(this.publisherConnectionPromise=void 0),s===Jr.CONNECTED){const v=this.pcState===Es.New;this.pcState=Es.Connected,v&&this.emit(tt.Connected,e)}else s===Jr.FAILED&&this.pcState===Es.Connected&&(this.pcState=Es.Disconnected,this.handleDisconnect("peerconnection failed",c==="failed"?Ih.RR_SUBSCRIBER_FAILED:Ih.RR_PUBLISHER_FAILED));const h=this.client.isDisconnected||this.client.currentState===Or.RECONNECTING,p=[Jr.FAILED,Jr.CLOSING,Jr.CLOSED].includes(s);h&&p&&!this._isClosed&&this.emit(tt.Offline)}),this.pcManager.onTrack=s=>{this.emit(tt.MediaTrackAdded,s.track,s.streams[0],s.receiver)},oz((r=e.serverInfo)===null||r===void 0?void 0:r.protocol)||this.createDataChannels()})}setupSignalClientCallbacks(){this.client.onAnswer=e=>Q(this,void 0,void 0,function*(){this.pcManager&&(this.log.debug("received server answer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type})),yield this.pcManager.setPublisherAnswer(e))}),this.client.onTrickle=(e,n)=>{this.pcManager&&(this.log.debug("got ICE candidate from peer",Object.assign(Object.assign({},this.logContext),{candidate:e,target:n})),this.pcManager.addIceCandidate(e,n))},this.client.onOffer=e=>Q(this,void 0,void 0,function*(){if(!this.pcManager)return;const n=yield this.pcManager.createSubscriberAnswerFromOffer(e);this.client.sendAnswer(n)}),this.client.onLocalTrackPublished=e=>{var n;if(this.log.debug("received trackPublishedResponse",Object.assign(Object.assign({},this.logContext),{cid:e.cid,track:(n=e.track)===null||n===void 0?void 0:n.sid})),!this.pendingTrackResolvers[e.cid]){this.log.error("missing track resolver for ".concat(e.cid),Object.assign(Object.assign({},this.logContext),{cid:e.cid}));return}const{resolve:r}=this.pendingTrackResolvers[e.cid];delete this.pendingTrackResolvers[e.cid],r(e.track)},this.client.onLocalTrackUnpublished=e=>{this.emit(tt.LocalTrackUnpublished,e)},this.client.onLocalTrackSubscribed=e=>{this.emit(tt.LocalTrackSubscribed,e)},this.client.onTokenRefresh=e=>{this.token=e},this.client.onRemoteMuteChanged=(e,n)=>{this.emit(tt.RemoteMute,e,n)},this.client.onSubscribedQualityUpdate=e=>{this.emit(tt.SubscribedQualityUpdate,e)},this.client.onClose=()=>{this.handleDisconnect("signal",Ih.RR_SIGNAL_DISCONNECTED)},this.client.onLeave=e=>{switch(this.log.debug("client leave request",Object.assign(Object.assign({},this.logContext),{reason:e==null?void 0:e.reason})),e.regions&&this.regionUrlProvider&&(this.log.debug("updating regions",this.logContext),this.regionUrlProvider.setServerReportedRegions(e.regions)),e.action){case Fh.DISCONNECT:this.emit(tt.Disconnected,e==null?void 0:e.reason),this.close();break;case Fh.RECONNECT:this.fullReconnectOnNext=!0,this.handleDisconnect(IT);break;case Fh.RESUME:this.handleDisconnect(IT)}}}makeRTCConfiguration(e){var n;const r=Object.assign({},this.rtcConfig);if(!((n=this.signalOpts)===null||n===void 0)&&n.e2eeEnabled&&(this.log.debug("E2EE - setting up transports with insertable streams",this.logContext),r.encodedInsertableStreams=!0),e.iceServers&&!r.iceServers){const a=[];e.iceServers.forEach(s=>{const l={urls:s.urls};s.username&&(l.username=s.username),s.credential&&(l.credential=s.credential),a.push(l)}),r.iceServers=a}return e.clientConfiguration&&e.clientConfiguration.forceRelay===xg.ENABLED&&(r.iceTransportPolicy="relay"),r.sdpSemantics="unified-plan",r.continualGatheringPolicy="gather_continually",r}createDataChannels(){this.pcManager&&(this.lossyDC&&(this.lossyDC.onmessage=null,this.lossyDC.onerror=null),this.reliableDC&&(this.reliableDC.onmessage=null,this.reliableDC.onerror=null),this.lossyDC=this.pcManager.createPublisherDataChannel(jO,{ordered:!0,maxRetransmits:0}),this.reliableDC=this.pcManager.createPublisherDataChannel(VO,{ordered:!0}),this.lossyDC.onmessage=this.handleDataMessage,this.reliableDC.onmessage=this.handleDataMessage,this.lossyDC.onerror=this.handleDataError,this.reliableDC.onerror=this.handleDataError,this.lossyDC.bufferedAmountLowThreshold=65535,this.reliableDC.bufferedAmountLowThreshold=65535,this.lossyDC.onbufferedamountlow=this.handleBufferedAmountLow,this.reliableDC.onbufferedamountlow=this.handleBufferedAmountLow)}createSender(e,n,r){return Q(this,void 0,void 0,function*(){if(cT())return yield this.createTransceiverRTCRtpSender(e,n,r);if(dT())return this.log.warn("using add-track fallback",this.logContext),yield this.createRTCRtpSender(e.mediaStreamTrack);throw new xi("Required webRTC APIs not supported on this device")})}createSimulcastSender(e,n,r,a){return Q(this,void 0,void 0,function*(){if(cT())return this.createSimulcastTransceiverSender(e,n,r,a);if(dT())return this.log.debug("using add-track fallback",this.logContext),this.createRTCRtpSender(e.mediaStreamTrack);throw new xi("Cannot stream on this device")})}createTransceiverRTCRtpSender(e,n,r){return Q(this,void 0,void 0,function*(){if(!this.pcManager)throw new xi("publisher is closed");const a=[];e.mediaStream&&a.push(e.mediaStream),$h(e)&&(e.codec=n.videoCodec);const s={direction:"sendonly",streams:a};return r&&(s.sendEncodings=r),(yield this.pcManager.addPublisherTransceiver(e.mediaStreamTrack,s)).sender})}createSimulcastTransceiverSender(e,n,r,a){return Q(this,void 0,void 0,function*(){if(!this.pcManager)throw new xi("publisher is closed");const s={direction:"sendonly"};a&&(s.sendEncodings=a);const l=yield this.pcManager.addPublisherTransceiver(n.mediaStreamTrack,s);if(r.videoCodec)return e.setSimulcastTrackSender(r.videoCodec,l.sender),l.sender})}createRTCRtpSender(e){return Q(this,void 0,void 0,function*(){if(!this.pcManager)throw new xi("publisher is closed");return this.pcManager.addPublisherTrack(e)})}attemptReconnect(e){return Q(this,void 0,void 0,function*(){var n,r,a;if(!this._isClosed){if(this.attemptingReconnect){Nn.warn("already attempting reconnect, returning early",this.logContext);return}(((n=this.clientConfiguration)===null||n===void 0?void 0:n.resumeConnection)===xg.DISABLED||((a=(r=this.pcManager)===null||r===void 0?void 0:r.currentState)!==null&&a!==void 0?a:Jr.NEW)===Jr.NEW)&&(this.fullReconnectOnNext=!0);try{this.attemptingReconnect=!0,this.fullReconnectOnNext?yield this.restartConnection():yield this.resumeConnection(e),this.clearPendingReconnect(),this.fullReconnectOnNext=!1}catch(s){this.reconnectAttempts+=1;let l=!0;s instanceof xi?(this.log.debug("received unrecoverable error",Object.assign(Object.assign({},this.logContext),{error:s})),l=!1):s instanceof Wh||(this.fullReconnectOnNext=!0),l?this.handleDisconnect("reconnect",Ih.RR_UNKNOWN):(this.log.info("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(Date.now()-this.reconnectStart,"ms. giving up"),this.logContext),this.emit(tt.Disconnected),yield this.close())}finally{this.attemptingReconnect=!1}}})}getNextRetryDelay(e){try{return this.reconnectPolicy.nextRetryDelayInMs(e)}catch(n){this.log.warn("encountered error in reconnect policy",Object.assign(Object.assign({},this.logContext),{error:n}))}return null}restartConnection(e){return Q(this,void 0,void 0,function*(){var n,r,a;try{if(!this.url||!this.token)throw new xi("could not reconnect, url or token not saved");this.log.info("reconnecting, attempt: ".concat(this.reconnectAttempts),this.logContext),this.emit(tt.Restarting),this.client.isDisconnected||(yield this.client.sendLeave()),yield this.cleanupPeerConnections(),yield this.cleanupClient();let s;try{if(!this.signalOpts)throw this.log.warn("attempted connection restart, without signal options present",this.logContext),new Wh;s=yield this.join(e??this.url,this.token,this.signalOpts)}catch(l){throw l instanceof br&&l.reason===Un.NotAllowed?new xi("could not reconnect, token might be expired"):new Wh}if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(this.client.setReconnected(),this.emit(tt.SignalRestarted,s),yield this.waitForPCReconnected(),this.client.currentState!==Or.CONNECTED)throw new Wh("Signal connection got severed during reconnect");(n=this.regionUrlProvider)===null||n===void 0||n.resetAttempts(),this.emit(tt.Restarted)}catch(s){const l=yield(r=this.regionUrlProvider)===null||r===void 0?void 0:r.getNextBestRegionUrl();if(l){yield this.restartConnection(l);return}else throw(a=this.regionUrlProvider)===null||a===void 0||a.resetAttempts(),s}})}resumeConnection(e){return Q(this,void 0,void 0,function*(){var n;if(!this.url||!this.token)throw new xi("could not reconnect, url or token not saved");if(!this.pcManager)throw new xi("publisher and subscriber connections unset");this.log.info("resuming signal connection, attempt ".concat(this.reconnectAttempts),this.logContext),this.emit(tt.Resuming);let r;try{this.setupSignalClientCallbacks(),r=yield this.client.reconnect(this.url,this.token,this.participantSid,e)}catch(a){let s="";throw a instanceof Error&&(s=a.message,this.log.error(a.message,Object.assign(Object.assign({},this.logContext),{error:a}))),a instanceof br&&a.reason===Un.NotAllowed?new xi("could not reconnect, token might be expired"):a instanceof br&&a.reason===Un.LeaveRequest?a:new Wh(s)}if(this.emit(tt.SignalResumed),r){const a=this.makeRTCConfiguration(r);this.pcManager.updateConfiguration(a)}else this.log.warn("Did not receive reconnect response",this.logContext);if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(yield this.pcManager.triggerIceRestart(),yield this.waitForPCReconnected(),this.client.currentState!==Or.CONNECTED)throw new Wh("Signal connection got severed during reconnect");this.client.setReconnected(),((n=this.reliableDC)===null||n===void 0?void 0:n.readyState)==="open"&&this.reliableDC.id===null&&this.createDataChannels(),this.emit(tt.Resumed)})}waitForPCInitialConnection(e,n){return Q(this,void 0,void 0,function*(){if(!this.pcManager)throw new xi("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(n,e)})}waitForPCReconnected(){return Q(this,void 0,void 0,function*(){this.pcState=Es.Reconnecting,this.log.debug("waiting for peer connection to reconnect",this.logContext);try{if(yield io(iz),!this.pcManager)throw new xi("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(void 0,this.peerConnectionTimeout),this.pcState=Es.Connected}catch(e){throw this.pcState=Es.Disconnected,new br("could not establish PC connection, ".concat(e.message),Un.InternalError)}})}publishRpcResponse(e,n,r,a){return Q(this,void 0,void 0,function*(){const s=new ro({destinationIdentities:[e],kind:$n.RELIABLE,value:{case:"rpcResponse",value:new qD({requestId:n,value:a?{case:"error",value:a.toProto()}:{case:"payload",value:r??""}})}});yield this.sendDataPacket(s,$n.RELIABLE)})}publishRpcAck(e,n){return Q(this,void 0,void 0,function*(){const r=new ro({destinationIdentities:[e],kind:$n.RELIABLE,value:{case:"rpcAck",value:new $D({requestId:n})}});yield this.sendDataPacket(r,$n.RELIABLE)})}sendDataPacket(e,n){return Q(this,void 0,void 0,function*(){const r=e.toBinary();yield this.ensurePublisherConnected(n);const a=this.dataChannelForKind(n);a&&a.send(r),this.updateAndEmitDCBufferStatus(n)})}waitForBufferStatusLow(e){return new Promise((n,r)=>Q(this,void 0,void 0,function*(){if(this.isBufferStatusLow(e))n();else{const a=()=>r("Engine closed");for(this.once(tt.Closing,a);!this.dcBufferStatus.get(e);)yield io(10);this.off(tt.Closing,a),n()}}))}ensureDataTransportConnected(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.subscriberPrimary;return function*(){var s;if(!r.pcManager)throw new xi("PC manager is closed");const l=a?r.pcManager.subscriber:r.pcManager.publisher,c=a?"Subscriber":"Publisher";if(!l)throw new br("".concat(c," connection not set"),Un.InternalError);let h=!1;!a&&!r.dataChannelForKind(n,a)&&(r.createDataChannels(),h=!0),!h&&!a&&!r.pcManager.publisher.isICEConnected&&r.pcManager.publisher.getICEConnectionState()!=="checking"&&(h=!0),h&&r.negotiate();const p=r.dataChannelForKind(n,a);if((p==null?void 0:p.readyState)==="open")return;const v=new Date().getTime()+r.peerConnectionTimeout;for(;new Date().getTime()<v;){if(l.isICEConnected&&((s=r.dataChannelForKind(n,a))===null||s===void 0?void 0:s.readyState)==="open")return;yield io(50)}throw new br("could not establish ".concat(c," connection, state: ").concat(l.getICEConnectionState()),Un.InternalError)}()})}ensurePublisherConnected(e){return Q(this,void 0,void 0,function*(){this.publisherConnectionPromise||(this.publisherConnectionPromise=this.ensureDataTransportConnected(e,!1)),yield this.publisherConnectionPromise})}verifyTransport(){return!(!this.pcManager||this.pcManager.currentState!==Jr.CONNECTED||!this.client.ws||this.client.ws.readyState===WebSocket.CLOSED)}negotiate(){return Q(this,void 0,void 0,function*(){return new Promise((e,n)=>Q(this,void 0,void 0,function*(){if(!this.pcManager){n(new rT("PC manager is closed"));return}this.pcManager.requirePublisher(),this.pcManager.publisher.getTransceivers().length==0&&!this.lossyDC&&!this.reliableDC&&this.createDataChannels();const r=new AbortController,a=()=>{r.abort(),this.log.debug("engine disconnected while negotiation was ongoing",this.logContext),e()};this.isClosed&&n("cannot negotiate on closed engine"),this.on(tt.Closing,a),this.pcManager.publisher.once(qh.RTPVideoPayloadTypes,s=>{const l=new Map;s.forEach(c=>{const h=c.codec.toLowerCase();mV(h)&&l.set(c.payload,h)}),this.emit(tt.RTPVideoMapUpdate,l)});try{yield this.pcManager.negotiate(r),e()}catch(s){s instanceof rT&&(this.fullReconnectOnNext=!0),this.handleDisconnect("negotiation",Ih.RR_UNKNOWN),n(s)}finally{this.off(tt.Closing,a)}}))})}dataChannelForKind(e,n){if(n){if(e===$n.LOSSY)return this.lossyDCSub;if(e===$n.RELIABLE)return this.reliableDCSub}else{if(e===$n.LOSSY)return this.lossyDC;if(e===$n.RELIABLE)return this.reliableDC}}sendSyncState(e,n){var r,a;if(!this.pcManager){this.log.warn("sync state cannot be sent without peer connection setup",this.logContext);return}const s=this.pcManager.subscriber.getLocalDescription(),l=this.pcManager.subscriber.getRemoteDescription(),c=(a=(r=this.signalOpts)===null||r===void 0?void 0:r.autoSubscribe)!==null&&a!==void 0?a:!0,h=new Array,p=new Array;e.forEach(v=>{v.isDesired!==c&&h.push(v.trackSid),v.isEnabled||p.push(v.trackSid)}),this.client.sendSyncState(new uA({answer:s?sb({sdp:s.sdp,type:s.type}):void 0,offer:l?sb({sdp:l.sdp,type:l.type}):void 0,subscription:new q0({trackSids:h,subscribe:!c,participantTracks:[]}),publishTracks:xV(n),dataChannels:this.dataChannelsInfo(),trackSidsDisabled:p}))}failNext(){this.shouldFailNext=!0}dataChannelsInfo(){const e=[],n=(r,a)=>{(r==null?void 0:r.id)!==void 0&&r.id!==null&&e.push(new cA({label:r.label,id:r.id,target:a}))};return n(this.dataChannelForKind($n.LOSSY),Ts.PUBLISHER),n(this.dataChannelForKind($n.RELIABLE),Ts.PUBLISHER),n(this.dataChannelForKind($n.LOSSY,!0),Ts.SUBSCRIBER),n(this.dataChannelForKind($n.RELIABLE,!0),Ts.SUBSCRIBER),e}clearReconnectTimeout(){this.reconnectTimeout&&Qi.clearTimeout(this.reconnectTimeout)}clearPendingReconnect(){this.clearReconnectTimeout(),this.reconnectAttempts=0}registerOnLineListener(){ao()&&window.addEventListener("online",this.handleBrowserOnLine)}deregisterOnLineListener(){ao()&&window.removeEventListener("online",this.handleBrowserOnLine)}}class Wh extends Error{}function oz(t){return t!==void 0&&t>13}function sz(t,e){const n=t.participantIdentity?t.participantIdentity:e.participantIdentity;t.participantIdentity=n,e.participantIdentity=n;const r=t.destinationIdentities.length!==0?t.destinationIdentities:e.destinationIdentities;t.destinationIdentities=r,e.destinationIdentities=r}class UT{constructor(e,n){this.lastUpdateAt=0,this.settingsCacheTime=3e3,this.attemptedRegions=[],this.serverUrl=new URL(e),this.token=n}updateToken(e){this.token=e}isCloud(){return hT(this.serverUrl)}getServerUrl(){return this.serverUrl}getNextBestRegionUrl(e){return Q(this,void 0,void 0,function*(){if(!this.isCloud())throw Error("region availability is only supported for LiveKit Cloud domains");(!this.regionSettings||Date.now()-this.lastUpdateAt>this.settingsCacheTime)&&(this.regionSettings=yield this.fetchRegionSettings(e));const n=this.regionSettings.regions.filter(r=>!this.attemptedRegions.find(a=>a.url===r.url));if(n.length>0){const r=n[0];return this.attemptedRegions.push(r),Nn.debug("next region: ".concat(r.region)),r.url}else return null})}resetAttempts(){this.attemptedRegions=[]}fetchRegionSettings(e){return Q(this,void 0,void 0,function*(){const n=yield fetch("".concat(lz(this.serverUrl),"/regions"),{headers:{authorization:"Bearer ".concat(this.token)},signal:e});if(n.ok){const r=yield n.json();return this.lastUpdateAt=Date.now(),r}else throw new br("Could not fetch region settings: ".concat(n.statusText),n.status===401?Un.NotAllowed:Un.InternalError,n.status)})}setServerReportedRegions(e){this.regionSettings=e,this.lastUpdateAt=Date.now()}}function lz(t){return"".concat(t.protocol.replace("ws","http"),"//").concat(t.host,"/settings")}class zO{get info(){return this._info}constructor(e,n,r){this.reader=n,this.totalByteSize=r,this._info=e,this.bytesReceived=0}}class uz extends zO{handleChunkReceived(e){var n;this.bytesReceived+=e.content.byteLength;const r=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(n=this.onProgress)===null||n===void 0||n.call(this,r)}[Symbol.asyncIterator](){const e=this.reader.getReader();return{next:()=>Q(this,void 0,void 0,function*(){try{const{done:n,value:r}=yield e.read();return n?{done:!0,value:void 0}:(this.handleChunkReceived(r),{done:!1,value:r.content})}catch{return{done:!0,value:void 0}}}),return(){return Q(this,void 0,void 0,function*(){return e.releaseLock(),{done:!0,value:void 0}})}}}readAll(){return Q(this,void 0,void 0,function*(){var e,n,r,a;let s=new Set;try{for(var l=!0,c=pc(this),h;h=yield c.next(),e=h.done,!e;l=!0){a=h.value,l=!1;const p=a;s.add(p)}}catch(p){n={error:p}}finally{try{!l&&!e&&(r=c.return)&&(yield r.call(c))}finally{if(n)throw n.error}}return Array.from(s)})}}class cz extends zO{constructor(e,n,r){super(e,n,r),this.receivedChunks=new Map}handleChunkReceived(e){var n;const r=ab(e.chunkIndex),a=this.receivedChunks.get(r);if(a&&a.version>e.version)return;this.receivedChunks.set(r,e),this.bytesReceived+=e.content.byteLength;const s=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;(n=this.onProgress)===null||n===void 0||n.call(this,s)}[Symbol.asyncIterator](){const e=this.reader.getReader(),n=new TextDecoder;return{next:()=>Q(this,void 0,void 0,function*(){try{const{done:r,value:a}=yield e.read();return r?{done:!0,value:void 0}:(this.handleChunkReceived(a),{done:!1,value:n.decode(a.content)})}catch{return{done:!0,value:void 0}}}),return(){return Q(this,void 0,void 0,function*(){return e.releaseLock(),{done:!0,value:void 0}})}}}readAll(){return Q(this,void 0,void 0,function*(){var e,n,r,a;let s="";try{for(var l=!0,c=pc(this),h;h=yield c.next(),e=h.done,!e;l=!0)a=h.value,l=!1,s+=a}catch(p){n={error:p}}finally{try{!l&&!e&&(r=c.return)&&(yield r.call(c))}finally{if(n)throw n.error}}return s})}}class BO{constructor(e,n,r){this.writableStream=e,this.defaultWriter=e.getWriter(),this.onClose=r,this.info=n}write(e){return this.defaultWriter.write(e)}close(){return Q(this,void 0,void 0,function*(){var e;yield this.defaultWriter.close(),this.defaultWriter.releaseLock(),(e=this.onClose)===null||e===void 0||e.call(this)})}}class dz extends BO{}class fz extends BO{}class HO extends De{constructor(e,n,r,a,s){super(e,r,s),this.sid=n,this.receiver=a}get isLocal(){return!1}setMuted(e){this.isMuted!==e&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?Qe.Muted:Qe.Unmuted,this))}setMediaStream(e){this.mediaStream=e;const n=r=>{r.track===this._mediaStreamTrack&&(e.removeEventListener("removetrack",n),this.receiver&&"playoutDelayHint"in this.receiver&&(this.receiver.playoutDelayHint=void 0),this.receiver=void 0,this._currentBitrate=0,this.emit(Qe.Ended,this))};e.addEventListener("removetrack",n)}start(){this.startMonitor(),super.enable()}stop(){this.stopMonitor(),super.disable()}getRTCStatsReport(){return Q(this,void 0,void 0,function*(){var e;return!((e=this.receiver)===null||e===void 0)&&e.getStats?yield this.receiver.getStats():void 0})}setPlayoutDelay(e){this.receiver?"playoutDelayHint"in this.receiver?this.receiver.playoutDelayHint=e:this.log.warn("Playout delay not supported in this browser"):this.log.warn("Cannot set playout delay, track already ended")}getPlayoutDelay(){if(this.receiver){if("playoutDelayHint"in this.receiver)return this.receiver.playoutDelayHint;this.log.warn("Playout delay not supported in this browser")}else this.log.warn("Cannot get playout delay, track already ended");return 0}startMonitor(){this.monitorInterval||(this.monitorInterval=setInterval(()=>this.monitorReceiver(),OT)),wV()&&this.registerTimeSyncUpdate()}registerTimeSyncUpdate(){const e=()=>{var n;this.timeSyncHandle=requestAnimationFrame(()=>e());const r=(n=this.receiver)===null||n===void 0?void 0:n.getSynchronizationSources()[0];if(r){const{timestamp:a,rtpTimestamp:s}=r;s&&this.rtpTimestamp!==s&&(this.emit(Qe.TimeSyncUpdate,{timestamp:a,rtpTimestamp:s}),this.rtpTimestamp=s)}};e()}}class $O extends HO{constructor(e,n,r,a,s,l){super(e,n,De.Kind.Audio,r,l),this.monitorReceiver=()=>Q(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}const c=yield this.getReceiverStats();c&&this.prevStats&&this.receiver&&(this._currentBitrate=lb(c,this.prevStats)),this.prevStats=c}),this.audioContext=a,this.webAudioPluginNodes=[],s&&(this.sinkId=s.deviceId)}setVolume(e){var n;for(const r of this.attachedElements)this.audioContext?(n=this.gainNode)===null||n===void 0||n.gain.setTargetAtTime(e,0,.1):r.volume=e;fl()&&this._mediaStreamTrack._setVolume(e),this.elementVolume=e}getVolume(){if(this.elementVolume)return this.elementVolume;if(fl())return 1;let e=0;return this.attachedElements.forEach(n=>{n.volume>e&&(e=n.volume)}),e}setSinkId(e){return Q(this,void 0,void 0,function*(){this.sinkId=e,yield Promise.all(this.attachedElements.map(n=>{if(fT(n))return n.setSinkId(e)}))})}attach(e){const n=this.attachedElements.length===0;return e?super.attach(e):e=super.attach(),this.sinkId&&fT(e)&&e.setSinkId(this.sinkId),this.audioContext&&n&&(this.log.debug("using audio context mapping",this.logContext),this.connectWebAudio(this.audioContext,e),e.volume=0,e.muted=!0),this.elementVolume&&this.setVolume(this.elementVolume),e}detach(e){let n;return e?(n=super.detach(e),this.audioContext&&(this.attachedElements.length>0?this.connectWebAudio(this.audioContext,this.attachedElements[0]):this.disconnectWebAudio())):(n=super.detach(),this.disconnectWebAudio()),n}setAudioContext(e){this.audioContext=e,e&&this.attachedElements.length>0?this.connectWebAudio(e,this.attachedElements[0]):e||this.disconnectWebAudio()}setWebAudioPlugins(e){this.webAudioPluginNodes=e,this.attachedElements.length>0&&this.audioContext&&this.connectWebAudio(this.audioContext,this.attachedElements[0])}connectWebAudio(e,n){this.disconnectWebAudio(),this.sourceNode=e.createMediaStreamSource(n.srcObject);let r=this.sourceNode;this.webAudioPluginNodes.forEach(a=>{r.connect(a),r=a}),this.gainNode=e.createGain(),r.connect(this.gainNode),this.gainNode.connect(e.destination),this.elementVolume&&this.gainNode.gain.setTargetAtTime(this.elementVolume,0,.1),e.state!=="running"&&e.resume().then(()=>{e.state!=="running"&&this.emit(Qe.AudioPlaybackFailed,new Error("Audio Context couldn't be started automatically"))}).catch(a=>{this.emit(Qe.AudioPlaybackFailed,a)})}disconnectWebAudio(){var e,n;(e=this.gainNode)===null||e===void 0||e.disconnect(),(n=this.sourceNode)===null||n===void 0||n.disconnect(),this.gainNode=void 0,this.sourceNode=void 0}getReceiverStats(){return Q(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let n;return e.forEach(r=>{r.type==="inbound-rtp"&&(n={type:"audio",streamId:r.id,timestamp:r.timestamp,jitter:r.jitter,bytesReceived:r.bytesReceived,concealedSamples:r.concealedSamples,concealmentEvents:r.concealmentEvents,silentConcealedSamples:r.silentConcealedSamples,silentConcealmentEvents:r.silentConcealmentEvents,totalAudioEnergy:r.totalAudioEnergy,totalSamplesDuration:r.totalSamplesDuration})}),n})}}const FT=100;class hz extends HO{constructor(e,n,r,a,s){super(e,n,De.Kind.Video,r,s),this.elementInfos=[],this.monitorReceiver=()=>Q(this,void 0,void 0,function*(){if(!this.receiver){this._currentBitrate=0;return}const l=yield this.getReceiverStats();l&&this.prevStats&&this.receiver&&(this._currentBitrate=lb(l,this.prevStats)),this.prevStats=l}),this.debouncedHandleResize=RT(()=>{this.updateDimensions()},FT),this.adaptiveStreamSettings=a}get isAdaptiveStream(){return this.adaptiveStreamSettings!==void 0}get mediaStreamTrack(){return this._mediaStreamTrack}setMuted(e){super.setMuted(e),this.attachedElements.forEach(n=>{e?zh(this._mediaStreamTrack,n):Vh(this._mediaStreamTrack,n)})}attach(e){if(e?super.attach(e):e=super.attach(),this.adaptiveStreamSettings&&this.elementInfos.find(n=>n.element===e)===void 0){const n=new pz(e);this.observeElementInfo(n)}return e}observeElementInfo(e){this.adaptiveStreamSettings&&this.elementInfos.find(n=>n===e)===void 0?(e.handleResize=()=>{this.debouncedHandleResize()},e.handleVisibilityChanged=()=>{this.updateVisibility()},this.elementInfos.push(e),e.observe(),this.debouncedHandleResize(),this.updateVisibility()):this.log.warn("visibility resize observer not triggered",this.logContext)}stopObservingElementInfo(e){if(!this.isAdaptiveStream){this.log.warn("stopObservingElementInfo ignored",this.logContext);return}const n=this.elementInfos.filter(r=>r===e);for(const r of n)r.stopObserving();this.elementInfos=this.elementInfos.filter(r=>r!==e),this.updateVisibility(),this.debouncedHandleResize()}detach(e){let n=[];if(e)return this.stopObservingElement(e),super.detach(e);n=super.detach();for(const r of n)this.stopObservingElement(r);return n}getDecoderImplementation(){var e;return(e=this.prevStats)===null||e===void 0?void 0:e.decoderImplementation}getReceiverStats(){return Q(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let n,r="",a=new Map;return e.forEach(s=>{s.type==="inbound-rtp"?(r=s.codecId,n={type:"video",streamId:s.id,framesDecoded:s.framesDecoded,framesDropped:s.framesDropped,framesReceived:s.framesReceived,packetsReceived:s.packetsReceived,packetsLost:s.packetsLost,frameWidth:s.frameWidth,frameHeight:s.frameHeight,pliCount:s.pliCount,firCount:s.firCount,nackCount:s.nackCount,jitter:s.jitter,timestamp:s.timestamp,bytesReceived:s.bytesReceived,decoderImplementation:s.decoderImplementation}):s.type==="codec"&&a.set(s.id,s)}),n&&r!==""&&a.get(r)&&(n.mimeType=a.get(r).mimeType),n})}stopObservingElement(e){const n=this.elementInfos.filter(r=>r.element===e);for(const r of n)this.stopObservingElementInfo(r)}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return Q(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),this.isAdaptiveStream&&this.updateVisibility()})}updateVisibility(){var e,n;const r=this.elementInfos.reduce((c,h)=>Math.max(c,h.visibilityChangedAt||0),0),a=!((n=(e=this.adaptiveStreamSettings)===null||e===void 0?void 0:e.pauseVideoInBackground)!==null&&n!==void 0)||n?this.isInBackground:!1,s=this.elementInfos.some(c=>c.pictureInPicture),l=this.elementInfos.some(c=>c.visible)&&!a||s;if(this.lastVisible!==l){if(!l&&Date.now()-r<FT){Qi.setTimeout(()=>{this.updateVisibility()},FT);return}this.lastVisible=l,this.emit(Qe.VisibilityChanged,l,this)}}updateDimensions(){var e,n;let r=0,a=0;const s=this.getPixelDensity();for(const l of this.elementInfos){const c=l.width()*s,h=l.height()*s;c+h>r+a&&(r=c,a=h)}((e=this.lastDimensions)===null||e===void 0?void 0:e.width)===r&&((n=this.lastDimensions)===null||n===void 0?void 0:n.height)===a||(this.lastDimensions={width:r,height:a},this.emit(Qe.VideoDimensionsChanged,this.lastDimensions,this))}getPixelDensity(){var e;const n=(e=this.adaptiveStreamSettings)===null||e===void 0?void 0:e.pixelDensity;return n==="screen"?uO():n||(uO()>2?2:1)}}class pz{get visible(){return this.isPiP||this.isIntersecting}get pictureInPicture(){return this.isPiP}constructor(e,n){this.onVisibilityChanged=r=>{var a;const{target:s,isIntersecting:l}=r;s===this.element&&(this.isIntersecting=l,this.isPiP=Mg(this.element),this.visibilityChangedAt=Date.now(),(a=this.handleVisibilityChanged)===null||a===void 0||a.call(this))},this.onEnterPiP=()=>{var r,a,s;(a=(r=window.documentPictureInPicture)===null||r===void 0?void 0:r.window)===null||a===void 0||a.addEventListener("pagehide",this.onLeavePiP),this.isPiP=Mg(this.element),(s=this.handleVisibilityChanged)===null||s===void 0||s.call(this)},this.onLeavePiP=()=>{var r;this.isPiP=Mg(this.element),(r=this.handleVisibilityChanged)===null||r===void 0||r.call(this)},this.element=e,this.isIntersecting=n??jT(e),this.isPiP=ao()&&Mg(e),this.visibilityChangedAt=0}width(){return this.element.clientWidth}height(){return this.element.clientHeight}observe(){var e,n,r;this.isIntersecting=jT(this.element),this.isPiP=Mg(this.element),this.element.handleResize=()=>{var a;(a=this.handleResize)===null||a===void 0||a.call(this)},this.element.handleVisibilityChanged=this.onVisibilityChanged,dO().observe(this.element),cO().observe(this.element),this.element.addEventListener("enterpictureinpicture",this.onEnterPiP),this.element.addEventListener("leavepictureinpicture",this.onLeavePiP),(e=window.documentPictureInPicture)===null||e===void 0||e.addEventListener("enter",this.onEnterPiP),(r=(n=window.documentPictureInPicture)===null||n===void 0?void 0:n.window)===null||r===void 0||r.addEventListener("pagehide",this.onLeavePiP)}stopObserving(){var e,n,r,a,s;(e=dO())===null||e===void 0||e.unobserve(this.element),(n=cO())===null||n===void 0||n.unobserve(this.element),this.element.removeEventListener("enterpictureinpicture",this.onEnterPiP),this.element.removeEventListener("leavepictureinpicture",this.onLeavePiP),(r=window.documentPictureInPicture)===null||r===void 0||r.removeEventListener("enter",this.onEnterPiP),(s=(a=window.documentPictureInPicture)===null||a===void 0?void 0:a.window)===null||s===void 0||s.removeEventListener("pagehide",this.onLeavePiP)}}function Mg(t){var e,n;return document.pictureInPictureElement===t?!0:!((e=window.documentPictureInPicture)===null||e===void 0)&&e.window?jT(t,(n=window.documentPictureInPicture)===null||n===void 0?void 0:n.window):!1}function jT(t,e){const n=e||window;let r=t.offsetTop,a=t.offsetLeft;const s=t.offsetWidth,l=t.offsetHeight,{hidden:c}=t,{display:h}=getComputedStyle(t);for(;t.offsetParent;)t=t.offsetParent,r+=t.offsetTop,a+=t.offsetLeft;return r<n.pageYOffset+n.innerHeight&&a<n.pageXOffset+n.innerWidth&&r+l>n.pageYOffset&&a+s>n.pageXOffset&&!c&&h!=="none"}class du extends dl.EventEmitter{constructor(e,n,r,a){var s;super(),this.metadataMuted=!1,this.encryption=Po.NONE,this.log=Nn,this.handleMuted=()=>{this.emit(Qe.Muted)},this.handleUnmuted=()=>{this.emit(Qe.Unmuted)},this.log=lu((s=a==null?void 0:a.loggerName)!==null&&s!==void 0?s:xs.Publication),this.loggerContextCb=this.loggerContextCb,this.setMaxListeners(100),this.kind=e,this.trackSid=n,this.trackName=r,this.source=De.Source.Unknown}setTrack(e){this.track&&(this.track.off(Qe.Muted,this.handleMuted),this.track.off(Qe.Unmuted,this.handleUnmuted)),this.track=e,e&&(e.on(Qe.Muted,this.handleMuted),e.on(Qe.Unmuted,this.handleUnmuted))}get logContext(){var e;return Object.assign(Object.assign({},(e=this.loggerContextCb)===null||e===void 0?void 0:e.call(this)),ar(this))}get isMuted(){return this.metadataMuted}get isEnabled(){return!0}get isSubscribed(){return this.track!==void 0}get isEncrypted(){return this.encryption!==Po.NONE}get audioTrack(){if(cu(this.track))return this.track}get videoTrack(){if($h(this.track))return this.track}updateInfo(e){this.trackSid=e.sid,this.trackName=e.name,this.source=De.sourceFromProto(e.source),this.mimeType=e.mimeType,this.kind===De.Kind.Video&&e.width>0&&(this.dimensions={width:e.width,height:e.height},this.simulcasted=e.simulcast),this.encryption=e.encryption,this.trackInfo=e,this.log.debug("update publication info",Object.assign(Object.assign({},this.logContext),{info:e}))}}(function(t){(function(e){e.Desired="desired",e.Subscribed="subscribed",e.Unsubscribed="unsubscribed"})(t.SubscriptionStatus||(t.SubscriptionStatus={})),function(e){e.Allowed="allowed",e.NotAllowed="not_allowed"}(t.PermissionStatus||(t.PermissionStatus={}))})(du||(du={}));class VT extends du{get isUpstreamPaused(){var e;return(e=this.track)===null||e===void 0?void 0:e.isUpstreamPaused}constructor(e,n,r,a){super(e,n.sid,n.name,a),this.track=void 0,this.handleTrackEnded=()=>{this.emit(Qe.Ended)},this.updateInfo(n),this.setTrack(r)}setTrack(e){this.track&&this.track.off(Qe.Ended,this.handleTrackEnded),super.setTrack(e),e&&e.on(Qe.Ended,this.handleTrackEnded)}get isMuted(){return this.track?this.track.isMuted:super.isMuted}get audioTrack(){return super.audioTrack}get videoTrack(){return super.videoTrack}get isLocal(){return!0}mute(){return Q(this,void 0,void 0,function*(){var e;return(e=this.track)===null||e===void 0?void 0:e.mute()})}unmute(){return Q(this,void 0,void 0,function*(){var e;return(e=this.track)===null||e===void 0?void 0:e.unmute()})}pauseUpstream(){return Q(this,void 0,void 0,function*(){var e;yield(e=this.track)===null||e===void 0?void 0:e.pauseUpstream()})}resumeUpstream(){return Q(this,void 0,void 0,function*(){var e;yield(e=this.track)===null||e===void 0?void 0:e.resumeUpstream()})}getTrackFeatures(){var e;if(cu(this.track)){const n=this.track.getSourceTrackSettings(),r=new Set;return n.autoGainControl&&r.add(ul.TF_AUTO_GAIN_CONTROL),n.echoCancellation&&r.add(ul.TF_ECHO_CANCELLATION),n.noiseSuppression&&r.add(ul.TF_NOISE_SUPPRESSION),n.channelCount&&n.channelCount>1&&r.add(ul.TF_STEREO),!((e=this.options)===null||e===void 0)&&e.dtx||r.add(ul.TF_NO_DTX),this.track.enhancedNoiseCancellation&&r.add(ul.TF_ENHANCED_NOISE_CANCELLATION),Array.from(r.values())}else return[]}}function fb(t,e){return Q(this,void 0,void 0,function*(){t??(t={});let n=!1;const{audioProcessor:r,videoProcessor:a,optionsWithoutProcessor:s}=bO(t);let l=s.audio,c=s.video;if(r&&typeof s.audio=="object"&&(s.audio.processor=r),a&&typeof s.video=="object"&&(s.video.processor=a),t.audio&&typeof s.audio=="object"&&typeof s.audio.deviceId=="string"){const b=s.audio.deviceId;s.audio.deviceId={exact:b},n=!0,l=Object.assign(Object.assign({},s.audio),{deviceId:{ideal:b}})}if(s.video&&typeof s.video=="object"&&typeof s.video.deviceId=="string"){const b=s.video.deviceId;s.video.deviceId={exact:b},n=!0,c=Object.assign(Object.assign({},s.video),{deviceId:{ideal:b}})}(s.audio===!0||typeof s.audio=="object"&&!s.audio.deviceId)&&(s.audio={deviceId:"default"}),(s.video===!0||typeof s.video=="object"&&!s.video.deviceId)&&(s.video={deviceId:"default"});const h=mO(s,PO,DO),p=CT(h),v=navigator.mediaDevices.getUserMedia(p);s.audio&&(zi.userMediaPromiseMap.set("audioinput",v),v.catch(()=>zi.userMediaPromiseMap.delete("audioinput"))),s.video&&(zi.userMediaPromiseMap.set("videoinput",v),v.catch(()=>zi.userMediaPromiseMap.delete("videoinput")));try{const b=yield v;return yield Promise.all(b.getTracks().map(k=>Q(this,void 0,void 0,function*(){const T=k.kind==="audio";let E=T?h.audio:h.video;(typeof E=="boolean"||!E)&&(E={});let R;const M=T?p.audio:p.video;typeof M!="boolean"&&(R=M);const A=k.getSettings().deviceId;R!=null&&R.deviceId&&Sc(R.deviceId)!==A?R.deviceId=A:R||(R={deviceId:A});const U=WV(k,R,e);return U.kind===De.Kind.Video?U.source=De.Source.Camera:U.kind===De.Kind.Audio&&(U.source=De.Source.Microphone),U.mediaStream=b,cu(U)&&r?yield U.setProcessor(r):$h(U)&&a&&(yield U.setProcessor(a)),U})))}catch(b){if(!n)throw b;return fb(Object.assign(Object.assign({},t),{audio:l,video:c}),e)}})}function mz(t){return Q(this,void 0,void 0,function*(){return(yield fb({audio:!1,video:!0}))[0]})}function gz(t){return Q(this,void 0,void 0,function*(){return(yield fb({audio:!0,video:!1}))[0]})}var Tc;(function(t){t.Excellent="excellent",t.Good="good",t.Poor="poor",t.Lost="lost",t.Unknown="unknown"})(Tc||(Tc={}));function vz(t){switch(t){case Tg.EXCELLENT:return Tc.Excellent;case Tg.GOOD:return Tc.Good;case Tg.POOR:return Tc.Poor;case Tg.LOST:return Tc.Lost;default:return Tc.Unknown}}class qO extends dl.EventEmitter{get logContext(){var e,n;return Object.assign({},(n=(e=this.loggerOptions)===null||e===void 0?void 0:e.loggerContextCb)===null||n===void 0?void 0:n.call(e))}get isEncrypted(){return this.trackPublications.size>0&&Array.from(this.trackPublications.values()).every(e=>e.isEncrypted)}get isAgent(){var e;return((e=this.permissions)===null||e===void 0?void 0:e.agent)||this.kind===_g.AGENT}get kind(){return this._kind}get attributes(){return Object.freeze(Object.assign({},this._attributes))}constructor(e,n,r,a,s,l){let c=arguments.length>6&&arguments[6]!==void 0?arguments[6]:_g.STANDARD;var h;super(),this.audioLevel=0,this.isSpeaking=!1,this._connectionQuality=Tc.Unknown,this.log=Nn,this.log=lu((h=l==null?void 0:l.loggerName)!==null&&h!==void 0?h:xs.Participant),this.loggerOptions=l,this.setMaxListeners(100),this.sid=e,this.identity=n,this.name=r,this.metadata=a,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this._kind=c,this._attributes=s??{}}getTrackPublications(){return Array.from(this.trackPublications.values())}getTrackPublication(e){for(const[,n]of this.trackPublications)if(n.source===e)return n}getTrackPublicationByName(e){for(const[,n]of this.trackPublications)if(n.trackName===e)return n}get connectionQuality(){return this._connectionQuality}get isCameraEnabled(){var e;const n=this.getTrackPublication(De.Source.Camera);return!(!((e=n==null?void 0:n.isMuted)!==null&&e!==void 0)||e)}get isMicrophoneEnabled(){var e;const n=this.getTrackPublication(De.Source.Microphone);return!(!((e=n==null?void 0:n.isMuted)!==null&&e!==void 0)||e)}get isScreenShareEnabled(){return!!this.getTrackPublication(De.Source.ScreenShare)}get isLocal(){return!1}get joinedAt(){return this.participantInfo?new Date(Number.parseInt(this.participantInfo.joinedAt.toString())*1e3):new Date}updateInfo(e){return this.participantInfo&&this.participantInfo.sid===e.sid&&this.participantInfo.version>e.version?!1:(this.identity=e.identity,this.sid=e.sid,this._setName(e.name),this._setMetadata(e.metadata),this._setAttributes(e.attributes),e.permission&&this.setPermissions(e.permission),this.participantInfo=e,this.log.trace("update participant info",Object.assign(Object.assign({},this.logContext),{info:e})),!0)}_setMetadata(e){const n=this.metadata!==e,r=this.metadata;this.metadata=e,n&&this.emit(Ie.ParticipantMetadataChanged,r)}_setName(e){const n=this.name!==e;this.name=e,n&&this.emit(Ie.ParticipantNameChanged,e)}_setAttributes(e){const n=_V(this.attributes,e);this._attributes=e,Object.keys(n).length>0&&this.emit(Ie.AttributesChanged,n)}setPermissions(e){var n,r,a,s,l,c;const h=this.permissions,p=e.canPublish!==((n=this.permissions)===null||n===void 0?void 0:n.canPublish)||e.canSubscribe!==((r=this.permissions)===null||r===void 0?void 0:r.canSubscribe)||e.canPublishData!==((a=this.permissions)===null||a===void 0?void 0:a.canPublishData)||e.hidden!==((s=this.permissions)===null||s===void 0?void 0:s.hidden)||e.recorder!==((l=this.permissions)===null||l===void 0?void 0:l.recorder)||e.canPublishSources.length!==this.permissions.canPublishSources.length||e.canPublishSources.some((v,b)=>{var k;return v!==((k=this.permissions)===null||k===void 0?void 0:k.canPublishSources[b])})||e.canSubscribeMetrics!==((c=this.permissions)===null||c===void 0?void 0:c.canSubscribeMetrics);return this.permissions=e,p&&this.emit(Ie.ParticipantPermissionsChanged,h),p}setIsSpeaking(e){e!==this.isSpeaking&&(this.isSpeaking=e,e&&(this.lastSpokeAt=new Date),this.emit(Ie.IsSpeakingChanged,e))}setConnectionQuality(e){const n=this._connectionQuality;this._connectionQuality=vz(e),n!==this._connectionQuality&&this.emit(Ie.ConnectionQualityChanged,this._connectionQuality)}setAudioContext(e){this.audioContext=e,this.audioTrackPublications.forEach(n=>cu(n.track)&&n.track.setAudioContext(e))}addTrackPublication(e){e.on(Qe.Muted,()=>{this.emit(Ie.TrackMuted,e)}),e.on(Qe.Unmuted,()=>{this.emit(Ie.TrackUnmuted,e)});const n=e;switch(n.track&&(n.track.sid=e.trackSid),this.trackPublications.set(e.trackSid,e),e.kind){case De.Kind.Audio:this.audioTrackPublications.set(e.trackSid,e);break;case De.Kind.Video:this.videoTrackPublications.set(e.trackSid,e);break}}}function yz(t){var e,n,r;if(!t.participantSid&&!t.participantIdentity)throw new Error("Invalid track permission, must provide at least one of participantIdentity and participantSid");return new sA({participantIdentity:(e=t.participantIdentity)!==null&&e!==void 0?e:"",participantSid:(n=t.participantSid)!==null&&n!==void 0?n:"",allTracks:(r=t.allowAll)!==null&&r!==void 0?r:!1,trackSids:t.allowedTrackSids||[]})}const WO=15e3;class hb extends qO{constructor(e,n,r,a,s){super(e,n,void 0,void 0,void 0,{loggerName:a.loggerName,loggerContextCb:()=>this.engine.logContext}),this.pendingPublishing=new Set,this.pendingPublishPromises=new Map,this.participantTrackPermissions=[],this.allParticipantsAllowedToSubscribe=!0,this.encryptionType=Po.NONE,this.enabledPublishVideoCodecs=[],this.pendingAcks=new Map,this.pendingResponses=new Map,this.handleReconnecting=()=>{this.reconnectFuture||(this.reconnectFuture=new hO)},this.handleReconnected=()=>{var l,c;(c=(l=this.reconnectFuture)===null||l===void 0?void 0:l.resolve)===null||c===void 0||c.call(l),this.reconnectFuture=void 0,this.updateTrackSubscriptionPermissions()},this.handleDisconnected=()=>{var l,c;this.reconnectFuture&&(this.reconnectFuture.promise.catch(h=>this.log.warn(h.message,this.logContext)),(c=(l=this.reconnectFuture)===null||l===void 0?void 0:l.reject)===null||c===void 0||c.call(l,"Got disconnected during reconnection attempt"),this.reconnectFuture=void 0)},this.handleSignalRequestResponse=l=>{const{requestId:c,reason:h,message:p}=l,v=this.pendingSignalRequests.get(c);v&&(h!==q1.OK&&v.reject(new nO(p,h)),this.pendingSignalRequests.delete(c))},this.handleDataPacket=l=>{switch(l.value.case){case"rpcResponse":let c=l.value.value,h=null,p=null;c.value.case==="payload"?h=c.value.value:c.value.case==="error"&&(p=ei.fromProto(c.value.value)),this.handleIncomingRpcResponse(c.requestId,h,p);break;case"rpcAck":let v=l.value.value;this.handleIncomingRpcAck(v.requestId);break}},this.updateTrackSubscriptionPermissions=()=>{this.log.debug("updating track subscription permissions",Object.assign(Object.assign({},this.logContext),{allParticipantsAllowed:this.allParticipantsAllowedToSubscribe,participantTrackPermissions:this.participantTrackPermissions})),this.engine.client.sendUpdateSubscriptionPermissions(this.allParticipantsAllowedToSubscribe,this.participantTrackPermissions.map(l=>yz(l)))},this.onTrackUnmuted=l=>{this.onTrackMuted(l,l.isUpstreamPaused)},this.onTrackMuted=(l,c)=>{if(c===void 0&&(c=!0),!l.sid){this.log.error("could not update mute status for unpublished track",Object.assign(Object.assign({},this.logContext),ar(l)));return}this.engine.updateMuteStatus(l.sid,c)},this.onTrackUpstreamPaused=l=>{this.log.debug("upstream paused",Object.assign(Object.assign({},this.logContext),ar(l))),this.onTrackMuted(l,!0)},this.onTrackUpstreamResumed=l=>{this.log.debug("upstream resumed",Object.assign(Object.assign({},this.logContext),ar(l))),this.onTrackMuted(l,l.isMuted)},this.onTrackFeatureUpdate=l=>{const c=this.audioTrackPublications.get(l.sid);if(!c){this.log.warn("Could not update local audio track settings, missing publication for track ".concat(l.sid),this.logContext);return}this.engine.client.sendUpdateLocalAudioTrack(c.trackSid,c.getTrackFeatures())},this.handleSubscribedQualityUpdate=l=>Q(this,void 0,void 0,function*(){var c,h,p,v,b,k;if(!(!((b=this.roomOptions)===null||b===void 0)&&b.dynacast))return;const T=this.videoTrackPublications.get(l.trackSid);if(!T){this.log.warn("received subscribed quality update for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:l.trackSid}));return}if(l.subscribedCodecs.length>0){if(!T.videoTrack)return;const A=yield T.videoTrack.setPublishingCodecs(l.subscribedCodecs);try{for(var E=!0,R=pc(A),M;M=yield R.next(),c=M.done,!c;E=!0){v=M.value,E=!1;const U=v;iV(U)&&(this.log.debug("publish ".concat(U," for ").concat(T.videoTrack.sid),Object.assign(Object.assign({},this.logContext),ar(T))),yield this.publishAdditionalCodecForTrack(T.videoTrack,U,T.options))}}catch(U){h={error:U}}finally{try{!E&&!c&&(p=R.return)&&(yield p.call(R))}finally{if(h)throw h.error}}}else l.subscribedQualities.length>0&&(yield(k=T.videoTrack)===null||k===void 0?void 0:k.setPublishingLayers(l.subscribedQualities))}),this.handleLocalTrackUnpublished=l=>{const c=this.trackPublications.get(l.trackSid);if(!c){this.log.warn("received unpublished event for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:l.trackSid}));return}this.unpublishTrack(c.track)},this.handleTrackEnded=l=>Q(this,void 0,void 0,function*(){if(l.source===De.Source.ScreenShare||l.source===De.Source.ScreenShareAudio)this.log.debug("unpublishing local track due to TrackEnded",Object.assign(Object.assign({},this.logContext),ar(l))),this.unpublishTrack(l);else if(l.isUserProvided)yield l.mute();else if(Qd(l)||Cc(l))try{if(ao())try{const c=yield navigator==null?void 0:navigator.permissions.query({name:l.source===De.Source.Camera?"camera":"microphone"});if(c&&c.state==="denied")throw this.log.warn("user has revoked access to ".concat(l.source),Object.assign(Object.assign({},this.logContext),ar(l))),c.onchange=()=>{c.state!=="denied"&&(l.isMuted||l.restartTrack(),c.onchange=null)},new Error("GetUserMedia Permission denied")}catch{}l.isMuted||(this.log.debug("track ended, attempting to use a different device",Object.assign(Object.assign({},this.logContext),ar(l))),Qd(l)?yield l.restartTrack({deviceId:"default"}):yield l.restartTrack())}catch{this.log.warn("could not restart track, muting instead",Object.assign(Object.assign({},this.logContext),ar(l))),yield l.mute()}}),this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this.engine=r,this.roomOptions=a,this.setupEngine(r),this.activeDeviceMap=new Map([["audioinput","default"],["videoinput","default"],["audiooutput","default"]]),this.pendingSignalRequests=new Map,this.rpcHandlers=s}get lastCameraError(){return this.cameraError}get lastMicrophoneError(){return this.microphoneError}get isE2EEEnabled(){return this.encryptionType!==Po.NONE}getTrackPublication(e){const n=super.getTrackPublication(e);if(n)return n}getTrackPublicationByName(e){const n=super.getTrackPublicationByName(e);if(n)return n}setupEngine(e){this.engine=e,this.engine.on(tt.RemoteMute,(n,r)=>{const a=this.trackPublications.get(n);!a||!a.track||(r?a.mute():a.unmute())}),this.engine.on(tt.Connected,this.handleReconnected).on(tt.SignalRestarted,this.handleReconnected).on(tt.SignalResumed,this.handleReconnected).on(tt.Restarting,this.handleReconnecting).on(tt.Resuming,this.handleReconnecting).on(tt.LocalTrackUnpublished,this.handleLocalTrackUnpublished).on(tt.SubscribedQualityUpdate,this.handleSubscribedQualityUpdate).on(tt.Disconnected,this.handleDisconnected).on(tt.SignalRequestResponse,this.handleSignalRequestResponse).on(tt.DataPacketReceived,this.handleDataPacket)}setMetadata(e){return Q(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({metadata:e})})}setName(e){return Q(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({name:e})})}setAttributes(e){return Q(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({attributes:e})})}requestMetadataUpdate(e){return Q(this,arguments,void 0,function(n){var r=this;let{metadata:a,name:s,attributes:l}=n;return function*(){return new Promise((c,h)=>Q(r,void 0,void 0,function*(){var p,v;try{let b=!1;const k=yield this.engine.client.sendUpdateLocalMetadata((p=a??this.metadata)!==null&&p!==void 0?p:"",(v=s??this.name)!==null&&v!==void 0?v:"",l),T=performance.now();for(this.pendingSignalRequests.set(k,{resolve:c,reject:E=>{h(E),b=!0},values:{name:s,metadata:a,attributes:l}});performance.now()-T<5e3&&!b;){if((!s||this.name===s)&&(!a||this.metadata===a)&&(!l||Object.entries(l).every(E=>{let[R,M]=E;return this.attributes[R]===M||M===""&&!this.attributes[R]}))){this.pendingSignalRequests.delete(k),c();return}yield io(50)}h(new nO("Request to update local metadata timed out","TimeoutError"))}catch(b){b instanceof Error&&h(b)}}))}()})}setCameraEnabled(e,n,r){return this.setTrackEnabled(De.Source.Camera,e,n,r)}setMicrophoneEnabled(e,n,r){return this.setTrackEnabled(De.Source.Microphone,e,n,r)}setScreenShareEnabled(e,n,r){return this.setTrackEnabled(De.Source.ScreenShare,e,n,r)}setPermissions(e){const n=this.permissions,r=super.setPermissions(e);return r&&n&&this.emit(Ie.ParticipantPermissionsChanged,n),r}setE2EEEnabled(e){return Q(this,void 0,void 0,function*(){this.encryptionType=e?Po.GCM:Po.NONE,yield this.republishAllTracks(void 0,!1)})}setTrackEnabled(e,n,r,a){return Q(this,void 0,void 0,function*(){var s,l;this.log.debug("setTrackEnabled",Object.assign(Object.assign({},this.logContext),{source:e,enabled:n})),this.republishPromise&&(yield this.republishPromise);let c=this.getTrackPublication(e);if(n)if(c)yield c.unmute();else{let h;if(this.pendingPublishing.has(e)){const p=yield this.waitForPendingPublicationOfSource(e);return p||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e})),yield p==null?void 0:p.unmute(),p}this.pendingPublishing.add(e);try{switch(e){case De.Source.Camera:h=yield this.createTracks({video:(s=r)!==null&&s!==void 0?s:!0});break;case De.Source.Microphone:h=yield this.createTracks({audio:(l=r)!==null&&l!==void 0?l:!0});break;case De.Source.ScreenShare:h=yield this.createScreenTracks(Object.assign({},r));break;default:throw new uu(e)}}catch(p){throw h==null||h.forEach(v=>{v.stop()}),p instanceof Error&&this.emit(Ie.MediaDevicesError,p),this.pendingPublishing.delete(e),p}try{const p=[];for(const b of h)this.log.info("publishing track",Object.assign(Object.assign({},this.logContext),ar(b))),p.push(this.publishTrack(b,a));[c]=yield Promise.all(p)}catch(p){throw h==null||h.forEach(v=>{v.stop()}),p}finally{this.pendingPublishing.delete(e)}}else if(!(c!=null&&c.track)&&this.pendingPublishing.has(e)&&(c=yield this.waitForPendingPublicationOfSource(e),c||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e}))),c&&c.track)if(e===De.Source.ScreenShare){c=yield this.unpublishTrack(c.track);const h=this.getTrackPublication(De.Source.ScreenShareAudio);h&&h.track&&this.unpublishTrack(h.track)}else yield c.mute();return c})}enableCameraAndMicrophone(){return Q(this,void 0,void 0,function*(){if(!(this.pendingPublishing.has(De.Source.Camera)||this.pendingPublishing.has(De.Source.Microphone))){this.pendingPublishing.add(De.Source.Camera),this.pendingPublishing.add(De.Source.Microphone);try{const e=yield this.createTracks({audio:!0,video:!0});yield Promise.all(e.map(n=>this.publishTrack(n)))}finally{this.pendingPublishing.delete(De.Source.Camera),this.pendingPublishing.delete(De.Source.Microphone)}}})}createTracks(e){return Q(this,void 0,void 0,function*(){var n,r;e??(e={});const a=mO(e,(n=this.roomOptions)===null||n===void 0?void 0:n.audioCaptureDefaults,(r=this.roomOptions)===null||r===void 0?void 0:r.videoCaptureDefaults);try{return(yield fb(a,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext})).map(c=>(cu(c)&&(this.microphoneError=void 0,c.setAudioContext(this.audioContext),c.source=De.Source.Microphone,this.emit(Ie.AudioStreamAcquired)),$h(c)&&(this.cameraError=void 0,c.source=De.Source.Camera),c))}catch(s){throw s instanceof Error&&(e.audio&&(this.microphoneError=s),e.video&&(this.cameraError=s)),s}})}createScreenTracks(e){return Q(this,void 0,void 0,function*(){if(e===void 0&&(e={}),navigator.mediaDevices.getDisplayMedia===void 0)throw new nT("getDisplayMedia not supported");e.resolution===void 0&&!cV()&&(e.resolution=uT.h1080fps30.resolution);const n=TV(e),r=yield navigator.mediaDevices.getDisplayMedia(n),a=r.getVideoTracks();if(a.length===0)throw new uu("no video track found");const s=new db(a[0],void 0,!1,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});s.source=De.Source.ScreenShare,e.contentHint&&(s.mediaStreamTrack.contentHint=e.contentHint);const l=[s];if(r.getAudioTracks().length>0){this.emit(Ie.AudioStreamAcquired);const c=new ub(r.getAudioTracks()[0],void 0,!1,this.audioContext,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});c.source=De.Source.ScreenShareAudio,l.push(c)}return l})}publishTrack(e,n){return Q(this,void 0,void 0,function*(){return this.publishOrRepublishTrack(e,n)})}publishOrRepublishTrack(e,n){return Q(this,arguments,void 0,function(r,a){var s=this;let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return function*(){var c,h,p,v;Qd(r)&&r.setAudioContext(s.audioContext),yield(c=s.reconnectFuture)===null||c===void 0?void 0:c.promise,s.republishPromise&&!l&&(yield s.republishPromise),Hh(r)&&s.pendingPublishPromises.has(r)&&(yield s.pendingPublishPromises.get(r));let b;if(r instanceof MediaStreamTrack)b=r.getConstraints();else{b=r.constraints;let A;switch(r.source){case De.Source.Microphone:A="audioinput";break;case De.Source.Camera:A="videoinput"}A&&s.activeDeviceMap.has(A)&&(b=Object.assign(Object.assign({},b),{deviceId:s.activeDeviceMap.get(A)}))}if(r instanceof MediaStreamTrack)switch(r.kind){case"audio":r=new ub(r,b,!0,s.audioContext,{loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});break;case"video":r=new db(r,b,!0,{loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});break;default:throw new uu("unsupported MediaStreamTrack kind ".concat(r.kind))}else r.updateLoggerOptions({loggerName:s.roomOptions.loggerName,loggerContextCb:()=>s.logContext});let k;if(s.trackPublications.forEach(A=>{A.track&&A.track===r&&(k=A)}),k)return s.log.warn("track has already been published, skipping",Object.assign(Object.assign({},s.logContext),ar(k))),k;const T="channelCount"in r.mediaStreamTrack.getSettings()&&r.mediaStreamTrack.getSettings().channelCount===2||r.mediaStreamTrack.getConstraints().channelCount===2,E=(h=a==null?void 0:a.forceStereo)!==null&&h!==void 0?h:T;E&&(a||(a={}),a.dtx===void 0&&s.log.info("Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.",Object.assign(Object.assign({},s.logContext),ar(r))),a.red===void 0&&s.log.info("Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work."),(p=a.dtx)!==null&&p!==void 0||(a.dtx=!1),(v=a.red)!==null&&v!==void 0||(a.red=!1));const R=Object.assign(Object.assign({},s.roomOptions.publishDefaults),a);!dV()&&s.roomOptions.e2ee&&(s.log.info("End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2",Object.assign({},s.logContext)),R.simulcast=!1),R.source&&(r.source=R.source);const M=new Promise((A,U)=>Q(s,void 0,void 0,function*(){try{if(this.engine.client.currentState!==Or.CONNECTED){this.log.debug("deferring track publication until signal is connected",Object.assign(Object.assign({},this.logContext),{track:ar(r)}));const V=()=>Q(this,void 0,void 0,function*(){try{const j=yield this.publish(r,R,E);A(j)}catch(j){U(j)}});setTimeout(()=>{this.engine.off(tt.SignalConnected,V),U(new iT("publishing rejected as engine not connected within timeout",408))},15e3),this.engine.once(tt.SignalConnected,V),this.engine.on(tt.Closing,()=>{this.engine.off(tt.SignalConnected,V),U(new iT("publishing rejected as engine closed",499))})}else try{const V=yield this.publish(r,R,E);A(V)}catch(V){U(V)}}catch(V){U(V)}}));s.pendingPublishPromises.set(r,M);try{return yield M}catch(A){throw A}finally{s.pendingPublishPromises.delete(r)}}()})}hasPermissionsToPublish(e){if(!this.permissions)return this.log.warn("no permissions present for publishing track",Object.assign(Object.assign({},this.logContext),ar(e))),!1;const{canPublish:n,canPublishSources:r}=this.permissions;return n&&(r.length===0||r.map(a=>EV(a)).includes(e.source))?!0:(this.log.warn("insufficient permissions to publish",Object.assign(Object.assign({},this.logContext),ar(e))),!1)}publish(e,n,r){return Q(this,void 0,void 0,function*(){var a,s,l,c,h,p,v,b,k,T;if(!this.hasPermissionsToPublish(e))throw new iT("failed to publish track, insufficient permissions",403);Array.from(this.trackPublications.values()).find(I=>Hh(e)&&I.source===e.source)&&e.source!==De.Source.Unknown&&this.log.info("publishing a second track with the same source: ".concat(e.source),Object.assign(Object.assign({},this.logContext),ar(e))),n.stopMicTrackOnMute&&cu(e)&&(e.stopOnMute=!0),e.source===De.Source.ScreenShare&&Bh()&&(n.simulcast=!1),n.videoCodec==="av1"&&!sV()&&(n.videoCodec=void 0),n.videoCodec==="vp9"&&!lV()&&(n.videoCodec=void 0),n.videoCodec===void 0&&(n.videoCodec=PT),this.enabledPublishVideoCodecs.length>0&&(this.enabledPublishVideoCodecs.some(I=>n.videoCodec===ob(I.mime))||(n.videoCodec=ob(this.enabledPublishVideoCodecs[0].mime)));const R=n.videoCodec;e.on(Qe.Muted,this.onTrackMuted),e.on(Qe.Unmuted,this.onTrackUnmuted),e.on(Qe.Ended,this.handleTrackEnded),e.on(Qe.UpstreamPaused,this.onTrackUpstreamPaused),e.on(Qe.UpstreamResumed,this.onTrackUpstreamResumed),e.on(Qe.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate);const M=new V1({cid:e.mediaStreamTrack.id,name:n.name,type:De.kindToProto(e.kind),muted:e.isMuted,source:De.sourceToProto(e.source),disableDtx:!(!((a=n.dtx)!==null&&a!==void 0)||a),encryption:this.encryptionType,stereo:r,disableRed:this.isE2EEEnabled||!(!((s=n.red)!==null&&s!==void 0)||s),stream:n==null?void 0:n.stream,backupCodecPolicy:n==null?void 0:n.backupCodecPolicy});let A;if(e.kind===De.Kind.Video){let I={width:0,height:0};try{I=yield e.waitForDimensions()}catch{const ne=(c=(l=this.roomOptions.videoCaptureDefaults)===null||l===void 0?void 0:l.resolution)!==null&&c!==void 0?c:Pg.h720.resolution;I={width:ne.width,height:ne.height},this.log.error("could not determine track dimensions, using defaults",Object.assign(Object.assign(Object.assign({},this.logContext),ar(e)),{dims:I}))}M.width=I.width,M.height=I.height,Cc(e)&&(Dg(R)&&(e.source===De.Source.ScreenShare&&(n.scalabilityMode="L1T3","contentHint"in e.mediaStreamTrack&&(e.mediaStreamTrack.contentHint="motion",this.log.info("forcing contentHint to motion for screenshare with SVC codecs",Object.assign(Object.assign({},this.logContext),ar(e))))),n.scalabilityMode=(h=n.scalabilityMode)!==null&&h!==void 0?h:"L3T3_KEY"),M.simulcastCodecs=[new j1({codec:R,cid:e.mediaStreamTrack.id})],n.backupCodec===!0&&(n.backupCodec={codec:PT}),n.backupCodec&&R!==n.backupCodec.codec&&M.encryption===Po.NONE&&(this.roomOptions.dynacast||(this.roomOptions.dynacast=!0),M.simulcastCodecs.push(new j1({codec:n.backupCodec.codec,cid:""})))),A=LT(e.source===De.Source.ScreenShare,M.width,M.height,n),M.layers=FO(M.width,M.height,A,Dg(n.videoCodec))}else e.kind===De.Kind.Audio&&(A=[{maxBitrate:(p=n.audioPreset)===null||p===void 0?void 0:p.maxBitrate,priority:(b=(v=n.audioPreset)===null||v===void 0?void 0:v.priority)!==null&&b!==void 0?b:"high",networkPriority:(T=(k=n.audioPreset)===null||k===void 0?void 0:k.priority)!==null&&T!==void 0?T:"high"}]);if(!this.engine||this.engine.isClosed)throw new xi("cannot publish track when not connected");const U=()=>Q(this,void 0,void 0,function*(){var I,N,ne;if(!this.engine.pcManager)throw new xi("pcManager is not ready");if(e.sender=yield this.engine.createSender(e,n,A),Cc(e)&&((I=n.degradationPreference)!==null&&I!==void 0||(n.degradationPreference=nz(e)),e.setDegradationPreference(n.degradationPreference)),A)if(Bh()&&e.kind===De.Kind.Audio){let X;for(const se of this.engine.pcManager.publisher.getTransceivers())if(se.sender===e.sender){X=se;break}X&&this.engine.pcManager.publisher.setTrackCodecBitrate({transceiver:X,codec:"opus",maxbr:!((N=A[0])===null||N===void 0)&&N.maxBitrate?A[0].maxBitrate/1e3:0})}else e.codec&&Dg(e.codec)&&(!((ne=A[0])===null||ne===void 0)&&ne.maxBitrate)&&this.engine.pcManager.publisher.setTrackCodecBitrate({cid:M.cid,codec:e.codec,maxbr:A[0].maxBitrate/1e3});yield this.engine.negotiate()});let V;if(this.enabledPublishVideoCodecs.length>0)V=(yield Promise.all([this.engine.addTrack(M),U()]))[0];else{V=yield this.engine.addTrack(M);let I;if(V.codecs.forEach(N=>{I===void 0&&(I=N.mimeType)}),I&&e.kind===De.Kind.Video){const N=ob(I);N!==R&&(this.log.debug("falling back to server selected codec",Object.assign(Object.assign(Object.assign({},this.logContext),ar(e)),{codec:N})),n.videoCodec=N,A=LT(e.source===De.Source.ScreenShare,M.width,M.height,n))}yield U()}const j=new VT(e.kind,V,e,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});return j.options=n,e.sid=V.sid,this.log.debug("publishing ".concat(e.kind," with encodings"),Object.assign(Object.assign({},this.logContext),{encodings:A,trackInfo:V})),Cc(e)?e.startMonitor(this.engine.client):Qd(e)&&e.startMonitor(),this.addTrackPublication(j),this.emit(Ie.LocalTrackPublished,j),j})}get isLocal(){return!0}publishAdditionalCodecForTrack(e,n,r){return Q(this,void 0,void 0,function*(){var a;if(this.encryptionType!==Po.NONE)return;let s;if(this.trackPublications.forEach(T=>{T.track&&T.track===e&&(s=T)}),!s)throw new uu("track is not published");if(!Cc(e))throw new uu("track is not a video track");const l=Object.assign(Object.assign({},(a=this.roomOptions)===null||a===void 0?void 0:a.publishDefaults),r),c=JV(e,n,l);if(!c){this.log.info("backup codec has been disabled, ignoring request to add additional codec for track",Object.assign(Object.assign({},this.logContext),ar(e)));return}const h=e.addSimulcastTrack(n,c);if(!h)return;const p=new V1({cid:h.mediaStreamTrack.id,type:De.kindToProto(e.kind),muted:e.isMuted,source:De.sourceToProto(e.source),sid:e.sid,simulcastCodecs:[{codec:l.videoCodec,cid:h.mediaStreamTrack.id}]});if(p.layers=FO(p.width,p.height,c),!this.engine||this.engine.isClosed)throw new xi("cannot publish track when not connected");const v=()=>Q(this,void 0,void 0,function*(){yield this.engine.createSimulcastSender(e,h,l,c),yield this.engine.negotiate()}),k=(yield Promise.all([this.engine.addTrack(p),v()]))[0];this.log.debug("published ".concat(n," for track ").concat(e.sid),Object.assign(Object.assign({},this.logContext),{encodings:c,trackInfo:k}))})}unpublishTrack(e,n){return Q(this,void 0,void 0,function*(){var r,a;if(Hh(e)){const p=this.pendingPublishPromises.get(e);p&&(this.log.info("awaiting publish promise before attempting to unpublish",Object.assign(Object.assign({},this.logContext),ar(e))),yield p)}const s=this.getPublicationForTrack(e),l=s?ar(s):void 0;if(this.log.debug("unpublishing track",Object.assign(Object.assign({},this.logContext),l)),!s||!s.track){this.log.warn("track was not unpublished because no publication was found",Object.assign(Object.assign({},this.logContext),l));return}e=s.track,e.off(Qe.Muted,this.onTrackMuted),e.off(Qe.Unmuted,this.onTrackUnmuted),e.off(Qe.Ended,this.handleTrackEnded),e.off(Qe.UpstreamPaused,this.onTrackUpstreamPaused),e.off(Qe.UpstreamResumed,this.onTrackUpstreamResumed),e.off(Qe.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate),n===void 0&&(n=(a=(r=this.roomOptions)===null||r===void 0?void 0:r.stopLocalTrackOnUnpublish)!==null&&a!==void 0?a:!0),n?e.stop():e.stopMonitor();let c=!1;const h=e.sender;if(e.sender=void 0,this.engine.pcManager&&this.engine.pcManager.currentState<Jr.FAILED&&h)try{for(const p of this.engine.pcManager.publisher.getTransceivers())p.sender===h&&(p.direction="inactive",c=!0);if(this.engine.removeTrack(h)&&(c=!0),Cc(e)){for(const[,p]of e.simulcastCodecs)p.sender&&(this.engine.removeTrack(p.sender)&&(c=!0),p.sender=void 0);e.simulcastCodecs.clear()}}catch(p){this.log.warn("failed to unpublish track",Object.assign(Object.assign(Object.assign({},this.logContext),l),{error:p}))}switch(this.trackPublications.delete(s.trackSid),s.kind){case De.Kind.Audio:this.audioTrackPublications.delete(s.trackSid);break;case De.Kind.Video:this.videoTrackPublications.delete(s.trackSid);break}return this.emit(Ie.LocalTrackUnpublished,s),s.setTrack(void 0),c&&(yield this.engine.negotiate()),s})}unpublishTracks(e){return Q(this,void 0,void 0,function*(){return(yield Promise.all(e.map(r=>this.unpublishTrack(r)))).filter(r=>!!r)})}republishAllTracks(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return function*(){r.republishPromise&&(yield r.republishPromise),r.republishPromise=new Promise((s,l)=>Q(r,void 0,void 0,function*(){try{const c=[];this.trackPublications.forEach(h=>{h.track&&(n&&(h.options=Object.assign(Object.assign({},h.options),n)),c.push(h))}),yield Promise.all(c.map(h=>Q(this,void 0,void 0,function*(){const p=h.track;yield this.unpublishTrack(p,!1),a&&!p.isMuted&&p.source!==De.Source.ScreenShare&&p.source!==De.Source.ScreenShareAudio&&(Qd(p)||Cc(p))&&!p.isUserProvided&&(this.log.debug("restarting existing track",Object.assign(Object.assign({},this.logContext),{track:h.trackSid})),yield p.restartTrack()),yield this.publishOrRepublishTrack(p,h.options,!0)}))),s()}catch(c){l(c)}finally{this.republishPromise=void 0}})),yield r.republishPromise}()})}publishData(e){return Q(this,arguments,void 0,function(n){var r=this;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return function*(){const s=a.reliable?$n.RELIABLE:$n.LOSSY,l=a.destinationIdentities,c=a.topic,h=new ro({kind:s,value:{case:"user",value:new zD({participantIdentity:r.identity,payload:n,destinationIdentities:l,topic:c})}});yield r.engine.sendDataPacket(h,s)}()})}publishDtmf(e,n){return Q(this,void 0,void 0,function*(){const r=new ro({kind:$n.RELIABLE,value:{case:"sipDtmf",value:new BD({code:e,digit:n})}});yield this.engine.sendDataPacket(r,$n.RELIABLE)})}sendChatMessage(e,n){return Q(this,void 0,void 0,function*(){const r={id:crypto.randomUUID(),message:e,timestamp:Date.now(),attachedFiles:n==null?void 0:n.attachments},a=new ro({value:{case:"chatMessage",value:new M1(Object.assign(Object.assign({},r),{timestamp:Ur.parse(r.timestamp)}))}});return yield this.engine.sendDataPacket(a,$n.RELIABLE),this.emit(Ie.ChatMessage,r),r})}editChatMessage(e,n){return Q(this,void 0,void 0,function*(){const r=Object.assign(Object.assign({},n),{message:e,editTimestamp:Date.now()}),a=new ro({value:{case:"chatMessage",value:new M1(Object.assign(Object.assign({},r),{timestamp:Ur.parse(r.timestamp),editTimestamp:Ur.parse(r.editTimestamp)}))}});return yield this.engine.sendDataPacket(a,$n.RELIABLE),this.emit(Ie.ChatMessage,r),r})}sendText(e,n){return Q(this,void 0,void 0,function*(){var r;const a=crypto.randomUUID(),l=new TextEncoder().encode(e).byteLength,c=(r=n==null?void 0:n.attachments)===null||r===void 0?void 0:r.map(()=>crypto.randomUUID()),h=new Array(c?c.length+1:1).fill(0),p=(b,k)=>{var T;h[k]=b;const E=h.reduce((R,M)=>R+M,0);(T=n==null?void 0:n.onProgress)===null||T===void 0||T.call(n,E)},v=yield this.streamText({streamId:a,totalSize:l,destinationIdentities:n==null?void 0:n.destinationIdentities,topic:n==null?void 0:n.topic,attachedStreamIds:c,attributes:n==null?void 0:n.attributes});return yield v.write(e),p(1,0),yield v.close(),n!=null&&n.attachments&&c&&(yield Promise.all(n.attachments.map((b,k)=>Q(this,void 0,void 0,function*(){return this._sendFile(c[k],b,{topic:n.topic,mimeType:b.type,onProgress:T=>{p(T,k+1)}})})))),v.info})}streamText(e){return Q(this,void 0,void 0,function*(){var n,r;const a=(n=e==null?void 0:e.streamId)!==null&&n!==void 0?n:crypto.randomUUID(),s={id:a,mimeType:"text/plain",timestamp:Date.now(),topic:(r=e==null?void 0:e.topic)!==null&&r!==void 0?r:"",size:e==null?void 0:e.totalSize,attributes:e==null?void 0:e.attributes},l=new N1({streamId:a,mimeType:s.mimeType,topic:s.topic,timestamp:Zd(s.timestamp),totalLength:Zd(e==null?void 0:e.totalSize),attributes:s.attributes,contentHeader:{case:"textHeader",value:new JD({version:e==null?void 0:e.version,attachedStreamIds:e==null?void 0:e.attachedStreamIds,replyToStreamId:e==null?void 0:e.replyToStreamId,operationType:(e==null?void 0:e.type)==="update"?L1.UPDATE:L1.CREATE})}}),c=e==null?void 0:e.destinationIdentities,h=new ro({destinationIdentities:c,value:{case:"streamHeader",value:l}});yield this.engine.sendDataPacket(h,$n.RELIABLE);let p=0;const v=this,b=new WritableStream({write(E){return Q(this,void 0,void 0,function*(){for(const R of CV(E,WO)){yield v.engine.waitForBufferStatusLow($n.RELIABLE);const M=new I1({content:R,streamId:a,chunkIndex:Zd(p)}),A=new ro({destinationIdentities:c,value:{case:"streamChunk",value:M}});yield v.engine.sendDataPacket(A,$n.RELIABLE),p+=1}})},close(){return Q(this,void 0,void 0,function*(){const E=new U1({streamId:a}),R=new ro({destinationIdentities:c,value:{case:"streamTrailer",value:E}});yield v.engine.sendDataPacket(R,$n.RELIABLE)})},abort(E){console.log("Sink error:",E)}});let k=()=>Q(this,void 0,void 0,function*(){yield T.close()});v.engine.once(tt.Closing,k);const T=new dz(b,s,()=>this.engine.off(tt.Closing,k));return T})}sendFile(e,n){return Q(this,void 0,void 0,function*(){const r=crypto.randomUUID();return yield this._sendFile(r,e,n),{id:r}})}_sendFile(e,n,r){return Q(this,void 0,void 0,function*(){var a;const s=yield this.streamBytes({streamId:e,totalSize:n.size,name:n.name,mimeType:(a=r==null?void 0:r.mimeType)!==null&&a!==void 0?a:n.type,topic:r==null?void 0:r.topic,destinationIdentities:r==null?void 0:r.destinationIdentities}),l=n.stream().getReader();for(;;){const{done:c,value:h}=yield l.read();if(c)break;yield s.write(h)}return yield s.close(),s.info})}streamBytes(e){return Q(this,void 0,void 0,function*(){var n,r,a,s,l;const c=(n=e==null?void 0:e.streamId)!==null&&n!==void 0?n:crypto.randomUUID(),h=e==null?void 0:e.destinationIdentities,p={id:c,mimeType:(r=e==null?void 0:e.mimeType)!==null&&r!==void 0?r:"application/octet-stream",topic:(a=e==null?void 0:e.topic)!==null&&a!==void 0?a:"",timestamp:Date.now(),attributes:e==null?void 0:e.attributes,size:e==null?void 0:e.totalSize,name:(s=e==null?void 0:e.name)!==null&&s!==void 0?s:"unknown"},v=new N1({totalLength:Zd((l=p.size)!==null&&l!==void 0?l:0),mimeType:p.mimeType,streamId:c,topic:p.topic,timestamp:Zd(Date.now()),contentHeader:{case:"byteHeader",value:new eA({name:p.name})}}),b=new ro({destinationIdentities:h,value:{case:"streamHeader",value:v}});yield this.engine.sendDataPacket(b,$n.RELIABLE);let k=0;const T=new to,E=this.engine,R=this.log,M=new WritableStream({write(U){return Q(this,void 0,void 0,function*(){const V=yield T.lock();let j=0;try{for(;j<U.byteLength;){const I=U.slice(j,j+WO);yield E.waitForBufferStatusLow($n.RELIABLE);const N=new ro({destinationIdentities:h,value:{case:"streamChunk",value:new I1({content:I,streamId:c,chunkIndex:Zd(k)})}});yield E.sendDataPacket(N,$n.RELIABLE),k+=1,j+=I.byteLength}}finally{V()}})},close(){return Q(this,void 0,void 0,function*(){const U=new U1({streamId:c}),V=new ro({destinationIdentities:h,value:{case:"streamTrailer",value:U}});yield E.sendDataPacket(V,$n.RELIABLE)})},abort(U){R.error("Sink error:",U)}});return new fz(M,p)})}performRpc(e){return Q(this,arguments,void 0,function(n){var r=this;let{destinationIdentity:a,method:s,payload:l,responseTimeout:c=1e4}=n;return function*(){return new Promise((p,v)=>Q(r,void 0,void 0,function*(){var b,k,T,E;if(AT(l)>AO){v(ei.builtIn("REQUEST_PAYLOAD_TOO_LARGE"));return}if(!((k=(b=this.engine.latestJoinResponse)===null||b===void 0?void 0:b.serverInfo)===null||k===void 0)&&k.version&&bc((E=(T=this.engine.latestJoinResponse)===null||T===void 0?void 0:T.serverInfo)===null||E===void 0?void 0:E.version,"1.8.0")<0){v(ei.builtIn("UNSUPPORTED_SERVER"));return}const R=crypto.randomUUID();yield this.publishRpcRequest(a,R,s,l,c-2e3);const M=setTimeout(()=>{this.pendingAcks.delete(R),v(ei.builtIn("CONNECTION_TIMEOUT")),this.pendingResponses.delete(R),clearTimeout(A)},2e3);this.pendingAcks.set(R,{resolve:()=>{clearTimeout(M)},participantIdentity:a});const A=setTimeout(()=>{this.pendingResponses.delete(R),v(ei.builtIn("RESPONSE_TIMEOUT"))},c);this.pendingResponses.set(R,{resolve:(U,V)=>{clearTimeout(A),this.pendingAcks.has(R)&&(console.warn("RPC response received before ack",R),this.pendingAcks.delete(R),clearTimeout(M)),V?v(V):p(U??"")},participantIdentity:a})}))}()})}registerRpcMethod(e,n){this.rpcHandlers.has(e)&&this.log.warn("you're overriding the RPC handler for method ".concat(e,", in the future this will throw an error")),this.rpcHandlers.set(e,n)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}setTrackSubscriptionPermissions(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];this.participantTrackPermissions=n,this.allParticipantsAllowedToSubscribe=e,this.engine.client.isDisconnected||this.updateTrackSubscriptionPermissions()}handleIncomingRpcAck(e){const n=this.pendingAcks.get(e);n?(n.resolve(),this.pendingAcks.delete(e)):console.error("Ack received for unexpected RPC request",e)}handleIncomingRpcResponse(e,n,r){const a=this.pendingResponses.get(e);a?(a.resolve(n,r),this.pendingResponses.delete(e)):console.error("Response received for unexpected RPC request",e)}publishRpcRequest(e,n,r,a,s){return Q(this,void 0,void 0,function*(){const l=new ro({destinationIdentities:[e],kind:$n.RELIABLE,value:{case:"rpcRequest",value:new HD({id:n,method:r,payload:a,responseTimeoutMs:s,version:1})}});yield this.engine.sendDataPacket(l,$n.RELIABLE)})}handleParticipantDisconnected(e){for(const[n,{participantIdentity:r}]of this.pendingAcks)r===e&&this.pendingAcks.delete(n);for(const[n,{participantIdentity:r,resolve:a}]of this.pendingResponses)r===e&&(a(null,ei.builtIn("RECIPIENT_DISCONNECTED")),this.pendingResponses.delete(n))}setEnabledPublishCodecs(e){this.enabledPublishVideoCodecs=e.filter(n=>n.mime.split("/")[0].toLowerCase()==="video")}updateInfo(e){return e.sid!==this.sid||!super.updateInfo(e)?!1:(e.tracks.forEach(n=>{var r,a;const s=this.trackPublications.get(n.sid);if(s){const l=s.isMuted||((a=(r=s.track)===null||r===void 0?void 0:r.isUpstreamPaused)!==null&&a!==void 0?a:!1);l!==n.muted&&(this.log.debug("updating server mute state after reconcile",Object.assign(Object.assign(Object.assign({},this.logContext),ar(s)),{mutedOnServer:l})),this.engine.client.sendMuteTrack(n.sid,l))}}),!0)}getPublicationForTrack(e){let n;return this.trackPublications.forEach(r=>{const a=r.track;a&&(e instanceof MediaStreamTrack?(Qd(a)||Cc(a))&&a.mediaStreamTrack===e&&(n=r):e===a&&(n=r))}),n}waitForPendingPublicationOfSource(e){return Q(this,void 0,void 0,function*(){const r=Date.now();for(;Date.now()<r+1e4;){const a=Array.from(this.pendingPublishPromises.entries()).find(s=>{let[l]=s;return l.source===e});if(a)return a[1];yield io(20)}})}}class GO extends du{constructor(e,n,r,a){super(e,n.sid,n.name,a),this.track=void 0,this.allowed=!0,this.disabled=!1,this.currentVideoQuality=Go.HIGH,this.handleEnded=s=>{this.setTrack(void 0),this.emit(Qe.Ended,s)},this.handleVisibilityChange=s=>{this.log.debug("adaptivestream video visibility ".concat(this.trackSid,", visible=").concat(s),this.logContext),this.disabled=!s,this.emitTrackUpdate()},this.handleVideoDimensionsChange=s=>{this.log.debug("adaptivestream video dimensions ".concat(s.width,"x").concat(s.height),this.logContext),this.videoDimensions=s,this.emitTrackUpdate()},this.subscribed=r,this.updateInfo(n)}setSubscribed(e){const n=this.subscriptionStatus,r=this.permissionStatus;this.subscribed=e,e&&(this.allowed=!0);const a=new q0({trackSids:[this.trackSid],subscribe:this.subscribed,participantTracks:[new GD({participantSid:"",trackSids:[this.trackSid]})]});this.emit(Qe.UpdateSubscription,a),this.emitSubscriptionUpdateIfChanged(n),this.emitPermissionUpdateIfChanged(r)}get subscriptionStatus(){return this.subscribed===!1?du.SubscriptionStatus.Unsubscribed:super.isSubscribed?du.SubscriptionStatus.Subscribed:du.SubscriptionStatus.Desired}get permissionStatus(){return this.allowed?du.PermissionStatus.Allowed:du.PermissionStatus.NotAllowed}get isSubscribed(){return this.subscribed===!1?!1:super.isSubscribed}get isDesired(){return this.subscribed!==!1}get isEnabled(){return!this.disabled}get isLocal(){return!1}setEnabled(e){!this.isManualOperationAllowed()||this.disabled===!e||(this.disabled=!e,this.emitTrackUpdate())}setVideoQuality(e){!this.isManualOperationAllowed()||this.currentVideoQuality===e||(this.currentVideoQuality=e,this.videoDimensions=void 0,this.emitTrackUpdate())}setVideoDimensions(e){var n,r;this.isManualOperationAllowed()&&(((n=this.videoDimensions)===null||n===void 0?void 0:n.width)===e.width&&((r=this.videoDimensions)===null||r===void 0?void 0:r.height)===e.height||(bT(this.track)&&(this.videoDimensions=e),this.currentVideoQuality=void 0,this.emitTrackUpdate()))}setVideoFPS(e){this.isManualOperationAllowed()&&bT(this.track)&&this.fps!==e&&(this.fps=e,this.emitTrackUpdate())}get videoQuality(){return this.currentVideoQuality}setTrack(e){const n=this.subscriptionStatus,r=this.permissionStatus,a=this.track;a!==e&&(a&&(a.off(Qe.VideoDimensionsChanged,this.handleVideoDimensionsChange),a.off(Qe.VisibilityChanged,this.handleVisibilityChange),a.off(Qe.Ended,this.handleEnded),a.detach(),a.stopMonitor(),this.emit(Qe.Unsubscribed,a)),super.setTrack(e),e&&(e.sid=this.trackSid,e.on(Qe.VideoDimensionsChanged,this.handleVideoDimensionsChange),e.on(Qe.VisibilityChanged,this.handleVisibilityChange),e.on(Qe.Ended,this.handleEnded),this.emit(Qe.Subscribed,e)),this.emitPermissionUpdateIfChanged(r),this.emitSubscriptionUpdateIfChanged(n))}setAllowed(e){const n=this.subscriptionStatus,r=this.permissionStatus;this.allowed=e,this.emitPermissionUpdateIfChanged(r),this.emitSubscriptionUpdateIfChanged(n)}setSubscriptionError(e){this.emit(Qe.SubscriptionFailed,e)}updateInfo(e){super.updateInfo(e);const n=this.metadataMuted;this.metadataMuted=e.muted,this.track?this.track.setMuted(e.muted):n!==e.muted&&this.emit(e.muted?Qe.Muted:Qe.Unmuted)}emitSubscriptionUpdateIfChanged(e){const n=this.subscriptionStatus;e!==n&&this.emit(Qe.SubscriptionStatusChanged,n,e)}emitPermissionUpdateIfChanged(e){this.permissionStatus!==e&&this.emit(Qe.SubscriptionPermissionChanged,this.permissionStatus,e)}isManualOperationAllowed(){return this.kind===De.Kind.Video&&this.isAdaptiveStream?(this.log.warn("adaptive stream is enabled, cannot change video track settings",this.logContext),!1):this.isDesired?!0:(this.log.warn("cannot update track settings when not subscribed",this.logContext),!1)}get isAdaptiveStream(){return bT(this.track)&&this.track.isAdaptiveStream}emitTrackUpdate(){const e=new nA({trackSids:[this.trackSid],disabled:this.disabled,fps:this.fps});this.videoDimensions?(e.width=Math.ceil(this.videoDimensions.width),e.height=Math.ceil(this.videoDimensions.height)):this.currentVideoQuality!==void 0?e.quality=this.currentVideoQuality:e.quality=Go.HIGH,this.emit(Qe.UpdateSettings,e)}}class pb extends qO{static fromParticipantInfo(e,n,r){return new pb(e,n.sid,n.identity,n.name,n.metadata,n.attributes,r,n.kind)}get logContext(){return Object.assign(Object.assign({},super.logContext),{rpID:this.sid,remoteParticipant:this.identity})}constructor(e,n,r,a,s,l,c){let h=arguments.length>7&&arguments[7]!==void 0?arguments[7]:_g.STANDARD;super(n,r||"",a,s,l,c,h),this.signalClient=e,this.trackPublications=new Map,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.volumeMap=new Map}addTrackPublication(e){super.addTrackPublication(e),e.on(Qe.UpdateSettings,n=>{this.log.debug("send update settings",Object.assign(Object.assign({},this.logContext),ar(e))),this.signalClient.sendUpdateTrackSettings(n)}),e.on(Qe.UpdateSubscription,n=>{n.participantTracks.forEach(r=>{r.participantSid=this.sid}),this.signalClient.sendUpdateSubscription(n)}),e.on(Qe.SubscriptionPermissionChanged,n=>{this.emit(Ie.TrackSubscriptionPermissionChanged,e,n)}),e.on(Qe.SubscriptionStatusChanged,n=>{this.emit(Ie.TrackSubscriptionStatusChanged,e,n)}),e.on(Qe.Subscribed,n=>{this.emit(Ie.TrackSubscribed,n,e)}),e.on(Qe.Unsubscribed,n=>{this.emit(Ie.TrackUnsubscribed,n,e)}),e.on(Qe.SubscriptionFailed,n=>{this.emit(Ie.TrackSubscriptionFailed,e.trackSid,n)})}getTrackPublication(e){const n=super.getTrackPublication(e);if(n)return n}getTrackPublicationByName(e){const n=super.getTrackPublicationByName(e);if(n)return n}setVolume(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:De.Source.Microphone;this.volumeMap.set(n,e);const r=this.getTrackPublication(n);r&&r.track&&r.track.setVolume(e)}getVolume(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:De.Source.Microphone;const n=this.getTrackPublication(e);return n&&n.track?n.track.getVolume():this.volumeMap.get(e)}addSubscribedMediaTrack(e,n,r,a,s,l){let c=this.getTrackPublicationBySid(n);if(c||n.startsWith("TR")||this.trackPublications.forEach(v=>{!c&&e.kind===v.kind.toString()&&(c=v)}),!c){if(l===0){this.log.error("could not find published track",Object.assign(Object.assign({},this.logContext),{trackSid:n})),this.emit(Ie.TrackSubscriptionFailed,n);return}l===void 0&&(l=20),setTimeout(()=>{this.addSubscribedMediaTrack(e,n,r,a,s,l-1)},150);return}if(e.readyState==="ended"){this.log.error("unable to subscribe because MediaStreamTrack is ended. Do not call MediaStreamTrack.stop()",Object.assign(Object.assign({},this.logContext),ar(c))),this.emit(Ie.TrackSubscriptionFailed,n);return}const h=e.kind==="video";let p;return h?p=new hz(e,n,a,s):p=new $O(e,n,a,this.audioContext,this.audioOutput),p.source=c.source,p.isMuted=c.isMuted,p.setMediaStream(r),p.start(),c.setTrack(p),this.volumeMap.has(c.source)&&yT(p)&&cu(p)&&p.setVolume(this.volumeMap.get(c.source)),c}get hasMetadata(){return!!this.participantInfo}getTrackPublicationBySid(e){return this.trackPublications.get(e)}updateInfo(e){if(!super.updateInfo(e))return!1;const n=new Map,r=new Map;return e.tracks.forEach(a=>{var s,l;let c=this.getTrackPublicationBySid(a.sid);if(c)c.updateInfo(a);else{const h=De.kindFromProto(a.type);if(!h)return;c=new GO(h,a,(s=this.signalClient.connectOptions)===null||s===void 0?void 0:s.autoSubscribe,{loggerContextCb:()=>this.logContext,loggerName:(l=this.loggerOptions)===null||l===void 0?void 0:l.loggerName}),c.updateInfo(a),r.set(a.sid,c);const p=Array.from(this.trackPublications.values()).find(v=>v.source===(c==null?void 0:c.source));p&&c.source!==De.Source.Unknown&&this.log.debug("received a second track publication for ".concat(this.identity," with the same source: ").concat(c.source),Object.assign(Object.assign({},this.logContext),{oldTrack:ar(p),newTrack:ar(c)})),this.addTrackPublication(c)}n.set(a.sid,c)}),this.trackPublications.forEach(a=>{n.has(a.trackSid)||(this.log.trace("detected removed track on remote participant, unpublishing",Object.assign(Object.assign({},this.logContext),ar(a))),this.unpublishTrack(a.trackSid,!0))}),r.forEach(a=>{this.emit(Ie.TrackPublished,a)}),!0}unpublishTrack(e,n){const r=this.trackPublications.get(e);if(!r)return;const{track:a}=r;switch(a&&(a.stop(),r.setTrack(void 0)),this.trackPublications.delete(e),r.kind){case De.Kind.Audio:this.audioTrackPublications.delete(e);break;case De.Kind.Video:this.videoTrackPublications.delete(e);break}n&&this.emit(Ie.TrackUnpublished,r)}setAudioOutput(e){return Q(this,void 0,void 0,function*(){this.audioOutput=e;const n=[];this.audioTrackPublications.forEach(r=>{var a;cu(r.track)&&yT(r.track)&&n.push(r.track.setSinkId((a=e.deviceId)!==null&&a!==void 0?a:"default"))}),yield Promise.all(n)})}emit(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];return this.log.trace("participant event",Object.assign(Object.assign({},this.logContext),{event:e,args:r})),super.emit(e,...r)}}var Fn;(function(t){t.Disconnected="disconnected",t.Connecting="connecting",t.Connected="connected",t.Reconnecting="reconnecting",t.SignalReconnecting="signalReconnecting"})(Fn||(Fn={}));const bz=4*1e3;class Gh extends dl.EventEmitter{constructor(e){var n,r,a,s;if(super(),n=this,this.state=Fn.Disconnected,this.activeSpeakers=[],this.isE2EEEnabled=!1,this.audioEnabled=!0,this.isVideoPlaybackBlocked=!1,this.log=Nn,this.bufferedEvents=[],this.isResuming=!1,this.byteStreamControllers=new Map,this.textStreamControllers=new Map,this.byteStreamHandlers=new Map,this.textStreamHandlers=new Map,this.rpcHandlers=new Map,this.connect=(l,c,h)=>Q(this,void 0,void 0,function*(){var p;if(!uV())throw fl()?Error("WebRTC isn't detected, have you called registerGlobals?"):Error("LiveKit doesn't seem to be supported on this browser. Try to update your browser and make sure no browser extensions are disabling webRTC.");const v=yield this.disconnectLock.lock();if(this.state===Fn.Connected)return this.log.info("already connected to room ".concat(this.name),this.logContext),v(),Promise.resolve();if(this.connectFuture)return v(),this.connectFuture.promise;this.setAndEmitConnectionState(Fn.Connecting),((p=this.regionUrlProvider)===null||p===void 0?void 0:p.getServerUrl().toString())!==l&&(this.regionUrl=void 0,this.regionUrlProvider=void 0),hT(new URL(l))&&(this.regionUrlProvider===void 0?this.regionUrlProvider=new UT(l,c):this.regionUrlProvider.updateToken(c),this.regionUrlProvider.fetchRegionSettings().then(T=>{var E;(E=this.regionUrlProvider)===null||E===void 0||E.setServerReportedRegions(T)}).catch(T=>{this.log.warn("could not fetch region settings",Object.assign(Object.assign({},this.logContext),{error:T}))}));const b=(T,E,R)=>Q(this,void 0,void 0,function*(){var M,A;this.abortController&&this.abortController.abort();const U=new AbortController;this.abortController=U,v==null||v();try{yield this.attemptConnection(R??l,c,h,U),this.abortController=void 0,T()}catch(V){if(this.regionUrlProvider&&V instanceof br&&V.reason!==Un.Cancelled&&V.reason!==Un.NotAllowed){let j=null;try{j=yield this.regionUrlProvider.getNextBestRegionUrl((M=this.abortController)===null||M===void 0?void 0:M.signal)}catch(I){if(I instanceof br&&(I.status===401||I.reason===Un.Cancelled)){this.handleDisconnect(this.options.stopLocalTrackOnUnpublish),E(I);return}}j&&!(!((A=this.abortController)===null||A===void 0)&&A.signal.aborted)?(this.log.info("Initial connection failed with ConnectionError: ".concat(V.message,". Retrying with another region: ").concat(j),this.logContext),this.recreateEngine(),yield b(T,E,j)):(this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,pO(V)),E(V))}else{let j=ks.UNKNOWN_REASON;V instanceof br&&(j=pO(V)),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,j),E(V)}}}),k=this.regionUrl;return this.regionUrl=void 0,this.connectFuture=new hO((T,E)=>{b(T,E,k)},()=>{this.clearConnectionFutures()}),this.connectFuture.promise}),this.connectSignal=(l,c,h,p,v,b)=>Q(this,void 0,void 0,function*(){var k,T,E;const R=yield h.join(l,c,{autoSubscribe:p.autoSubscribe,adaptiveStream:typeof v.adaptiveStream=="object"?!0:v.adaptiveStream,maxRetries:p.maxRetries,e2eeEnabled:!!this.e2eeManager,websocketTimeout:p.websocketTimeout},b.signal);let M=R.serverInfo;if(M||(M={version:R.serverVersion,region:R.serverRegion}),this.serverInfo=M,this.log.debug("connected to Livekit Server ".concat(Object.entries(M).map(A=>{let[U,V]=A;return"".concat(U,": ").concat(V)}).join(", ")),{room:(k=R.room)===null||k===void 0?void 0:k.name,roomSid:(T=R.room)===null||T===void 0?void 0:T.sid,identity:(E=R.participant)===null||E===void 0?void 0:E.identity}),!M.version)throw new Y8("unknown server version");return M.version==="0.15.1"&&this.options.dynacast&&(this.log.debug("disabling dynacast due to server version",this.logContext),v.dynacast=!1),R}),this.applyJoinResponse=l=>{const c=l.participant;if(this.localParticipant.sid=c.sid,this.localParticipant.identity=c.identity,this.localParticipant.setEnabledPublishCodecs(l.enabledPublishCodecs),this.options.e2ee&&this.e2eeManager)try{this.e2eeManager.setSifTrailer(l.sifTrailer)}catch(h){this.log.error(h instanceof Error?h.message:"Could not set SifTrailer",Object.assign(Object.assign({},this.logContext),{error:h}))}this.handleParticipantUpdates([c,...l.otherParticipants]),l.room&&this.handleRoomUpdate(l.room)},this.attemptConnection=(l,c,h,p)=>Q(this,void 0,void 0,function*(){var v,b;this.state===Fn.Reconnecting||this.isResuming||!((v=this.engine)===null||v===void 0)&&v.pendingReconnect?(this.log.info("Reconnection attempt replaced by new connection attempt",this.logContext),this.recreateEngine()):this.maybeCreateEngine(),!((b=this.regionUrlProvider)===null||b===void 0)&&b.isCloud()&&this.engine.setRegionUrlProvider(this.regionUrlProvider),this.acquireAudioContext(),this.connOptions=Object.assign(Object.assign({},DT),h),this.connOptions.rtcConfig&&(this.engine.rtcConfig=this.connOptions.rtcConfig),this.connOptions.peerConnectionTimeout&&(this.engine.peerConnectionTimeout=this.connOptions.peerConnectionTimeout);try{const k=yield this.connectSignal(l,c,this.engine,this.connOptions,this.options,p);this.applyJoinResponse(k),this.setupLocalParticipantEvents(),this.emit(Ee.SignalConnected)}catch(k){yield this.engine.close(),this.recreateEngine();const T=new br("could not establish signal connection",Un.ServerUnreachable);throw k instanceof Error&&(T.message="".concat(T.message,": ").concat(k.message)),k instanceof br&&(T.reason=k.reason,T.status=k.status),this.log.debug("error trying to establish signal connection",Object.assign(Object.assign({},this.logContext),{error:k})),T}if(p.signal.aborted)throw yield this.engine.close(),this.recreateEngine(),new br("Connection attempt aborted",Un.Cancelled);try{yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout,p)}catch(k){throw yield this.engine.close(),this.recreateEngine(),k}ao()&&this.options.disconnectOnPageLeave&&(window.addEventListener("pagehide",this.onPageLeave),window.addEventListener("beforeunload",this.onPageLeave)),ao()&&document.addEventListener("freeze",this.onPageLeave),this.setAndEmitConnectionState(Fn.Connected),this.emit(Ee.Connected),this.registerConnectionReconcile()}),this.disconnect=function(){for(var l=arguments.length,c=new Array(l),h=0;h<l;h++)c[h]=arguments[h];return Q(n,[...c],void 0,function(){var p=this;let v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function*(){var b,k,T,E;const R=yield p.disconnectLock.lock();try{if(p.state===Fn.Disconnected){p.log.debug("already disconnected",p.logContext);return}p.log.info("disconnect from room",Object.assign({},p.logContext)),(p.state===Fn.Connecting||p.state===Fn.Reconnecting||p.isResuming)&&(p.log.warn("abort connection attempt",p.logContext),(b=p.abortController)===null||b===void 0||b.abort(),(T=(k=p.connectFuture)===null||k===void 0?void 0:k.reject)===null||T===void 0||T.call(k,new br("Client initiated disconnect",Un.Cancelled)),p.connectFuture=void 0),!((E=p.engine)===null||E===void 0)&&E.client.isDisconnected||(yield p.engine.client.sendLeave()),p.engine&&(yield p.engine.close()),p.handleDisconnect(v,ks.CLIENT_INITIATED),p.engine=void 0}finally{R()}}()})},this.onPageLeave=()=>Q(this,void 0,void 0,function*(){this.log.info("Page leave detected, disconnecting",this.logContext),yield this.disconnect()}),this.startAudio=()=>Q(this,void 0,void 0,function*(){const l=[],c=ws();if(c&&c.os==="iOS"){const h="livekit-dummy-audio-el";let p=document.getElementById(h);if(!p){p=document.createElement("audio"),p.id=h,p.autoplay=!0,p.hidden=!0;const v=gT();v.enabled=!0;const b=new MediaStream([v]);p.srcObject=b,document.addEventListener("visibilitychange",()=>{p&&(p.srcObject=document.hidden?null:b,document.hidden||(this.log.debug("page visible again, triggering startAudio to resume playback and update playback status",this.logContext),this.startAudio()))}),document.body.append(p),this.once(Ee.Disconnected,()=>{p==null||p.remove(),p=null})}l.push(p)}this.remoteParticipants.forEach(h=>{h.audioTrackPublications.forEach(p=>{p.track&&p.track.attachedElements.forEach(v=>{l.push(v)})})});try{yield Promise.all([this.acquireAudioContext(),...l.map(h=>(h.muted=!1,h.play()))]),this.handleAudioPlaybackStarted()}catch(h){throw this.handleAudioPlaybackFailed(h),h}}),this.startVideo=()=>Q(this,void 0,void 0,function*(){const l=[];for(const c of this.remoteParticipants.values())c.videoTrackPublications.forEach(h=>{var p;(p=h.track)===null||p===void 0||p.attachedElements.forEach(v=>{l.includes(v)||l.push(v)})});yield Promise.all(l.map(c=>c.play())).then(()=>{this.handleVideoPlaybackStarted()}).catch(c=>{c.name==="NotAllowedError"?this.handleVideoPlaybackFailed():this.log.warn("Resuming video playback failed, make sure you call `startVideo` directly in a user gesture handler",this.logContext)})}),this.handleRestarting=()=>{this.clearConnectionReconcile(),this.isResuming=!1;for(const l of this.remoteParticipants.values())this.handleParticipantDisconnected(l.identity,l);this.setAndEmitConnectionState(Fn.Reconnecting)&&this.emit(Ee.Reconnecting)},this.handleSignalRestarted=l=>Q(this,void 0,void 0,function*(){this.log.debug("signal reconnected to server, region ".concat(l.serverRegion),Object.assign(Object.assign({},this.logContext),{region:l.serverRegion})),this.bufferedEvents=[],this.applyJoinResponse(l);try{yield this.localParticipant.republishAllTracks(void 0,!0)}catch(c){this.log.error("error trying to re-publish tracks after reconnection",Object.assign(Object.assign({},this.logContext),{error:c}))}try{yield this.engine.waitForRestarted(),this.log.debug("fully reconnected to server",Object.assign(Object.assign({},this.logContext),{region:l.serverRegion}))}catch{return}this.setAndEmitConnectionState(Fn.Connected),this.emit(Ee.Reconnected),this.registerConnectionReconcile(),this.emitBufferedEvents()}),this.handleParticipantUpdates=l=>{l.forEach(c=>{var h;if(c.identity===this.localParticipant.identity){this.localParticipant.updateInfo(c);return}c.identity===""&&(c.identity=(h=this.sidToIdentity.get(c.sid))!==null&&h!==void 0?h:"");let p=this.remoteParticipants.get(c.identity);c.state===O1.DISCONNECTED?this.handleParticipantDisconnected(c.identity,p):p=this.getOrCreateParticipant(c.identity,c)})},this.handleActiveSpeakersUpdate=l=>{const c=[],h={};l.forEach(p=>{if(h[p.sid]=!0,p.sid===this.localParticipant.sid)this.localParticipant.audioLevel=p.level,this.localParticipant.setIsSpeaking(!0),c.push(this.localParticipant);else{const v=this.getRemoteParticipantBySid(p.sid);v&&(v.audioLevel=p.level,v.setIsSpeaking(!0),c.push(v))}}),h[this.localParticipant.sid]||(this.localParticipant.audioLevel=0,this.localParticipant.setIsSpeaking(!1)),this.remoteParticipants.forEach(p=>{h[p.sid]||(p.audioLevel=0,p.setIsSpeaking(!1))}),this.activeSpeakers=c,this.emitWhenConnected(Ee.ActiveSpeakersChanged,c)},this.handleSpeakersChanged=l=>{const c=new Map;this.activeSpeakers.forEach(p=>{const v=this.remoteParticipants.get(p.identity);v&&v.sid!==p.sid||c.set(p.sid,p)}),l.forEach(p=>{let v=this.getRemoteParticipantBySid(p.sid);p.sid===this.localParticipant.sid&&(v=this.localParticipant),v&&(v.audioLevel=p.level,v.setIsSpeaking(p.active),p.active?c.set(p.sid,v):c.delete(p.sid))});const h=Array.from(c.values());h.sort((p,v)=>v.audioLevel-p.audioLevel),this.activeSpeakers=h,this.emitWhenConnected(Ee.ActiveSpeakersChanged,h)},this.handleStreamStateUpdate=l=>{l.streamStates.forEach(c=>{const h=this.getRemoteParticipantBySid(c.participantSid);if(!h)return;const p=h.getTrackPublicationBySid(c.trackSid);if(!p||!p.track)return;const v=De.streamStateFromProto(c.state);v!==p.track.streamState&&(p.track.streamState=v,h.emit(Ie.TrackStreamStateChanged,p,p.track.streamState),this.emitWhenConnected(Ee.TrackStreamStateChanged,p,p.track.streamState,h))})},this.handleSubscriptionPermissionUpdate=l=>{const c=this.getRemoteParticipantBySid(l.participantSid);if(!c)return;const h=c.getTrackPublicationBySid(l.trackSid);h&&h.setAllowed(l.allowed)},this.handleSubscriptionError=l=>{const c=Array.from(this.remoteParticipants.values()).find(p=>p.trackPublications.has(l.trackSid));if(!c)return;const h=c.getTrackPublicationBySid(l.trackSid);h&&h.setSubscriptionError(l.err)},this.handleDataPacket=l=>{const c=this.remoteParticipants.get(l.participantIdentity);if(l.value.case==="user")this.handleUserPacket(c,l.value.value,l.kind);else if(l.value.case==="transcription")this.handleTranscription(c,l.value.value);else if(l.value.case==="sipDtmf")this.handleSipDtmf(c,l.value.value);else if(l.value.case==="chatMessage")this.handleChatMessage(c,l.value.value);else if(l.value.case==="metrics")this.handleMetrics(l.value.value,c);else if(l.value.case==="streamHeader")this.handleStreamHeader(l.value.value,l.participantIdentity);else if(l.value.case==="streamChunk")this.handleStreamChunk(l.value.value);else if(l.value.case==="streamTrailer")this.handleStreamTrailer(l.value.value);else if(l.value.case==="rpcRequest"){const h=l.value.value;this.handleIncomingRpcRequest(l.participantIdentity,h.id,h.method,h.payload,h.responseTimeoutMs,h.version)}},this.handleUserPacket=(l,c,h)=>{this.emit(Ee.DataReceived,c.payload,l,h,c.topic),l==null||l.emit(Ie.DataReceived,c.payload,h)},this.handleSipDtmf=(l,c)=>{this.emit(Ee.SipDTMFReceived,c,l),l==null||l.emit(Ie.SipDTMFReceived,c)},this.bufferedSegments=new Map,this.handleTranscription=(l,c)=>{const h=c.transcribedParticipantIdentity===this.localParticipant.identity?this.localParticipant:this.getParticipantByIdentity(c.transcribedParticipantIdentity),p=h==null?void 0:h.trackPublications.get(c.trackId),v=vV(c,this.transcriptionReceivedTimes);p==null||p.emit(Qe.TranscriptionReceived,v),h==null||h.emit(Ie.TranscriptionReceived,v,p),this.emit(Ee.TranscriptionReceived,v,h,p)},this.handleChatMessage=(l,c)=>{const h=yV(c);this.emit(Ee.ChatMessage,h,l)},this.handleMetrics=(l,c)=>{this.emit(Ee.MetricsReceived,l,c)},this.handleAudioPlaybackStarted=()=>{this.canPlaybackAudio||(this.audioEnabled=!0,this.emit(Ee.AudioPlaybackStatusChanged,!0))},this.handleAudioPlaybackFailed=l=>{this.log.warn("could not playback audio",Object.assign(Object.assign({},this.logContext),{error:l})),this.canPlaybackAudio&&(this.audioEnabled=!1,this.emit(Ee.AudioPlaybackStatusChanged,!1))},this.handleVideoPlaybackStarted=()=>{this.isVideoPlaybackBlocked&&(this.isVideoPlaybackBlocked=!1,this.emit(Ee.VideoPlaybackStatusChanged,!0))},this.handleVideoPlaybackFailed=()=>{this.isVideoPlaybackBlocked||(this.isVideoPlaybackBlocked=!0,this.emit(Ee.VideoPlaybackStatusChanged,!1))},this.handleDeviceChange=()=>Q(this,void 0,void 0,function*(){var l,c,h;const p=zi.getInstance().previousDevices,v=yield zi.getInstance().getDevices(void 0,!1),b=ws();if((b==null?void 0:b.name)==="Chrome"&&b.os!=="iOS")for(let T of v){const E=p.find(R=>R.deviceId===T.deviceId);E&&E.label!==""&&E.kind===T.kind&&E.label!==T.label&&this.getActiveDevice(T.kind)==="default"&&this.emit(Ee.ActiveDeviceChanged,T.kind,T.deviceId)}const k=["audiooutput","audioinput","videoinput"];for(let T of k){const E=kV(T),R=this.localParticipant.getTrackPublication(E);if(R&&(!((l=R.track)===null||l===void 0)&&l.isUserProvided))continue;const M=v.filter(U=>U.kind===T),A=this.getActiveDevice(T);if(A===((c=p.filter(U=>U.kind===T)[0])===null||c===void 0?void 0:c.deviceId)&&M.length>0&&((h=M[0])===null||h===void 0?void 0:h.deviceId)!==A){yield this.switchActiveDevice(T,M[0].deviceId);continue}T==="audioinput"&&!yc()||T==="videoinput"||M.length>0&&!M.find(U=>U.deviceId===this.getActiveDevice(T))&&(yield this.switchActiveDevice(T,M[0].deviceId))}this.emit(Ee.MediaDevicesChanged)}),this.handleRoomUpdate=l=>{const c=this.roomInfo;this.roomInfo=l,c&&c.metadata!==l.metadata&&this.emitWhenConnected(Ee.RoomMetadataChanged,l.metadata),(c==null?void 0:c.activeRecording)!==l.activeRecording&&this.emitWhenConnected(Ee.RecordingStatusChanged,l.activeRecording)},this.handleConnectionQualityUpdate=l=>{l.updates.forEach(c=>{if(c.participantSid===this.localParticipant.sid){this.localParticipant.setConnectionQuality(c.quality);return}const h=this.getRemoteParticipantBySid(c.participantSid);h&&h.setConnectionQuality(c.quality)})},this.onLocalParticipantMetadataChanged=l=>{this.emit(Ee.ParticipantMetadataChanged,l,this.localParticipant)},this.onLocalParticipantNameChanged=l=>{this.emit(Ee.ParticipantNameChanged,l,this.localParticipant)},this.onLocalAttributesChanged=l=>{this.emit(Ee.ParticipantAttributesChanged,l,this.localParticipant)},this.onLocalTrackMuted=l=>{this.emit(Ee.TrackMuted,l,this.localParticipant)},this.onLocalTrackUnmuted=l=>{this.emit(Ee.TrackUnmuted,l,this.localParticipant)},this.onTrackProcessorUpdate=l=>{var c;(c=l==null?void 0:l.onPublish)===null||c===void 0||c.call(l,this)},this.onLocalTrackPublished=l=>Q(this,void 0,void 0,function*(){var c,h,p,v,b,k;(c=l.track)===null||c===void 0||c.on(Qe.TrackProcessorUpdate,this.onTrackProcessorUpdate),(h=l.track)===null||h===void 0||h.on(Qe.Restarted,this.onLocalTrackRestarted),(b=(v=(p=l.track)===null||p===void 0?void 0:p.getProcessor())===null||v===void 0?void 0:v.onPublish)===null||b===void 0||b.call(v,this),this.emit(Ee.LocalTrackPublished,l,this.localParticipant),Qd(l.track)&&(yield l.track.checkForSilence())&&this.emit(Ee.LocalAudioSilenceDetected,l);const T=yield(k=l.track)===null||k===void 0?void 0:k.getDeviceId(!1),E=yO(l.source);E&&T&&T!==this.localParticipant.activeDeviceMap.get(E)&&(this.localParticipant.activeDeviceMap.set(E,T),this.emit(Ee.ActiveDeviceChanged,E,T))}),this.onLocalTrackUnpublished=l=>{var c,h;(c=l.track)===null||c===void 0||c.off(Qe.TrackProcessorUpdate,this.onTrackProcessorUpdate),(h=l.track)===null||h===void 0||h.off(Qe.Restarted,this.onLocalTrackRestarted),this.emit(Ee.LocalTrackUnpublished,l,this.localParticipant)},this.onLocalTrackRestarted=l=>Q(this,void 0,void 0,function*(){const c=yield l.getDeviceId(!1),h=yO(l.source);h&&c&&c!==this.localParticipant.activeDeviceMap.get(h)&&(this.log.debug("local track restarted, setting ".concat(h," ").concat(c," active"),this.logContext),this.localParticipant.activeDeviceMap.set(h,c),this.emit(Ee.ActiveDeviceChanged,h,c))}),this.onLocalConnectionQualityChanged=l=>{this.emit(Ee.ConnectionQualityChanged,l,this.localParticipant)},this.onMediaDevicesError=l=>{this.emit(Ee.MediaDevicesError,l)},this.onLocalParticipantPermissionsChanged=l=>{this.emit(Ee.ParticipantPermissionsChanged,l,this.localParticipant)},this.onLocalChatMessageSent=l=>{this.emit(Ee.ChatMessage,l,this.localParticipant)},this.setMaxListeners(100),this.remoteParticipants=new Map,this.sidToIdentity=new Map,this.options=Object.assign(Object.assign({},HV),e),this.log=lu((r=this.options.loggerName)!==null&&r!==void 0?r:xs.Room),this.transcriptionReceivedTimes=new Map,this.options.audioCaptureDefaults=Object.assign(Object.assign({},PO),e==null?void 0:e.audioCaptureDefaults),this.options.videoCaptureDefaults=Object.assign(Object.assign({},DO),e==null?void 0:e.videoCaptureDefaults),this.options.publishDefaults=Object.assign(Object.assign({},BV),e==null?void 0:e.publishDefaults),this.maybeCreateEngine(),this.disconnectLock=new to,this.localParticipant=new hb("","",this.engine,this.options,this.rpcHandlers),this.options.videoCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("videoinput",Sc(this.options.videoCaptureDefaults.deviceId)),this.options.audioCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("audioinput",Sc(this.options.audioCaptureDefaults.deviceId)),!((a=this.options.audioOutput)===null||a===void 0)&&a.deviceId&&this.switchActiveDevice("audiooutput",Sc(this.options.audioOutput.deviceId)).catch(l=>this.log.warn("Could not set audio output: ".concat(l.message),this.logContext)),this.options.e2ee&&this.setupE2EE(),ao()){const l=new AbortController;(s=navigator.mediaDevices)===null||s===void 0||s.addEventListener("devicechange",this.handleDeviceChange,{signal:l.signal}),Gh.cleanupRegistry&&Gh.cleanupRegistry.register(this,()=>{l.abort()})}}registerTextStreamHandler(e,n){if(this.textStreamHandlers.has(e))throw new TypeError('A text stream handler for topic "'.concat(e,'" has already been set.'));this.textStreamHandlers.set(e,n)}unregisterTextStreamHandler(e){this.textStreamHandlers.delete(e)}registerByteStreamHandler(e,n){if(this.byteStreamHandlers.has(e))throw new TypeError('A byte stream handler for topic "'.concat(e,'" has already been set.'));this.byteStreamHandlers.set(e,n)}unregisterByteStreamHandler(e){this.byteStreamHandlers.delete(e)}registerRpcMethod(e,n){if(this.rpcHandlers.has(e))throw Error("RPC handler already registered for method ".concat(e,", unregisterRpcMethod before trying to register again"));this.rpcHandlers.set(e,n)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}handleIncomingRpcRequest(e,n,r,a,s,l){return Q(this,void 0,void 0,function*(){if(yield this.engine.publishRpcAck(e,n),l!==1){yield this.engine.publishRpcResponse(e,n,null,ei.builtIn("UNSUPPORTED_VERSION"));return}const c=this.rpcHandlers.get(r);if(!c){yield this.engine.publishRpcResponse(e,n,null,ei.builtIn("UNSUPPORTED_METHOD"));return}let h=null,p=null;try{const v=yield c({requestId:n,callerIdentity:e,payload:a,responseTimeout:s});AT(v)>AO?(h=ei.builtIn("RESPONSE_PAYLOAD_TOO_LARGE"),console.warn("RPC Response payload too large for ".concat(r))):p=v}catch(v){v instanceof ei?h=v:(console.warn("Uncaught error returned by RPC handler for ".concat(r,". Returning APPLICATION_ERROR instead."),v),h=ei.builtIn("APPLICATION_ERROR"))}yield this.engine.publishRpcResponse(e,n,p,h)})}setE2EEEnabled(e){return Q(this,void 0,void 0,function*(){if(this.e2eeManager)yield Promise.all([this.localParticipant.setE2EEEnabled(e)]),this.localParticipant.identity!==""&&this.e2eeManager.setParticipantCryptorEnabled(e,this.localParticipant.identity);else throw Error("e2ee not configured, please set e2ee settings within the room options")})}setupE2EE(){var e;this.options.e2ee&&("e2eeManager"in this.options.e2ee?this.e2eeManager=this.options.e2ee.e2eeManager:this.e2eeManager=new RV(this.options.e2ee),this.e2eeManager.on(gc.ParticipantEncryptionStatusChanged,(n,r)=>{SV(r)&&(this.isE2EEEnabled=n),this.emit(Ee.ParticipantEncryptionStatusChanged,n,r)}),this.e2eeManager.on(gc.EncryptionError,n=>this.emit(Ee.EncryptionError,n)),(e=this.e2eeManager)===null||e===void 0||e.setup(this))}get logContext(){var e;return{room:this.name,roomID:(e=this.roomInfo)===null||e===void 0?void 0:e.sid,participant:this.localParticipant.identity,pID:this.localParticipant.sid}}get isRecording(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.activeRecording)!==null&&n!==void 0?n:!1}getSid(){return Q(this,void 0,void 0,function*(){return this.state===Fn.Disconnected?"":this.roomInfo&&this.roomInfo.sid!==""?this.roomInfo.sid:new Promise((e,n)=>{const r=a=>{a.sid!==""&&(this.engine.off(tt.RoomUpdate,r),e(a.sid))};this.engine.on(tt.RoomUpdate,r),this.once(Ee.Disconnected,()=>{this.engine.off(tt.RoomUpdate,r),n("Room disconnected before room server id was available")})})})}get name(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.name)!==null&&n!==void 0?n:""}get metadata(){var e;return(e=this.roomInfo)===null||e===void 0?void 0:e.metadata}get numParticipants(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.numParticipants)!==null&&n!==void 0?n:0}get numPublishers(){var e,n;return(n=(e=this.roomInfo)===null||e===void 0?void 0:e.numPublishers)!==null&&n!==void 0?n:0}maybeCreateEngine(){this.engine&&!this.engine.isClosed||(this.engine=new az(this.options),this.engine.on(tt.ParticipantUpdate,this.handleParticipantUpdates).on(tt.RoomUpdate,this.handleRoomUpdate).on(tt.SpeakersChanged,this.handleSpeakersChanged).on(tt.StreamStateChanged,this.handleStreamStateUpdate).on(tt.ConnectionQualityUpdate,this.handleConnectionQualityUpdate).on(tt.SubscriptionError,this.handleSubscriptionError).on(tt.SubscriptionPermissionUpdate,this.handleSubscriptionPermissionUpdate).on(tt.MediaTrackAdded,(e,n,r)=>{this.onTrackAdded(e,n,r)}).on(tt.Disconnected,e=>{this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,e)}).on(tt.ActiveSpeakersUpdate,this.handleActiveSpeakersUpdate).on(tt.DataPacketReceived,this.handleDataPacket).on(tt.Resuming,()=>{this.clearConnectionReconcile(),this.isResuming=!0,this.log.info("Resuming signal connection",this.logContext),this.setAndEmitConnectionState(Fn.SignalReconnecting)&&this.emit(Ee.SignalReconnecting)}).on(tt.Resumed,()=>{this.registerConnectionReconcile(),this.isResuming=!1,this.log.info("Resumed signal connection",this.logContext),this.updateSubscriptions(),this.emitBufferedEvents(),this.setAndEmitConnectionState(Fn.Connected)&&this.emit(Ee.Reconnected)}).on(tt.SignalResumed,()=>{this.bufferedEvents=[],(this.state===Fn.Reconnecting||this.isResuming)&&this.sendSyncState()}).on(tt.Restarting,this.handleRestarting).on(tt.SignalRestarted,this.handleSignalRestarted).on(tt.Offline,()=>{this.setAndEmitConnectionState(Fn.Reconnecting)&&this.emit(Ee.Reconnecting)}).on(tt.DCBufferStatusChanged,(e,n)=>{this.emit(Ee.DCBufferStatusChanged,e,n)}).on(tt.LocalTrackSubscribed,e=>{const n=this.localParticipant.getTrackPublications().find(r=>{let{trackSid:a}=r;return a===e});if(!n){this.log.warn("could not find local track subscription for subscribed event",this.logContext);return}this.localParticipant.emit(Ie.LocalTrackSubscribed,n),this.emitWhenConnected(Ee.LocalTrackSubscribed,n,this.localParticipant)}),this.localParticipant&&this.localParticipant.setupEngine(this.engine),this.e2eeManager&&this.e2eeManager.setupEngine(this.engine))}static getLocalDevices(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return zi.getInstance().getDevices(e,n)}prepareConnection(e,n){return Q(this,void 0,void 0,function*(){if(this.state===Fn.Disconnected){this.log.debug("prepareConnection to ".concat(e),this.logContext);try{if(hT(new URL(e))&&n){this.regionUrlProvider=new UT(e,n);const r=yield this.regionUrlProvider.getNextBestRegionUrl();r&&this.state===Fn.Disconnected&&(this.regionUrl=r,yield fetch(vT(r),{method:"HEAD"}),this.log.debug("prepared connection to ".concat(r),this.logContext))}else yield fetch(vT(e),{method:"HEAD"})}catch(r){this.log.warn("could not prepare connection",Object.assign(Object.assign({},this.logContext),{error:r}))}}})}getParticipantByIdentity(e){return this.localParticipant.identity===e?this.localParticipant:this.remoteParticipants.get(e)}clearConnectionFutures(){this.connectFuture=void 0}simulateScenario(e,n){return Q(this,void 0,void 0,function*(){let r=()=>{},a;switch(e){case"signal-reconnect":yield this.engine.client.handleOnClose("simulate disconnect");break;case"speaker":a=new cl({scenario:{case:"speakerUpdate",value:3}});break;case"node-failure":a=new cl({scenario:{case:"nodeFailure",value:!0}});break;case"server-leave":a=new cl({scenario:{case:"serverLeave",value:!0}});break;case"migration":a=new cl({scenario:{case:"migration",value:!0}});break;case"resume-reconnect":this.engine.failNext(),yield this.engine.client.handleOnClose("simulate resume-disconnect");break;case"disconnect-signal-on-resume":r=()=>Q(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),a=new cl({scenario:{case:"disconnectSignalOnResume",value:!0}});break;case"disconnect-signal-on-resume-no-messages":r=()=>Q(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),a=new cl({scenario:{case:"disconnectSignalOnResumeNoMessages",value:!0}});break;case"full-reconnect":this.engine.fullReconnectOnNext=!0,yield this.engine.client.handleOnClose("simulate full-reconnect");break;case"force-tcp":case"force-tls":a=new cl({scenario:{case:"switchCandidateProtocol",value:e==="force-tls"?2:1}}),r=()=>Q(this,void 0,void 0,function*(){const s=this.engine.client.onLeave;s&&s(new W0({reason:ks.CLIENT_INITIATED,action:Fh.RECONNECT}))});break;case"subscriber-bandwidth":if(n===void 0||typeof n!="number")throw new Error("subscriber-bandwidth requires a number as argument");a=new cl({scenario:{case:"subscriberBandwidth",value:Zd(n)}});break;case"leave-full-reconnect":a=new cl({scenario:{case:"leaveRequestFullReconnect",value:!0}})}a&&(yield this.engine.client.sendSimulateScenario(a),yield r())})}get canPlaybackAudio(){return this.audioEnabled}get canPlaybackVideo(){return!this.isVideoPlaybackBlocked}getActiveDevice(e){return this.localParticipant.activeDeviceMap.get(e)}switchActiveDevice(e,n){return Q(this,arguments,void 0,function(r,a){var s=this;let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return function*(){var c,h,p,v,b,k,T,E;let R=!0,M=!1;const A=l?{exact:a}:a;if(r==="audioinput"){M=s.localParticipant.audioTrackPublications.size===0;const U=(c=s.getActiveDevice(r))!==null&&c!==void 0?c:s.options.audioCaptureDefaults.deviceId;s.options.audioCaptureDefaults.deviceId=A;const V=Array.from(s.localParticipant.audioTrackPublications.values()).filter(j=>j.source===De.Source.Microphone);try{R=(yield Promise.all(V.map(j=>{var I;return(I=j.audioTrack)===null||I===void 0?void 0:I.setDeviceId(A)}))).every(j=>j===!0)}catch(j){throw s.options.audioCaptureDefaults.deviceId=U,j}}else if(r==="videoinput"){M=s.localParticipant.videoTrackPublications.size===0;const U=(h=s.getActiveDevice(r))!==null&&h!==void 0?h:s.options.videoCaptureDefaults.deviceId;s.options.videoCaptureDefaults.deviceId=A;const V=Array.from(s.localParticipant.videoTrackPublications.values()).filter(j=>j.source===De.Source.Camera);try{R=(yield Promise.all(V.map(j=>{var I;return(I=j.videoTrack)===null||I===void 0?void 0:I.setDeviceId(A)}))).every(j=>j===!0)}catch(j){throw s.options.videoCaptureDefaults.deviceId=U,j}}else if(r==="audiooutput"){if(!fT()&&!s.options.webAudioMix||s.options.webAudioMix&&s.audioContext&&!("setSinkId"in s.audioContext))throw new Error("cannot switch audio output, setSinkId not supported");s.options.webAudioMix&&(a=(p=yield zi.getInstance().normalizeDeviceId("audiooutput",a))!==null&&p!==void 0?p:""),(v=(E=s.options).audioOutput)!==null&&v!==void 0||(E.audioOutput={});const U=(b=s.getActiveDevice(r))!==null&&b!==void 0?b:s.options.audioOutput.deviceId;s.options.audioOutput.deviceId=a;try{s.options.webAudioMix&&((k=s.audioContext)===null||k===void 0||k.setSinkId(a)),yield Promise.all(Array.from(s.remoteParticipants.values()).map(V=>V.setAudioOutput({deviceId:a})))}catch(V){throw s.options.audioOutput.deviceId=U,V}}return(M||r==="audiooutput")&&(s.localParticipant.activeDeviceMap.set(r,r==="audiooutput"&&((T=s.options.audioOutput)===null||T===void 0?void 0:T.deviceId)||a),s.emit(Ee.ActiveDeviceChanged,r,a)),R}()})}setupLocalParticipantEvents(){this.localParticipant.on(Ie.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).on(Ie.ParticipantNameChanged,this.onLocalParticipantNameChanged).on(Ie.AttributesChanged,this.onLocalAttributesChanged).on(Ie.TrackMuted,this.onLocalTrackMuted).on(Ie.TrackUnmuted,this.onLocalTrackUnmuted).on(Ie.LocalTrackPublished,this.onLocalTrackPublished).on(Ie.LocalTrackUnpublished,this.onLocalTrackUnpublished).on(Ie.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).on(Ie.MediaDevicesError,this.onMediaDevicesError).on(Ie.AudioStreamAcquired,this.startAudio).on(Ie.ChatMessage,this.onLocalChatMessageSent).on(Ie.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged)}recreateEngine(){var e;(e=this.engine)===null||e===void 0||e.close(),this.engine=void 0,this.isResuming=!1,this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.bufferedEvents=[],this.maybeCreateEngine()}onTrackAdded(e,n,r){if(this.state===Fn.Connecting||this.state===Fn.Reconnecting){const v=()=>{this.onTrackAdded(e,n,r),b()},b=()=>{this.off(Ee.Reconnected,v),this.off(Ee.Connected,v),this.off(Ee.Disconnected,b)};this.once(Ee.Reconnected,v),this.once(Ee.Connected,v),this.once(Ee.Disconnected,b);return}if(this.state===Fn.Disconnected){this.log.warn("skipping incoming track after Room disconnected",this.logContext);return}if(e.readyState==="ended"){this.log.info("skipping incoming track as it already ended",this.logContext);return}const a=oV(n.id),s=a[0];let l=a[1],c=e.id;if(l&&l.startsWith("TR")&&(c=l),s===this.localParticipant.sid){this.log.warn("tried to create RemoteParticipant for local participant",this.logContext);return}const h=Array.from(this.remoteParticipants.values()).find(v=>v.sid===s);if(!h){this.log.error("Tried to add a track for a participant, that's not present. Sid: ".concat(s),this.logContext);return}let p;this.options.adaptiveStream&&(typeof this.options.adaptiveStream=="object"?p=this.options.adaptiveStream:p={}),h.addSubscribedMediaTrack(e,c,n,r,p)}handleDisconnect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,n=arguments.length>1?arguments[1]:void 0;var r;if(this.clearConnectionReconcile(),this.isResuming=!1,this.bufferedEvents=[],this.transcriptionReceivedTimes.clear(),this.state!==Fn.Disconnected){this.regionUrl=void 0;try{this.remoteParticipants.forEach(a=>{a.trackPublications.forEach(s=>{a.unpublishTrack(s.trackSid)})}),this.localParticipant.trackPublications.forEach(a=>{var s,l,c;a.track&&this.localParticipant.unpublishTrack(a.track,e),e?((s=a.track)===null||s===void 0||s.detach(),(l=a.track)===null||l===void 0||l.stop()):(c=a.track)===null||c===void 0||c.stopMonitor()}),this.localParticipant.off(Ie.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).off(Ie.ParticipantNameChanged,this.onLocalParticipantNameChanged).off(Ie.AttributesChanged,this.onLocalAttributesChanged).off(Ie.TrackMuted,this.onLocalTrackMuted).off(Ie.TrackUnmuted,this.onLocalTrackUnmuted).off(Ie.LocalTrackPublished,this.onLocalTrackPublished).off(Ie.LocalTrackUnpublished,this.onLocalTrackUnpublished).off(Ie.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).off(Ie.MediaDevicesError,this.onMediaDevicesError).off(Ie.AudioStreamAcquired,this.startAudio).off(Ie.ChatMessage,this.onLocalChatMessageSent).off(Ie.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged),this.localParticipant.trackPublications.clear(),this.localParticipant.videoTrackPublications.clear(),this.localParticipant.audioTrackPublications.clear(),this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.activeSpeakers=[],this.audioContext&&typeof this.options.webAudioMix=="boolean"&&(this.audioContext.close(),this.audioContext=void 0),ao()&&(window.removeEventListener("beforeunload",this.onPageLeave),window.removeEventListener("pagehide",this.onPageLeave),window.removeEventListener("freeze",this.onPageLeave),(r=navigator.mediaDevices)===null||r===void 0||r.removeEventListener("devicechange",this.handleDeviceChange))}finally{this.setAndEmitConnectionState(Fn.Disconnected),this.emit(Ee.Disconnected,n)}}}handleParticipantDisconnected(e,n){var r;this.remoteParticipants.delete(e),n&&(n.trackPublications.forEach(a=>{n.unpublishTrack(a.trackSid,!0)}),this.emit(Ee.ParticipantDisconnected,n),(r=this.localParticipant)===null||r===void 0||r.handleParticipantDisconnected(n.identity))}handleStreamHeader(e,n){return Q(this,void 0,void 0,function*(){var r;if(e.contentHeader.case==="byteHeader"){const a=this.byteStreamHandlers.get(e.topic);if(!a){this.log.debug("ignoring incoming byte stream due to no handler for topic",e.topic);return}let s;const l={id:e.streamId,name:(r=e.contentHeader.value.name)!==null&&r!==void 0?r:"unknown",mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:ab(e.timestamp),attributes:e.attributes},c=new ReadableStream({start:h=>{s=h,this.byteStreamControllers.set(e.streamId,{info:l,controller:s,startTime:Date.now()})}});a(new uz(l,c,ab(e.totalLength)),{identity:n})}else if(e.contentHeader.case==="textHeader"){const a=this.textStreamHandlers.get(e.topic);if(!a){this.log.debug("ignoring incoming text stream due to no handler for topic",e.topic);return}let s;const l={id:e.streamId,mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:Number(e.timestamp),attributes:e.attributes},c=new ReadableStream({start:h=>{s=h,this.textStreamControllers.set(e.streamId,{info:l,controller:s,startTime:Date.now()})}});a(new cz(l,c,ab(e.totalLength)),{identity:n})}})}handleStreamChunk(e){const n=this.byteStreamControllers.get(e.streamId);n&&e.content.length>0&&n.controller.enqueue(e);const r=this.textStreamControllers.get(e.streamId);r&&e.content.length>0&&r.controller.enqueue(e)}handleStreamTrailer(e){const n=this.textStreamControllers.get(e.streamId);n&&(n.info.attributes=Object.assign(Object.assign({},n.info.attributes),e.attributes),n.controller.close(),this.textStreamControllers.delete(e.streamId));const r=this.byteStreamControllers.get(e.streamId);r&&(r.info.attributes=Object.assign(Object.assign({},r.info.attributes),e.attributes),r.controller.close(),this.byteStreamControllers.delete(e.streamId))}acquireAudioContext(){return Q(this,void 0,void 0,function*(){var e,n;if(typeof this.options.webAudioMix!="boolean"&&this.options.webAudioMix.audioContext?this.audioContext=this.options.webAudioMix.audioContext:(!this.audioContext||this.audioContext.state==="closed")&&(this.audioContext=(e=vO())!==null&&e!==void 0?e:void 0),this.options.webAudioMix&&this.remoteParticipants.forEach(a=>a.setAudioContext(this.audioContext)),this.localParticipant.setAudioContext(this.audioContext),this.audioContext&&this.audioContext.state==="suspended")try{yield Promise.race([this.audioContext.resume(),io(200)])}catch(a){this.log.warn("Could not resume audio context",Object.assign(Object.assign({},this.logContext),{error:a}))}const r=((n=this.audioContext)===null||n===void 0?void 0:n.state)==="running";r!==this.canPlaybackAudio&&(this.audioEnabled=r,this.emit(Ee.AudioPlaybackStatusChanged,r))})}createParticipant(e,n){var r;let a;return n?a=pb.fromParticipantInfo(this.engine.client,n,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}):a=new pb(this.engine.client,"",e,void 0,void 0,void 0,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}),this.options.webAudioMix&&a.setAudioContext(this.audioContext),!((r=this.options.audioOutput)===null||r===void 0)&&r.deviceId&&a.setAudioOutput(this.options.audioOutput).catch(s=>this.log.warn("Could not set audio output: ".concat(s.message),this.logContext)),a}getOrCreateParticipant(e,n){if(this.remoteParticipants.has(e)){const a=this.remoteParticipants.get(e);return n&&a.updateInfo(n)&&this.sidToIdentity.set(n.sid,n.identity),a}const r=this.createParticipant(e,n);return this.remoteParticipants.set(e,r),this.sidToIdentity.set(n.sid,n.identity),this.emitWhenConnected(Ee.ParticipantConnected,r),r.on(Ie.TrackPublished,a=>{this.emitWhenConnected(Ee.TrackPublished,a,r)}).on(Ie.TrackSubscribed,(a,s)=>{a.kind===De.Kind.Audio?(a.on(Qe.AudioPlaybackStarted,this.handleAudioPlaybackStarted),a.on(Qe.AudioPlaybackFailed,this.handleAudioPlaybackFailed)):a.kind===De.Kind.Video&&(a.on(Qe.VideoPlaybackFailed,this.handleVideoPlaybackFailed),a.on(Qe.VideoPlaybackStarted,this.handleVideoPlaybackStarted)),this.emit(Ee.TrackSubscribed,a,s,r)}).on(Ie.TrackUnpublished,a=>{this.emit(Ee.TrackUnpublished,a,r)}).on(Ie.TrackUnsubscribed,(a,s)=>{this.emit(Ee.TrackUnsubscribed,a,s,r)}).on(Ie.TrackMuted,a=>{this.emitWhenConnected(Ee.TrackMuted,a,r)}).on(Ie.TrackUnmuted,a=>{this.emitWhenConnected(Ee.TrackUnmuted,a,r)}).on(Ie.ParticipantMetadataChanged,a=>{this.emitWhenConnected(Ee.ParticipantMetadataChanged,a,r)}).on(Ie.ParticipantNameChanged,a=>{this.emitWhenConnected(Ee.ParticipantNameChanged,a,r)}).on(Ie.AttributesChanged,a=>{this.emitWhenConnected(Ee.ParticipantAttributesChanged,a,r)}).on(Ie.ConnectionQualityChanged,a=>{this.emitWhenConnected(Ee.ConnectionQualityChanged,a,r)}).on(Ie.ParticipantPermissionsChanged,a=>{this.emitWhenConnected(Ee.ParticipantPermissionsChanged,a,r)}).on(Ie.TrackSubscriptionStatusChanged,(a,s)=>{this.emitWhenConnected(Ee.TrackSubscriptionStatusChanged,a,s,r)}).on(Ie.TrackSubscriptionFailed,(a,s)=>{this.emit(Ee.TrackSubscriptionFailed,a,r,s)}).on(Ie.TrackSubscriptionPermissionChanged,(a,s)=>{this.emitWhenConnected(Ee.TrackSubscriptionPermissionChanged,a,s,r)}),n&&r.updateInfo(n),r}sendSyncState(){const e=Array.from(this.remoteParticipants.values()).reduce((r,a)=>(r.push(...a.getTrackPublications()),r),[]),n=this.localParticipant.getTrackPublications();this.engine.sendSyncState(e,n)}updateSubscriptions(){for(const e of this.remoteParticipants.values())for(const n of e.videoTrackPublications.values())n.isSubscribed&&bV(n)&&n.emitTrackUpdate()}getRemoteParticipantBySid(e){const n=this.sidToIdentity.get(e);if(n)return this.remoteParticipants.get(n)}registerConnectionReconcile(){this.clearConnectionReconcile();let e=0;this.connectionReconcileInterval=Qi.setInterval(()=>{!this.engine||this.engine.isClosed||!this.engine.verifyTransport()?(e++,this.log.warn("detected connection state mismatch",Object.assign(Object.assign({},this.logContext),{numFailures:e,engine:this.engine?{closed:this.engine.isClosed,transportsConnected:this.engine.verifyTransport()}:void 0})),e>=3&&(this.recreateEngine(),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,ks.STATE_MISMATCH))):e=0},bz)}clearConnectionReconcile(){this.connectionReconcileInterval&&Qi.clearInterval(this.connectionReconcileInterval)}setAndEmitConnectionState(e){return e===this.state?!1:(this.state=e,this.emit(Ee.ConnectionStateChanged,this.state),!0)}emitBufferedEvents(){this.bufferedEvents.forEach(e=>{let[n,r]=e;this.emit(n,...r)}),this.bufferedEvents=[]}emitWhenConnected(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];if(this.state===Fn.Reconnecting||this.isResuming||!this.engine||this.engine.pendingReconnect)this.bufferedEvents.push([e,r]);else if(this.state===Fn.Connected)return this.emit(e,...r);return!1}simulateParticipants(e){return Q(this,void 0,void 0,function*(){var n,r;const a=Object.assign({audio:!0,video:!0,useRealTracks:!1},e.publish),s=Object.assign({count:9,audio:!1,video:!0,aspectRatios:[1.66,1.7,1.3]},e.participants);if(this.handleDisconnect(),this.roomInfo=new A1({sid:"RM_SIMULATED",name:"simulated-room",emptyTimeout:0,maxParticipants:0,creationTime:Ur.parse(new Date().getTime()),metadata:"",numParticipants:1,numPublishers:1,turnPassword:"",enabledCodecs:[],activeRecording:!1}),this.localParticipant.updateInfo(new wg({identity:"simulated-local",name:"local-name"})),this.setupLocalParticipantEvents(),this.emit(Ee.SignalConnected),this.emit(Ee.Connected),this.setAndEmitConnectionState(Fn.Connected),a.video){const l=new VT(De.Kind.Video,new Uh({source:gi.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:Cs.AUDIO,name:"video-dummy"}),new db(a.useRealTracks?(yield window.navigator.mediaDevices.getUserMedia({video:!0})).getVideoTracks()[0]:fO(160*((n=s.aspectRatios[0])!==null&&n!==void 0?n:1),160,!0,!0),void 0,!1,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(l),this.localParticipant.emit(Ie.LocalTrackPublished,l)}if(a.audio){const l=new VT(De.Kind.Audio,new Uh({source:gi.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:Cs.AUDIO}),new ub(a.useRealTracks?(yield navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0]:gT(),void 0,!1,this.audioContext,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(l),this.localParticipant.emit(Ie.LocalTrackPublished,l)}for(let l=0;l<s.count-1;l+=1){let c=new wg({sid:Math.floor(Math.random()*1e4).toString(),identity:"simulated-".concat(l),state:O1.ACTIVE,tracks:[],joinedAt:Ur.parse(Date.now())});const h=this.getOrCreateParticipant(c.identity,c);if(s.video){const p=fO(160*((r=s.aspectRatios[l%s.aspectRatios.length])!==null&&r!==void 0?r:1),160,!1,!0),v=new Uh({source:gi.CAMERA,sid:Math.floor(Math.random()*1e4).toString(),type:Cs.AUDIO});h.addSubscribedMediaTrack(p,v.sid,new MediaStream([p]),new RTCRtpReceiver),c.tracks=[...c.tracks,v]}if(s.audio){const p=gT(),v=new Uh({source:gi.MICROPHONE,sid:Math.floor(Math.random()*1e4).toString(),type:Cs.AUDIO});h.addSubscribedMediaTrack(p,v.sid,new MediaStream([p]),new RTCRtpReceiver),c.tracks=[...c.tracks,v]}h.updateInfo(c)}})}emit(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),a=1;a<n;a++)r[a-1]=arguments[a];if(e!==Ee.ActiveSpeakersChanged&&e!==Ee.TranscriptionReceived){const s=YO(r).filter(l=>l!==void 0);this.log.debug("room event ".concat(e),Object.assign(Object.assign({},this.logContext),{event:e,args:s}))}return super.emit(e,...r)}}Gh.cleanupRegistry=typeof FinalizationRegistry<"u"&&new FinalizationRegistry(t=>{t()});function YO(t){return t.map(e=>{if(e)return Array.isArray(e)?YO(e):typeof e=="object"?"logContext"in e?e.logContext:void 0:e})}var Rs;(function(t){t[t.IDLE=0]="IDLE",t[t.RUNNING=1]="RUNNING",t[t.SKIPPED=2]="SKIPPED",t[t.SUCCESS=3]="SUCCESS",t[t.FAILED=4]="FAILED"})(Rs||(Rs={}));class xc extends dl.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.status=Rs.IDLE,this.logs=[],this.options={},this.url=e,this.token=n,this.name=this.constructor.name,this.room=new Gh(r.roomOptions),this.connectOptions=r.connectOptions,this.options=r}run(e){return Q(this,void 0,void 0,function*(){if(this.status!==Rs.IDLE)throw Error("check is running already");this.setStatus(Rs.RUNNING);try{yield this.perform()}catch(n){n instanceof Error&&(this.options.errorsAsWarnings?this.appendWarning(n.message):this.appendError(n.message))}return yield this.disconnect(),yield new Promise(n=>setTimeout(n,500)),this.status!==Rs.SKIPPED&&this.setStatus(this.isSuccess()?Rs.SUCCESS:Rs.FAILED),e&&e(),this.getInfo()})}isSuccess(){return!this.logs.some(e=>e.level==="error")}connect(e){return Q(this,void 0,void 0,function*(){return this.room.state===Fn.Connected?this.room:(e||(e=this.url),yield this.room.connect(e,this.token,this.connectOptions),this.room)})}disconnect(){return Q(this,void 0,void 0,function*(){this.room&&this.room.state!==Fn.Disconnected&&(yield this.room.disconnect(),yield new Promise(e=>setTimeout(e,500)))})}skip(){this.setStatus(Rs.SKIPPED)}switchProtocol(e){return Q(this,void 0,void 0,function*(){let n=!1,r=!1;if(this.room.on(Ee.Reconnecting,()=>{n=!0}),this.room.once(Ee.Reconnected,()=>{r=!0}),this.room.simulateScenario("force-".concat(e)),yield new Promise(s=>setTimeout(s,1e3)),!n)return;const a=Date.now()+1e4;for(;Date.now()<a;){if(r)return;yield io(100)}throw new Error("Could not reconnect using ".concat(e," protocol after 10 seconds"))})}appendMessage(e){this.logs.push({level:"info",message:e}),this.emit("update",this.getInfo())}appendWarning(e){this.logs.push({level:"warning",message:e}),this.emit("update",this.getInfo())}appendError(e){this.logs.push({level:"error",message:e}),this.emit("update",this.getInfo())}setStatus(e){this.status=e,this.emit("update",this.getInfo())}get engine(){var e;return(e=this.room)===null||e===void 0?void 0:e.engine}getInfo(){return{logs:this.logs,name:this.name,status:this.status,description:this.description}}}class Sz extends xc{get description(){return"Cloud regions"}perform(){return Q(this,void 0,void 0,function*(){const e=new UT(this.url,this.token);if(!e.isCloud()){this.skip();return}const n=[],r=new Set;for(let s=0;s<3;s++){const l=yield e.getNextBestRegionUrl();if(!l)break;if(r.has(l))continue;r.add(l);const c=yield this.checkCloudRegion(l);this.appendMessage("".concat(c.region," RTT: ").concat(c.rtt,"ms, duration: ").concat(c.duration,"ms")),n.push(c)}n.sort((s,l)=>(s.duration-l.duration)*.5+(s.rtt-l.rtt)*.5);const a=n[0];this.bestStats=a,this.appendMessage("best Cloud region: ".concat(a.region))})}getInfo(){const e=super.getInfo();return e.data=this.bestStats,e}checkCloudRegion(e){return Q(this,void 0,void 0,function*(){var n,r;yield this.connect(e),this.options.protocol==="tcp"&&(yield this.switchProtocol("tcp"));const a=(n=this.room.serverInfo)===null||n===void 0?void 0:n.region;if(!a)throw new Error("Region not found");const s=yield this.room.localParticipant.streamText({topic:"test"}),l=1e3,h=1e6/l,p="A".repeat(l),v=Date.now();for(let E=0;E<h;E++)yield s.write(p);yield s.close();const b=Date.now(),k=yield(r=this.room.engine.pcManager)===null||r===void 0?void 0:r.publisher.getStats(),T={region:a,rtt:1e4,duration:b-v};return k==null||k.forEach(E=>{E.type==="candidate-pair"&&E.nominated&&(T.rtt=E.currentRoundTripTime*1e3)}),yield this.disconnect(),T})}}const zT=1e4;class Cz extends xc{get description(){return"Connection via UDP vs TCP"}perform(){return Q(this,void 0,void 0,function*(){const e=yield this.checkConnectionProtocol("udp"),n=yield this.checkConnectionProtocol("tcp");this.bestStats=e,e.qualityLimitationDurations.bandwidth-n.qualityLimitationDurations.bandwidth>.5||(e.packetsLost-n.packetsLost)/e.packetsSent>.01?(this.appendMessage("best connection quality via tcp"),this.bestStats=n):this.appendMessage("best connection quality via udp");const r=this.bestStats;this.appendMessage("upstream bitrate: ".concat((r.bitrateTotal/r.count/1e3/1e3).toFixed(2)," mbps")),this.appendMessage("RTT: ".concat((r.rttTotal/r.count*1e3).toFixed(2)," ms")),this.appendMessage("jitter: ".concat((r.jitterTotal/r.count*1e3).toFixed(2)," ms")),r.packetsLost>0&&this.appendWarning("packets lost: ".concat((r.packetsLost/r.packetsSent*100).toFixed(2),"%")),r.qualityLimitationDurations.bandwidth>1&&this.appendWarning("bandwidth limited ".concat((r.qualityLimitationDurations.bandwidth/(zT/1e3)*100).toFixed(2),"%")),r.qualityLimitationDurations.cpu>0&&this.appendWarning("cpu limited ".concat((r.qualityLimitationDurations.cpu/(zT/1e3)*100).toFixed(2),"%"))})}getInfo(){const e=super.getInfo();return e.data=this.bestStats,e}checkConnectionProtocol(e){return Q(this,void 0,void 0,function*(){yield this.connect(),e==="tcp"?yield this.switchProtocol("tcp"):yield this.switchProtocol("udp");const n=document.createElement("canvas");n.width=1280,n.height=720;const r=n.getContext("2d");if(!r)throw new Error("Could not get canvas context");let a=0;const s=()=>{a=(a+1)%360,r.fillStyle="hsl(".concat(a,", 100%, 50%)"),r.fillRect(0,0,n.width,n.height),requestAnimationFrame(s)};s();const c=n.captureStream(30).getVideoTracks()[0],p=(yield this.room.localParticipant.publishTrack(c,{simulcast:!1,degradationPreference:"maintain-resolution",videoEncoding:{maxBitrate:2e6}})).track,v={protocol:e,packetsLost:0,packetsSent:0,qualityLimitationDurations:{},rttTotal:0,jitterTotal:0,bitrateTotal:0,count:0},b=setInterval(()=>Q(this,void 0,void 0,function*(){const k=yield p.getRTCStatsReport();k==null||k.forEach(T=>{T.type==="outbound-rtp"?(v.packetsSent=T.packetsSent,v.qualityLimitationDurations=T.qualityLimitationDurations,v.bitrateTotal+=T.targetBitrate,v.count++):T.type==="remote-inbound-rtp"&&(v.packetsLost=T.packetsLost,v.rttTotal+=T.roundTripTime,v.jitterTotal+=T.jitter)})}),1e3);return yield new Promise(k=>setTimeout(k,zT)),clearInterval(b),c.stop(),n.remove(),yield this.disconnect(),v})}}class kz extends xc{get description(){return"Can publish audio"}perform(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.connect(),r=yield gz();if(yield gO(r,1e3))throw new Error("unable to detect audio from microphone");this.appendMessage("detected audio from microphone"),n.localParticipant.publishTrack(r),yield new Promise(c=>setTimeout(c,3e3));const s=yield(e=r.sender)===null||e===void 0?void 0:e.getStats();if(!s)throw new Error("Could not get RTCStats");let l=0;if(s.forEach(c=>{c.type==="outbound-rtp"&&(c.kind==="audio"||!c.kind&&c.mediaType==="audio")&&(l=c.packetsSent)}),l===0)throw new Error("Could not determine packets are sent");this.appendMessage("published ".concat(l," audio packets"))})}}class Tz extends xc{get description(){return"Can publish video"}perform(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.connect(),r=yield mz();yield this.checkForVideo(r.mediaStreamTrack),n.localParticipant.publishTrack(r),yield new Promise(l=>setTimeout(l,5e3));const a=yield(e=r.sender)===null||e===void 0?void 0:e.getStats();if(!a)throw new Error("Could not get RTCStats");let s=0;if(a.forEach(l=>{l.type==="outbound-rtp"&&(l.kind==="video"||!l.kind&&l.mediaType==="video")&&(s+=l.packetsSent)}),s===0)throw new Error("Could not determine packets are sent");this.appendMessage("published ".concat(s," video packets"))})}checkForVideo(e){return Q(this,void 0,void 0,function*(){const n=new MediaStream;n.addTrack(e.clone());const r=document.createElement("video");r.srcObject=n,r.muted=!0,yield new Promise(a=>{r.onplay=()=>{setTimeout(()=>{var s,l,c,h;const p=document.createElement("canvas"),v=e.getSettings(),b=(l=(s=v.width)!==null&&s!==void 0?s:r.videoWidth)!==null&&l!==void 0?l:1280,k=(h=(c=v.height)!==null&&c!==void 0?c:r.videoHeight)!==null&&h!==void 0?h:720;p.width=b,p.height=k;const T=p.getContext("2d");T.drawImage(r,0,0);const R=T.getImageData(0,0,p.width,p.height).data;let M=!0;for(let A=0;A<R.length;A+=4)if(R[A]!==0||R[A+1]!==0||R[A+2]!==0){M=!1;break}M?this.appendError("camera appears to be producing only black frames"):this.appendMessage("received video frames"),a()},1e3)},r.play()}),r.remove()})}}class xz extends xc{get description(){return"Resuming connection after interruption"}perform(){return Q(this,void 0,void 0,function*(){var e;const n=yield this.connect();let r=!1,a=!1,s;const l=new Promise(p=>{setTimeout(p,5e3),s=p}),c=()=>{r=!0};n.on(Ee.SignalReconnecting,c).on(Ee.Reconnecting,c).on(Ee.Reconnected,()=>{a=!0,s(!0)}),(e=n.engine.client.ws)===null||e===void 0||e.close();const h=n.engine.client.onClose;if(h&&h(""),yield l,r){if(!a||n.state!==Fn.Connected)throw this.appendWarning("reconnection is only possible in Redis-based configurations"),new Error("Not able to reconnect")}else throw new Error("Did not attempt to reconnect")})}}class wz extends xc{get description(){return"Can connect via TURN"}perform(){return Q(this,void 0,void 0,function*(){var e,n;const r=new TT,a=yield r.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15e3});let s=!1,l=!1,c=!1;for(let h of a.iceServers)for(let p of h.urls)p.startsWith("turn:")?(l=!0,c=!0):p.startsWith("turns:")&&(l=!0,c=!0,s=!0),p.startsWith("stun:")&&(c=!0);c?l&&!s&&this.appendWarning("TURN is configured server side, but TURN/TLS is unavailable."):this.appendWarning("No STUN servers configured on server side."),yield r.close(),!((n=(e=this.connectOptions)===null||e===void 0?void 0:e.rtcConfig)===null||n===void 0)&&n.iceServers||l?yield this.room.connect(this.url,this.token,{rtcConfig:{iceTransportPolicy:"relay"}}):(this.appendWarning("No TURN servers configured."),this.skip(),yield new Promise(h=>setTimeout(h,0)))})}}class _z extends xc{get description(){return"Establishing WebRTC connection"}perform(){return Q(this,void 0,void 0,function*(){let e=!1,n=!1;this.room.on(Ee.SignalConnected,()=>{const r=this.room.engine.client.onTrickle;this.room.engine.client.onTrickle=(a,s)=>{if(a.candidate){const l=new RTCIceCandidate(a);let c="".concat(l.protocol," ").concat(l.address,":").concat(l.port," ").concat(l.type);l.address&&(Ez(l.address)?c+=" (private)":l.protocol==="tcp"&&l.tcpType==="passive"?(e=!0,c+=" (passive)"):l.protocol==="udp"&&(n=!0)),this.appendMessage(c)}r&&r(a,s)},this.room.engine.pcManager&&(this.room.engine.pcManager.subscriber.onIceCandidateError=a=>{a instanceof RTCPeerConnectionIceErrorEvent&&this.appendWarning("error with ICE candidate: ".concat(a.errorCode," ").concat(a.errorText," ").concat(a.url))})});try{yield this.connect(),Nn.info("now the room is connected")}catch(r){throw this.appendWarning("ports need to be open on firewall in order to connect."),r}e||this.appendWarning("Server is not configured for ICE/TCP"),n||this.appendWarning("No public IPv4 UDP candidates were found. Your server is likely not configured correctly")})}}function Ez(t){const e=t.split(".");if(e.length===4){if(e[0]==="10")return!0;if(e[0]==="192"&&e[1]==="168")return!0;if(e[0]==="172"){const n=parseInt(e[1],10);if(n>=16&&n<=31)return!0}}return!1}class Rz extends xc{get description(){return"Connecting to signal connection via WebSocket"}perform(){return Q(this,void 0,void 0,function*(){var e,n,r;(this.url.startsWith("ws:")||this.url.startsWith("http:"))&&this.appendWarning("Server is insecure, clients may block connections to it");let a=new TT;const s=yield a.join(this.url,this.token,{autoSubscribe:!0,maxRetries:0,e2eeEnabled:!1,websocketTimeout:15e3});this.appendMessage("Connected to server, version ".concat(s.serverVersion,".")),((e=s.serverInfo)===null||e===void 0?void 0:e.edition)===YD.Cloud&&(!((n=s.serverInfo)===null||n===void 0)&&n.region)&&this.appendMessage("LiveKit Cloud: ".concat((r=s.serverInfo)===null||r===void 0?void 0:r.region)),yield a.close()})}}class Ase extends dl.EventEmitter{constructor(e,n){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};super(),this.options={},this.checkResults=new Map,this.url=e,this.token=n,this.options=r}getNextCheckId(){const e=this.checkResults.size;return this.checkResults.set(e,{logs:[],status:Rs.IDLE,name:"",description:""}),e}updateCheck(e,n){this.checkResults.set(e,n),this.emit("checkUpdate",e,n)}isSuccess(){return Array.from(this.checkResults.values()).every(e=>e.status!==Rs.FAILED)}getResults(){return Array.from(this.checkResults.values())}createAndRunCheck(e){return Q(this,void 0,void 0,function*(){const n=this.getNextCheckId(),r=new e(this.url,this.token,this.options),a=l=>{this.updateCheck(n,l)};r.on("update",a);const s=yield r.run();return r.off("update",a),s})}checkWebsocket(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(Rz)})}checkWebRTC(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(_z)})}checkTURN(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(wz)})}checkReconnect(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(xz)})}checkPublishAudio(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(kz)})}checkPublishVideo(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(Tz)})}checkConnectionProtocol(){return Q(this,void 0,void 0,function*(){const e=yield this.createAndRunCheck(Cz);if(e.data&&"protocol"in e.data){const n=e.data;this.options.protocol=n.protocol}return e})}checkCloudRegion(){return Q(this,void 0,void 0,function*(){return this.createAndRunCheck(Sz)})}}var mb=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Pz(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var BT={exports:{}},Dz=BT.exports,KO;function Az(){return KO||(KO=1,function(t){(function(e,n){t.exports?t.exports=n():e.log=n()})(Dz,function(){var e=function(){},n="undefined",r=typeof window!==n&&typeof window.navigator!==n&&/Trident\/|MSIE /.test(window.navigator.userAgent),a=["trace","debug","info","warn","error"],s={},l=null;function c(R,M){var A=R[M];if(typeof A.bind=="function")return A.bind(R);try{return Function.prototype.bind.call(A,R)}catch{return function(){return Function.prototype.apply.apply(A,[R,arguments])}}}function h(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function p(R){return R==="debug"&&(R="log"),typeof console===n?!1:R==="trace"&&r?h:console[R]!==void 0?c(console,R):console.log!==void 0?c(console,"log"):e}function v(){for(var R=this.getLevel(),M=0;M<a.length;M++){var A=a[M];this[A]=M<R?e:this.methodFactory(A,R,this.name)}if(this.log=this.debug,typeof console===n&&R<this.levels.SILENT)return"No console available for logging"}function b(R){return function(){typeof console!==n&&(v.call(this),this[R].apply(this,arguments))}}function k(R,M,A){return p(R)||b.apply(this,arguments)}function T(R,M){var A=this,U,V,j,I="loglevel";typeof R=="string"?I+=":"+R:typeof R=="symbol"&&(I=void 0);function N(oe){var J=(a[oe]||"silent").toUpperCase();if(!(typeof window===n||!I)){try{window.localStorage[I]=J;return}catch{}try{window.document.cookie=encodeURIComponent(I)+"="+J+";"}catch{}}}function ne(){var oe;if(!(typeof window===n||!I)){try{oe=window.localStorage[I]}catch{}if(typeof oe===n)try{var J=window.document.cookie,xe=encodeURIComponent(I),ke=J.indexOf(xe+"=");ke!==-1&&(oe=/^([^;]+)/.exec(J.slice(ke+xe.length+1))[1])}catch{}return A.levels[oe]===void 0&&(oe=void 0),oe}}function X(){if(!(typeof window===n||!I)){try{window.localStorage.removeItem(I)}catch{}try{window.document.cookie=encodeURIComponent(I)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch{}}}function se(oe){var J=oe;if(typeof J=="string"&&A.levels[J.toUpperCase()]!==void 0&&(J=A.levels[J.toUpperCase()]),typeof J=="number"&&J>=0&&J<=A.levels.SILENT)return J;throw new TypeError("log.setLevel() called with invalid level: "+oe)}A.name=R,A.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},A.methodFactory=M||k,A.getLevel=function(){return j??V??U},A.setLevel=function(oe,J){return j=se(oe),J!==!1&&N(j),v.call(A)},A.setDefaultLevel=function(oe){V=se(oe),ne()||A.setLevel(oe,!1)},A.resetLevel=function(){j=null,X(),v.call(A)},A.enableAll=function(oe){A.setLevel(A.levels.TRACE,oe)},A.disableAll=function(oe){A.setLevel(A.levels.SILENT,oe)},A.rebuild=function(){if(l!==A&&(U=se(l.getLevel())),v.call(A),l===A)for(var oe in s)s[oe].rebuild()},U=se(l?l.getLevel():"WARN");var $=ne();$!=null&&(j=se($)),v.call(A)}l=new T,l.getLogger=function(R){if(typeof R!="symbol"&&typeof R!="string"||R==="")throw new TypeError("You must supply a name when creating a logger.");var M=s[R];return M||(M=s[R]=new T(R,l.methodFactory)),M};var E=typeof window!==n?window.log:void 0;return l.noConflict=function(){return typeof window!==n&&window.log===l&&(window.log=E),l},l.getLoggers=function(){return s},l.default=l,l})}(BT)),BT.exports}var Oz=Az();const Mz=Pz(Oz);var HT=function(t,e){return HT=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[a]=r[a])},HT(t,e)};function fu(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");HT(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}function Lz(t,e,n,r){function a(s){return s instanceof n?s:new n(function(l){l(s)})}return new(n||(n=Promise))(function(s,l){function c(v){try{p(r.next(v))}catch(b){l(b)}}function h(v){try{p(r.throw(v))}catch(b){l(b)}}function p(v){v.done?s(v.value):a(v.value).then(c,h)}p((r=r.apply(t,[])).next())})}function ZO(t,e){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},r,a,s,l=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return l.next=c(0),l.throw=c(1),l.return=c(2),typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function c(p){return function(v){return h([p,v])}}function h(p){if(r)throw new TypeError("Generator is already executing.");for(;l&&(l=0,p[0]&&(n=0)),n;)try{if(r=1,a&&(s=p[0]&2?a.return:p[0]?a.throw||((s=a.return)&&s.call(a),0):a.next)&&!(s=s.call(a,p[1])).done)return s;switch(a=0,s&&(p=[p[0]&2,s.value]),p[0]){case 0:case 1:s=p;break;case 4:return n.label++,{value:p[1],done:!1};case 5:n.label++,a=p[1],p=[0];continue;case 7:p=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(p[0]===6||p[0]===2)){n=0;continue}if(p[0]===3&&(!s||p[1]>s[0]&&p[1]<s[3])){n.label=p[1];break}if(p[0]===6&&n.label<s[1]){n.label=s[1],s=p;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(p);break}s[2]&&n.ops.pop(),n.trys.pop();continue}p=e.call(t,n)}catch(v){p=[6,v],a=0}finally{r=s=0}if(p[0]&5)throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}}function Yh(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function gb(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var r=n.call(t),a,s=[],l;try{for(;(e===void 0||e-- >0)&&!(a=r.next()).done;)s.push(a.value)}catch(c){l={error:c}}finally{try{a&&!a.done&&(n=r.return)&&n.call(r)}finally{if(l)throw l.error}}return s}function vb(t,e,n){if(arguments.length===2)for(var r=0,a=e.length,s;r<a;r++)(s||!(r in e))&&(s||(s=Array.prototype.slice.call(e,0,r)),s[r]=e[r]);return t.concat(s||Array.prototype.slice.call(e))}function Kh(t){return this instanceof Kh?(this.v=t,this):new Kh(t)}function Nz(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),a,s=[];return a=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),c("next"),c("throw"),c("return",l),a[Symbol.asyncIterator]=function(){return this},a;function l(T){return function(E){return Promise.resolve(E).then(T,b)}}function c(T,E){r[T]&&(a[T]=function(R){return new Promise(function(M,A){s.push([T,R,M,A])>1||h(T,R)})},E&&(a[T]=E(a[T])))}function h(T,E){try{p(r[T](E))}catch(R){k(s[0][3],R)}}function p(T){T.value instanceof Kh?Promise.resolve(T.value.v).then(v,b):k(s[0][2],T)}function v(T){h("next",T)}function b(T){h("throw",T)}function k(T,E){T(E),s.shift(),s.length&&h(s[0][0],s[0][1])}}function Iz(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof Yh=="function"?Yh(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=t[s]&&function(l){return new Promise(function(c,h){l=t[s](l),a(c,h,l.done,l.value)})}}function a(s,l,c,h){Promise.resolve(h).then(function(p){s({value:p,done:c})},l)}}function wi(t){return typeof t=="function"}function $T(t){var e=function(r){Error.call(r),r.stack=new Error().stack},n=t(e);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var qT=$T(function(t){return function(e){t(this),this.message=e?e.length+` errors occurred during unsubscription:
279
279
  `+e.map(function(n,r){return r+1+") "+n.toString()}).join(`
280
280
  `):"",this.name="UnsubscriptionError",this.errors=e}});function yb(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var Lg=function(){function t(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var e,n,r,a,s;if(!this.closed){this.closed=!0;var l=this._parentage;if(l)if(this._parentage=null,Array.isArray(l))try{for(var c=Yh(l),h=c.next();!h.done;h=c.next()){var p=h.value;p.remove(this)}}catch(R){e={error:R}}finally{try{h&&!h.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}else l.remove(this);var v=this.initialTeardown;if(wi(v))try{v()}catch(R){s=R instanceof qT?R.errors:[R]}var b=this._finalizers;if(b){this._finalizers=null;try{for(var k=Yh(b),T=k.next();!T.done;T=k.next()){var E=T.value;try{JO(E)}catch(R){s=s??[],R instanceof qT?s=vb(vb([],gb(s)),gb(R.errors)):s.push(R)}}}catch(R){r={error:R}}finally{try{T&&!T.done&&(a=k.return)&&a.call(k)}finally{if(r)throw r.error}}}if(s)throw new qT(s)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)JO(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(e)}},t.prototype._hasParent=function(e){var n=this._parentage;return n===e||Array.isArray(n)&&n.includes(e)},t.prototype._addParent=function(e){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(e),n):n?[n,e]:e},t.prototype._removeParent=function(e){var n=this._parentage;n===e?this._parentage=null:Array.isArray(n)&&yb(n,e)},t.prototype.remove=function(e){var n=this._finalizers;n&&yb(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}(),QO=Lg.EMPTY;function XO(t){return t instanceof Lg||t&&"closed"in t&&wi(t.remove)&&wi(t.add)&&wi(t.unsubscribe)}function JO(t){wi(t)?t():t.unsubscribe()}var Uz={Promise:void 0},Fz={setTimeout:function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setTimeout.apply(void 0,vb([t,e],gb(n)))},clearTimeout:function(t){return clearTimeout(t)},delegate:void 0};function eM(t){Fz.setTimeout(function(){throw t})}function WT(){}function bb(t){t()}var GT=function(t){fu(e,t);function e(n){var r=t.call(this)||this;return r.isStopped=!1,n?(r.destination=n,XO(n)&&n.add(r)):r.destination=zz,r}return e.create=function(n,r,a){return new YT(n,r,a)},e.prototype.next=function(n){this.isStopped||this._next(n)},e.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(n){this.destination.next(n)},e.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(Lg),jz=function(){function t(e){this.partialObserver=e}return t.prototype.next=function(e){var n=this.partialObserver;if(n.next)try{n.next(e)}catch(r){Sb(r)}},t.prototype.error=function(e){var n=this.partialObserver;if(n.error)try{n.error(e)}catch(r){Sb(r)}else Sb(e)},t.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(n){Sb(n)}},t}(),YT=function(t){fu(e,t);function e(n,r,a){var s=t.call(this)||this,l;return wi(n)||!n?l={next:n??void 0,error:r??void 0,complete:a??void 0}:l=n,s.destination=new jz(l),s}return e}(GT);function Sb(t){eM(t)}function Vz(t){throw t}var zz={closed:!0,next:WT,error:Vz,complete:WT},KT=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function tM(t){return t}function Bz(t){return t.length===0?tM:t.length===1?t[0]:function(e){return t.reduce(function(n,r){return r(n)},e)}}var _i=function(){function t(e){e&&(this._subscribe=e)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(e,n,r){var a=this,s=$z(e)?e:new YT(e,n,r);return bb(function(){var l=a,c=l.operator,h=l.source;s.add(c?c.call(s,h):h?a._subscribe(s):a._trySubscribe(s))}),s},t.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(n){e.error(n)}},t.prototype.forEach=function(e,n){var r=this;return n=nM(n),new n(function(a,s){var l=new YT({next:function(c){try{e(c)}catch(h){s(h),l.unsubscribe()}},error:s,complete:a});r.subscribe(l)})},t.prototype._subscribe=function(e){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(e)},t.prototype[KT]=function(){return this},t.prototype.pipe=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return Bz(e)(this)},t.prototype.toPromise=function(e){var n=this;return e=nM(e),new e(function(r,a){var s;n.subscribe(function(l){return s=l},function(l){return a(l)},function(){return r(s)})})},t.create=function(e){return new t(e)},t}();function nM(t){var e;return(e=t??Uz.Promise)!==null&&e!==void 0?e:Promise}function Hz(t){return t&&wi(t.next)&&wi(t.error)&&wi(t.complete)}function $z(t){return t&&t instanceof GT||Hz(t)&&XO(t)}function qz(t){return wi(t==null?void 0:t.lift)}function wc(t){return function(e){if(qz(e))return e.lift(function(n){try{return t(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function Xd(t,e,n,r,a){return new Wz(t,e,n,r,a)}var Wz=function(t){fu(e,t);function e(n,r,a,s,l,c){var h=t.call(this,n)||this;return h.onFinalize=l,h.shouldUnsubscribe=c,h._next=r?function(p){try{r(p)}catch(v){n.error(v)}}:t.prototype._next,h._error=s?function(p){try{s(p)}catch(v){n.error(v)}finally{this.unsubscribe()}}:t.prototype._error,h._complete=a?function(){try{a()}catch(p){n.error(p)}finally{this.unsubscribe()}}:t.prototype._complete,h}return e.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var r=this.closed;t.prototype.unsubscribe.call(this),!r&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},e}(GT),Gz=$T(function(t){return function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}}),Cb=function(t){fu(e,t);function e(){var n=t.call(this)||this;return n.closed=!1,n.currentObservers=null,n.observers=[],n.isStopped=!1,n.hasError=!1,n.thrownError=null,n}return e.prototype.lift=function(n){var r=new rM(this,this);return r.operator=n,r},e.prototype._throwIfClosed=function(){if(this.closed)throw new Gz},e.prototype.next=function(n){var r=this;bb(function(){var a,s;if(r._throwIfClosed(),!r.isStopped){r.currentObservers||(r.currentObservers=Array.from(r.observers));try{for(var l=Yh(r.currentObservers),c=l.next();!c.done;c=l.next()){var h=c.value;h.next(n)}}catch(p){a={error:p}}finally{try{c&&!c.done&&(s=l.return)&&s.call(l)}finally{if(a)throw a.error}}}})},e.prototype.error=function(n){var r=this;bb(function(){if(r._throwIfClosed(),!r.isStopped){r.hasError=r.isStopped=!0,r.thrownError=n;for(var a=r.observers;a.length;)a.shift().error(n)}})},e.prototype.complete=function(){var n=this;bb(function(){if(n._throwIfClosed(),!n.isStopped){n.isStopped=!0;for(var r=n.observers;r.length;)r.shift().complete()}})},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var n;return((n=this.observers)===null||n===void 0?void 0:n.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(n){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,n)},e.prototype._subscribe=function(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)},e.prototype._innerSubscribe=function(n){var r=this,a=this,s=a.hasError,l=a.isStopped,c=a.observers;return s||l?QO:(this.currentObservers=null,c.push(n),new Lg(function(){r.currentObservers=null,yb(c,n)}))},e.prototype._checkFinalizedStatuses=function(n){var r=this,a=r.hasError,s=r.thrownError,l=r.isStopped;a?n.error(s):l&&n.complete()},e.prototype.asObservable=function(){var n=new _i;return n.source=this,n},e.create=function(n,r){return new rM(n,r)},e}(_i),rM=function(t){fu(e,t);function e(n,r){var a=t.call(this)||this;return a.destination=n,a.source=r,a}return e.prototype.next=function(n){var r,a;(a=(r=this.destination)===null||r===void 0?void 0:r.next)===null||a===void 0||a.call(r,n)},e.prototype.error=function(n){var r,a;(a=(r=this.destination)===null||r===void 0?void 0:r.error)===null||a===void 0||a.call(r,n)},e.prototype.complete=function(){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.complete)===null||r===void 0||r.call(n)},e.prototype._subscribe=function(n){var r,a;return(a=(r=this.source)===null||r===void 0?void 0:r.subscribe(n))!==null&&a!==void 0?a:QO},e}(Cb),Yz=function(t){fu(e,t);function e(n){var r=t.call(this)||this;return r._value=n,r}return Object.defineProperty(e.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),e.prototype._subscribe=function(n){var r=t.prototype._subscribe.call(this,n);return!r.closed&&n.next(this._value),r},e.prototype.getValue=function(){var n=this,r=n.hasError,a=n.thrownError,s=n._value;if(r)throw a;return this._throwIfClosed(),s},e.prototype.next=function(n){t.prototype.next.call(this,this._value=n)},e}(Cb),Kz={now:function(){return Date.now()}},Zz=function(t){fu(e,t);function e(n,r){return t.call(this)||this}return e.prototype.schedule=function(n,r){return this},e}(Lg),iM={setInterval:function(t,e){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return setInterval.apply(void 0,vb([t,e],gb(n)))},clearInterval:function(t){return clearInterval(t)},delegate:void 0},Qz=function(t){fu(e,t);function e(n,r){var a=t.call(this,n,r)||this;return a.scheduler=n,a.work=r,a.pending=!1,a}return e.prototype.schedule=function(n,r){var a;if(r===void 0&&(r=0),this.closed)return this;this.state=n;var s=this.id,l=this.scheduler;return s!=null&&(this.id=this.recycleAsyncId(l,s,r)),this.pending=!0,this.delay=r,this.id=(a=this.id)!==null&&a!==void 0?a:this.requestAsyncId(l,this.id,r),this},e.prototype.requestAsyncId=function(n,r,a){return a===void 0&&(a=0),iM.setInterval(n.flush.bind(n,this),a)},e.prototype.recycleAsyncId=function(n,r,a){if(a===void 0&&(a=0),a!=null&&this.delay===a&&this.pending===!1)return r;r!=null&&iM.clearInterval(r)},e.prototype.execute=function(n,r){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var a=this._execute(n,r);if(a)return a;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(n,r){var a=!1,s;try{this.work(n)}catch(l){a=!0,s=l||new Error("Scheduled action threw falsy error")}if(a)return this.unsubscribe(),s},e.prototype.unsubscribe=function(){if(!this.closed){var n=this,r=n.id,a=n.scheduler,s=a.actions;this.work=this.state=this.scheduler=null,this.pending=!1,yb(s,this),r!=null&&(this.id=this.recycleAsyncId(a,r,null)),this.delay=null,t.prototype.unsubscribe.call(this)}},e}(Zz),aM=function(){function t(e,n){n===void 0&&(n=t.now),this.schedulerActionCtor=e,this.now=n}return t.prototype.schedule=function(e,n,r){return n===void 0&&(n=0),new this.schedulerActionCtor(this,e).schedule(r,n)},t.now=Kz.now,t}(),Xz=function(t){fu(e,t);function e(n,r){r===void 0&&(r=aM.now);var a=t.call(this,n,r)||this;return a.actions=[],a._active=!1,a}return e.prototype.flush=function(n){var r=this.actions;if(this._active){r.push(n);return}var a;this._active=!0;do if(a=n.execute(n.state,n.delay))break;while(n=r.shift());if(this._active=!1,a){for(;n=r.shift();)n.unsubscribe();throw a}},e}(aM);new Xz(Qz);function Jz(t){return t&&wi(t.schedule)}function e7(t){return t[t.length-1]}function oM(t){return Jz(e7(t))?t.pop():void 0}var sM=function(t){return t&&typeof t.length=="number"&&typeof t!="function"};function lM(t){return wi(t==null?void 0:t.then)}function uM(t){return wi(t[KT])}function cM(t){return Symbol.asyncIterator&&wi(t==null?void 0:t[Symbol.asyncIterator])}function dM(t){return new TypeError("You provided "+(t!==null&&typeof t=="object"?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function t7(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var fM=t7();function hM(t){return wi(t==null?void 0:t[fM])}function pM(t){return Nz(this,arguments,function(){var e,n,r,a;return ZO(this,function(s){switch(s.label){case 0:e=t.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,Kh(e.read())];case 3:return n=s.sent(),r=n.value,a=n.done,a?[4,Kh(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,Kh(r)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return e.releaseLock(),[7];case 10:return[2]}})})}function mM(t){return wi(t==null?void 0:t.getReader)}function Zh(t){if(t instanceof _i)return t;if(t!=null){if(uM(t))return n7(t);if(sM(t))return r7(t);if(lM(t))return i7(t);if(cM(t))return gM(t);if(hM(t))return a7(t);if(mM(t))return o7(t)}throw dM(t)}function n7(t){return new _i(function(e){var n=t[KT]();if(wi(n.subscribe))return n.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function r7(t){return new _i(function(e){for(var n=0;n<t.length&&!e.closed;n++)e.next(t[n]);e.complete()})}function i7(t){return new _i(function(e){t.then(function(n){e.closed||(e.next(n),e.complete())},function(n){return e.error(n)}).then(null,eM)})}function a7(t){return new _i(function(e){var n,r;try{for(var a=Yh(t),s=a.next();!s.done;s=a.next()){var l=s.value;if(e.next(l),e.closed)return}}catch(c){n={error:c}}finally{try{s&&!s.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}e.complete()})}function gM(t){return new _i(function(e){s7(t,e).catch(function(n){return e.error(n)})})}function o7(t){return gM(pM(t))}function s7(t,e){var n,r,a,s;return Lz(this,void 0,void 0,function(){var l,c;return ZO(this,function(h){switch(h.label){case 0:h.trys.push([0,5,6,11]),n=Iz(t),h.label=1;case 1:return[4,n.next()];case 2:if(r=h.sent(),!!r.done)return[3,4];if(l=r.value,e.next(l),e.closed)return[2];h.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=h.sent(),a={error:c},[3,11];case 6:return h.trys.push([6,,9,10]),r&&!r.done&&(s=n.return)?[4,s.call(n)]:[3,8];case 7:h.sent(),h.label=8;case 8:return[3,10];case 9:if(a)throw a.error;return[7];case 10:return[7];case 11:return e.complete(),[2]}})})}function Jd(t,e,n,r,a){r===void 0&&(r=0),a===void 0&&(a=!1);var s=e.schedule(function(){n(),a?t.add(this.schedule(null,r)):this.unsubscribe()},r);if(t.add(s),!a)return s}function vM(t,e){return e===void 0&&(e=0),wc(function(n,r){n.subscribe(Xd(r,function(a){return Jd(r,t,function(){return r.next(a)},e)},function(){return Jd(r,t,function(){return r.complete()},e)},function(a){return Jd(r,t,function(){return r.error(a)},e)}))})}function yM(t,e){return e===void 0&&(e=0),wc(function(n,r){r.add(t.schedule(function(){return n.subscribe(r)},e))})}function l7(t,e){return Zh(t).pipe(yM(e),vM(e))}function u7(t,e){return Zh(t).pipe(yM(e),vM(e))}function c7(t,e){return new _i(function(n){var r=0;return e.schedule(function(){r===t.length?n.complete():(n.next(t[r++]),n.closed||this.schedule())})})}function d7(t,e){return new _i(function(n){var r;return Jd(n,e,function(){r=t[fM](),Jd(n,e,function(){var a,s,l;try{a=r.next(),s=a.value,l=a.done}catch(c){n.error(c);return}l?n.complete():n.next(s)},0,!0)}),function(){return wi(r==null?void 0:r.return)&&r.return()}})}function bM(t,e){if(!t)throw new Error("Iterable cannot be null");return new _i(function(n){Jd(n,e,function(){var r=t[Symbol.asyncIterator]();Jd(n,e,function(){r.next().then(function(a){a.done?n.complete():n.next(a.value)})},0,!0)})})}function f7(t,e){return bM(pM(t),e)}function h7(t,e){if(t!=null){if(uM(t))return l7(t,e);if(sM(t))return c7(t,e);if(lM(t))return u7(t,e);if(cM(t))return bM(t,e);if(hM(t))return d7(t,e);if(mM(t))return f7(t,e)}throw dM(t)}function SM(t,e){return e?h7(t,e):Zh(t)}$T(function(t){return function(e){e===void 0&&(e=null),t(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=e}});function Ps(t,e){return wc(function(n,r){var a=0;n.subscribe(Xd(r,function(s){r.next(t.call(e,s,a++))}))})}function p7(t,e,n,r,a,s,l,c){var h=[],p=0,v=0,b=!1,k=function(){b&&!h.length&&!p&&e.complete()},T=function(R){return p<r?E(R):h.push(R)},E=function(R){p++;var M=!1;Zh(n(R,v++)).subscribe(Xd(e,function(A){e.next(A)},function(){M=!0},void 0,function(){if(M)try{p--;for(var A=function(){var U=h.shift();l||E(U)};h.length&&p<r;)A();k()}catch(U){e.error(U)}}))};return t.subscribe(Xd(e,T,function(){b=!0,k()})),function(){}}function CM(t,e,n){return n===void 0&&(n=1/0),wi(e)?CM(function(r,a){return Ps(function(s,l){return e(r,s,a,l)})(Zh(t(r,a)))},n):(typeof e=="number"&&(n=e),wc(function(r,a){return p7(r,a,t,n)}))}function m7(t){return CM(tM,t)}function g7(){return m7(1)}function kM(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return g7()(SM(t,oM(t)))}function TM(t,e){return wc(function(n,r){var a=0;n.subscribe(Xd(r,function(s){return t.call(e,s,a++)&&r.next(s)}))})}function v7(t,e,n,r,a){return function(s,l){var c=n,h=e,p=0;s.subscribe(Xd(l,function(v){var b=p++;h=c?t(h,v,b):(c=!0,v),l.next(h)},a))}}function xM(t,e){return wc(v7(t,e,arguments.length>=2,!0))}function _c(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=oM(t);return wc(function(r,a){(n?kM(t,r,n):kM(t,r)).subscribe(a)})}function wM(t){return wc(function(e,n){Zh(t).subscribe(Xd(n,function(){return n.complete()},WT)),!n.closed&&e.subscribe(n)})}var y7=Object.defineProperty,b7=Object.defineProperties,S7=Object.getOwnPropertyDescriptors,_M=Object.getOwnPropertySymbols,C7=Object.prototype.hasOwnProperty,k7=Object.prototype.propertyIsEnumerable,EM=(t,e,n)=>e in t?y7(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ng=(t,e)=>{for(var n in e||(e={}))C7.call(e,n)&&EM(t,n,e[n]);if(_M)for(var n of _M(e))k7.call(e,n)&&EM(t,n,e[n]);return t},kb=(t,e)=>b7(t,S7(e)),Tb=(t,e,n)=>new Promise((r,a)=>{var s=h=>{try{c(n.next(h))}catch(p){a(p)}},l=h=>{try{c(n.throw(h))}catch(p){a(p)}},c=h=>h.done?r(h.value):Promise.resolve(h.value).then(s,l);c((n=n.apply(t,e)).next())}),T7="lk";function ZT(t){return typeof t>"u"?!1:x7(t)||w7(t)}function x7(t){var e;return t?t.hasOwnProperty("participant")&&t.hasOwnProperty("source")&&t.hasOwnProperty("track")&&typeof((e=t.publication)==null?void 0:e.track)<"u":!1}function w7(t){return t?t.hasOwnProperty("participant")&&t.hasOwnProperty("source")&&t.hasOwnProperty("publication")&&typeof t.publication<"u":!1}function _7(t){return t?t.hasOwnProperty("participant")&&t.hasOwnProperty("source")&&typeof t.publication>"u":!1}function RM(t){if(typeof t=="string"||typeof t=="number")return`${t}`;if(_7(t))return`${t.participant.identity}_${t.source}_placeholder`;if(ZT(t))return`${t.participant.identity}_${t.publication.source}_${t.publication.trackSid}`;throw new Error(`Can't generate a id for the given track reference: ${t}`)}var E7=[Ee.ConnectionStateChanged,Ee.RoomMetadataChanged,Ee.ActiveSpeakersChanged,Ee.ConnectionQualityChanged,Ee.ParticipantConnected,Ee.ParticipantDisconnected,Ee.ParticipantPermissionsChanged,Ee.ParticipantMetadataChanged,Ee.ParticipantNameChanged,Ee.ParticipantAttributesChanged,Ee.TrackMuted,Ee.TrackUnmuted,Ee.TrackPublished,Ee.TrackUnpublished,Ee.TrackStreamStateChanged,Ee.TrackSubscriptionFailed,Ee.TrackSubscriptionPermissionChanged,Ee.TrackSubscriptionStatusChanged],PM=[...E7,Ee.LocalTrackPublished,Ee.LocalTrackUnpublished],R7=[Ie.TrackPublished,Ie.TrackUnpublished,Ie.TrackMuted,Ie.TrackUnmuted,Ie.TrackStreamStateChanged,Ie.TrackSubscribed,Ie.TrackUnsubscribed,Ie.TrackSubscriptionPermissionChanged,Ie.TrackSubscriptionFailed,Ie.LocalTrackPublished,Ie.LocalTrackUnpublished],P7=[Ie.ConnectionQualityChanged,Ie.IsSpeakingChanged,Ie.ParticipantMetadataChanged,Ie.ParticipantPermissionsChanged,Ie.TrackMuted,Ie.TrackUnmuted,Ie.TrackPublished,Ie.TrackUnpublished,Ie.TrackStreamStateChanged,Ie.TrackSubscriptionFailed,Ie.TrackSubscriptionPermissionChanged,Ie.TrackSubscriptionStatusChanged];[...P7,Ie.LocalTrackPublished,Ie.LocalTrackUnpublished];var Ec=Mz.getLogger("lk-components-js");Ec.setDefaultLevel("WARN");function D7(t,e){var n;return kb(Ng({},t),{receivedAtMediaTimestamp:(n=e.rtpTimestamp)!=null?n:0,receivedAt:e.timestamp})}function A7(t,e,n){return[...t,...e].reduceRight((r,a)=>(r.find(s=>s.id===a.id)||r.unshift(a),r),[]).slice(0-n)}function DM(t){return typeof t=="object"}function AM(t){return Array.isArray(t)&&t.filter(DM).length>0}function O7(t){return`${T7}-${t}`}function M7(t){const e=QT(t),n=NM(t.participant).pipe(Ps(()=>QT(t)),_c(e));return{className:O7(t.source===De.Source.Camera||t.source===De.Source.ScreenShare?"participant-media-video":"participant-media-audio"),trackObserver:n}}function QT(t){if(ZT(t))return t.publication;{const{source:e,name:n,participant:r}=t;if(e&&n)return r.getTrackPublications().find(a=>a.source===e&&a.trackName===n);if(n)return r.getTrackPublicationByName(n);if(e)return r.getTrackPublication(e);throw new Error("At least one of source and name needs to be defined")}}function OM(t,...e){return new _i(n=>{const r=()=>{n.next(t)};return e.forEach(a=>{t.on(a,r)}),()=>{e.forEach(a=>{t.off(a,r)})}}).pipe(_c(t))}function MM(t,e){return new _i(n=>{const r=(...a)=>{n.next(a)};return t.on(e,r),()=>{t.off(e,r)}})}function L7(t){return MM(t,Ee.ConnectionStateChanged).pipe(Ps(([e])=>e),_c(t.state))}function N7(t){return MM(t,Ee.DataReceived)}function LM(t,...e){return new _i(n=>{const r=()=>{n.next(t)};return e.forEach(a=>{t.on(a,r)}),()=>{e.forEach(a=>{t.off(a,r)})}}).pipe(_c(t))}function NM(t){return LM(t,Ie.TrackMuted,Ie.TrackUnmuted,Ie.ParticipantPermissionsChanged,Ie.TrackPublished,Ie.TrackUnpublished,Ie.LocalTrackPublished,Ie.LocalTrackUnpublished,Ie.MediaDevicesError,Ie.TrackSubscriptionStatusChanged).pipe(Ps(e=>{const{isMicrophoneEnabled:n,isCameraEnabled:r,isScreenShareEnabled:a}=e,s=e.getTrackPublication(De.Source.Microphone),l=e.getTrackPublication(De.Source.Camera);return{isCameraEnabled:r,isMicrophoneEnabled:n,isScreenShareEnabled:a,cameraTrack:l,microphoneTrack:s,participant:e}}))}function I7(t,e){return new _i(n=>{const r=(...a)=>{n.next(a)};return t.on(e,r),()=>{t.off(e,r)}})}function U7(t,e={}){var n;let r;const a=new _i(h=>(r=h,()=>c.unsubscribe())).pipe(_c(Array.from(t.remoteParticipants.values()))),s=(n=e.additionalRoomEvents)!=null?n:PM,l=Array.from(new Set([Ee.ParticipantConnected,Ee.ParticipantDisconnected,Ee.ConnectionStateChanged,...s])),c=OM(t,...l).subscribe(h=>r==null?void 0:r.next(Array.from(h.remoteParticipants.values())));return t.remoteParticipants.size>0&&(r==null||r.next(Array.from(t.remoteParticipants.values()))),a}function IM(t){return typeof t>"u"?new _i:I7(t,Ie.AttributesChanged).pipe(Ps(([e])=>({changed:e,attributes:t.attributes})),_c({changed:t.attributes,attributes:t.attributes}))}var F7={CHAT:"lk.chat"},j7={CHAT:"lk-chat-topic"};function UM(t,e){return Tb(this,arguments,function*(n,r,a={}){const{reliable:s,destinationIdentities:l,topic:c}=a;yield n.publishData(r,{destinationIdentities:l,topic:c,reliable:s})})}function V7(t,e,n){const r=Array.isArray(e)?e:[e],a=N7(t).pipe(TM(([,,,c])=>e===void 0||c!==void 0&&r.includes(c)),Ps(([c,h,,p])=>({payload:c,topic:p,from:h})));let s;const l=new _i(c=>{s=c});return{messageObservable:a,isSendingObservable:l,send:(c,...h)=>Tb(this,[c,...h],function*(p,v={}){s.next(!0);try{yield UM(t.localParticipant,p,Ng({topic:r[0]},v))}finally{s.next(!1)}})}}var xb=new WeakMap;function z7(t){return t.ignoreLegacy==!0}var B7=t=>JSON.parse(new TextDecoder().decode(t)),H7=t=>new TextEncoder().encode(JSON.stringify(t));function $7(t,e){var n,r,a,s,l,c;const h=()=>{var I,N,ne;return((I=t.serverInfo)==null?void 0:I.edition)===1||!!((N=t.serverInfo)!=null&&N.version)&&bc((ne=t.serverInfo)==null?void 0:ne.version,"1.8.2")>0},p=new Cb,v=(n=void 0)!=null?n:F7.CHAT,b=(r=void 0)!=null?r:j7.CHAT;let k=!1;xb.has(t)||(k=!0);const T=(a=xb.get(t))!=null?a:new Map,E=(s=T.get(v))!=null?s:new Cb;T.set(v,E),xb.set(t,T);const R=(l=void 0)!=null?l:B7;if(k){t.registerTextStreamHandler(v,(N,ne)=>Tb(this,null,function*(){const{id:X,timestamp:se}=N.info;SM(N).pipe(xM(($,oe)=>$+oe),Ps($=>({id:X,timestamp:se,message:$,from:t.getParticipantByIdentity(ne.identity)}))).subscribe({next:$=>E.next($)})}));const{messageObservable:I}=V7(t,[b]);I.pipe(Ps(N=>{const ne=R(N.payload);return z7(ne)?void 0:kb(Ng({},ne),{from:N.from})}),TM(N=>!!N),wM(p)).subscribe(E)}const M=E.pipe(xM((I,N)=>{if("id"in N&&I.find(ne=>{var X,se;return((X=ne.from)==null?void 0:X.identity)===((se=N.from)==null?void 0:se.identity)&&ne.id===N.id})){const ne=I.findIndex(X=>X.id===N.id);if(ne>-1){const X=I[ne];I[ne]=kb(Ng({},N),{timestamp:X.timestamp,editTimestamp:N.timestamp})}return[...I]}return[...I,N]},[]),wM(p)),A=new Yz(!1),U=(c=void 0)!=null?c:H7,V=(I,N)=>Tb(this,null,function*(){N||(N={}),N.topic!=null||(N.topic=v),A.next(!0);try{const ne={id:(yield t.localParticipant.sendText(I,N)).id,timestamp:Date.now(),message:I,from:t.localParticipant,attachedFiles:N.attachments};E.next(ne);const X=U(kb(Ng({},ne),{ignoreLegacy:h()}));return yield UM(t.localParticipant,X,{reliable:!0,topic:b}),ne}finally{A.next(!1)}});function j(){p.next(),p.complete(),E.complete(),xb.delete(t),t.unregisterTextStreamHandler(v)}return t.once(Ee.Disconnected,j),{messageObservable:M,isSendingObservable:A,send:V}}function FM(t,e,n=!0){const r=[t.localParticipant,...Array.from(t.remoteParticipants.values())],a=[];return r.forEach(s=>{e.forEach(l=>{const c=Array.from(s.trackPublications.values()).filter(h=>h.source===l&&(!n||h.track)).map(h=>({participant:s,publication:h,source:h.source}));a.push(...c)})}),{trackReferences:a,participants:r}}function jM(t,e,n=!1){const{sources:r,kind:a,name:s}=e;return Array.from(t.trackPublications.values()).filter(l=>(!r||r.includes(l.source))&&(!a||l.kind===a)&&(!s||l.trackName===s)&&(!n||l.track)).map(l=>({participant:t,publication:l,source:l.source}))}function q7(t,e,n){var r,a;const s=(r=n.additionalRoomEvents)!=null?r:PM,l=(a=n.onlySubscribed)!=null?a:!0,c=Array.from(new Set([Ee.ParticipantConnected,Ee.ParticipantDisconnected,Ee.ConnectionStateChanged,Ee.LocalTrackPublished,Ee.LocalTrackUnpublished,Ee.TrackPublished,Ee.TrackUnpublished,Ee.TrackSubscriptionStatusChanged,...s]).values());return OM(t,...c).pipe(Ps(h=>{const p=FM(h,e,l);return Ec.debug(`TrackReference[] was updated. (length ${p.trackReferences.length})`,p),p}),_c(FM(t,e,l)))}function W7(t,e){return LM(t,...R7).pipe(Ps(n=>{const r=jM(n,e);return Ec.debug(`TrackReference[] was updated. (length ${r.length})`,r),r}),_c(jM(t,e)))}function VM(t,e){return new _i(n=>{const r=(...a)=>{n.next(a)};return t.on(e,r),()=>{t.off(e,r)}})}function G7(t){return VM(t,Qe.TranscriptionReceived)}function Y7(t){return VM(t,Qe.TimeSyncUpdate).pipe(Ps(([e])=>e))}G.createContext(void 0);const K7=G.createContext(void 0);function Z7(){return G.useContext(K7)}function Q7(t){const e=Z7(),n=t??e;if(!n)throw new Error("No TrackRef, make sure you are inside a TrackRefContext or pass the TrackRef explicitly");return n}const X7=G.createContext(void 0);function zM(){return G.useContext(X7)}const XT=G.createContext(void 0);function JT(){const t=G.useContext(XT);if(!t)throw Error("tried to access room context outside of livekit room component");return t}function J7(){return G.useContext(XT)}function wb(t){const e=J7(),n=t??e;if(!n)throw new Error("No room provided, make sure you are inside a Room context or pass the room explicitly");return n}G.createContext(void 0);function BM(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var a=t.length;for(e=0;e<a;e++)t[e]&&(n=BM(t[e]))&&(r&&(r+=" "),r+=n)}else for(n in t)t[n]&&(r&&(r+=" "),r+=n);return r}function eB(){for(var t,e,n=0,r="",a=arguments.length;n<a;n++)(t=arguments[n])&&(e=BM(t))&&(r&&(r+=" "),r+=e);return r}function tB(...t){return(...e)=>{for(const n of t)if(typeof n=="function")try{n(...e)}catch(r){console.error(r)}}}function nB(...t){const e={...t[0]};for(let n=1;n<t.length;n++){const r=t[n];for(const a in r){const s=e[a],l=r[a];typeof s=="function"&&typeof l=="function"&&a[0]==="o"&&a[1]==="n"&&a.charCodeAt(2)>=65&&a.charCodeAt(2)<=90?e[a]=tB(s,l):(a==="className"||a==="UNSAFE_className")&&typeof s=="string"&&typeof l=="string"?e[a]=eB(s,l):e[a]=l!==void 0?l:s}}return e}function rB(t){return t!==void 0}function iB(...t){return nB(...t.filter(rB))}function Qh(t,e,n=!0){const[r,a]=G.useState(e);return G.useEffect(()=>{if(n&&a(e),typeof window>"u"||!t)return;const s=t.subscribe(a);return()=>s.unsubscribe()},[t,n]),r}function ex(t){const e=wb(t),n=G.useMemo(()=>L7(e),[e]);return Qh(n,e.state)}function aB(t={}){const e=wb(t.room),[n,r]=G.useState(e.localParticipant),[a,s]=G.useState(n.isMicrophoneEnabled),[l,c]=G.useState(n.isMicrophoneEnabled),[h,p]=G.useState(n.lastMicrophoneError),[v,b]=G.useState(n.lastCameraError),[k,T]=G.useState(n.isMicrophoneEnabled),[E,R]=G.useState(void 0),[M,A]=G.useState(void 0),U=V=>{c(V.isCameraEnabled),s(V.isMicrophoneEnabled),T(V.isScreenShareEnabled),A(V.cameraTrack),R(V.microphoneTrack),p(V.participant.lastMicrophoneError),b(V.participant.lastCameraError),r(V.participant)};return G.useEffect(()=>{const V=NM(e.localParticipant).subscribe(U);return()=>V.unsubscribe()},[e]),{isMicrophoneEnabled:a,isScreenShareEnabled:k,isCameraEnabled:l,microphoneTrack:E,cameraTrack:M,lastMicrophoneError:h,lastCameraError:v,localParticipant:n}}function HM(t={}){const e=wb(t.room),[n,r]=G.useState([]);return G.useEffect(()=>{const a=U7(e,{additionalRoomEvents:t.updateOnlyOn}).subscribe(r);return()=>a.unsubscribe()},[e,JSON.stringify(t.updateOnlyOn)]),n}function oB(t=[De.Source.Camera,De.Source.Microphone,De.Source.ScreenShare,De.Source.ScreenShareAudio,De.Source.Unknown],e={}){const n=wb(e.room),[r,a]=G.useState([]),[s,l]=G.useState([]),c=G.useMemo(()=>t.map(h=>DM(h)?h.source:h),[JSON.stringify(t)]);return G.useEffect(()=>{const h=q7(n,c,{additionalRoomEvents:e.updateOnlyOn,onlySubscribed:e.onlySubscribed}).subscribe(({trackReferences:p,participants:v})=>{Ec.debug("setting track bundles",p,v),a(p),l(v)});return()=>h.unsubscribe()},[n,JSON.stringify(e.onlySubscribed),JSON.stringify(e.updateOnlyOn),JSON.stringify(t)]),G.useMemo(()=>{if(AM(t)){const h=lB(t,s),p=Array.from(r);return s.forEach(v=>{h.has(v.identity)&&(h.get(v.identity)??[]).forEach(b=>{if(r.find(({participant:T,publication:E})=>v.identity===T.identity&&E.source===b))return;Ec.debug(`Add ${b} placeholder for participant ${v.identity}.`);const k={participant:v,source:b};p.push(k)})}),p}else return r},[r,s,t])}function sB(t,e){const n=new Set(t);for(const r of e)n.delete(r);return n}function lB(t,e){const n=new Map;if(AM(t)){const r=t.filter(a=>a.withPlaceholder).map(a=>a.source);e.forEach(a=>{const s=a.getTrackPublications().map(c=>{var h;return(h=c.track)==null?void 0:h.source}).filter(c=>c!==void 0),l=Array.from(sB(new Set(r),new Set(s)));l.length>0&&n.set(a.identity,l)})}return n}function $M(t){const e=JT(),n=ex(e),r=G.useMemo(()=>n===Fn.Disconnected,[n]),a=G.useMemo(()=>$7(e),[e,t,r]),s=Qh(a.isSendingObservable,!1),l=Qh(a.messageObservable,[]);return{send:a.send,chatMessages:l,isSending:s}}function uB(t,e){const n=JT(),r=zM(),a=e?n.getParticipantByIdentity(e):r,s=G.useMemo(()=>a?W7(a,{sources:t}):void 0,[a==null?void 0:a.sid,a==null?void 0:a.identity,JSON.stringify(t)]);return Qh(s,[])}function cB(t){var e,n,r;const a=G.useMemo(()=>{var s;return(s=t==null?void 0:t.publication)!=null&&s.track?Y7(t==null?void 0:t.publication.track):void 0},[(e=t==null?void 0:t.publication)==null?void 0:e.track]);return Qh(a,{timestamp:Date.now(),rtpTimestamp:(r=(n=t==null?void 0:t.publication)==null?void 0:n.track)==null?void 0:r.rtpTimestamp})}const dB={bufferSize:100};function tx(t,e){const n={...dB,...e},[r,a]=G.useState([]),s=cB(t),l=c=>{var h;(h=n.onTranscription)==null||h.call(n,c),a(p=>A7(p,c.map(v=>D7(v,s)),n.bufferSize))};return G.useEffect(()=>{if(!(t!=null&&t.publication))return;const c=G7(t.publication).subscribe(h=>{l(...h)});return()=>{c.unsubscribe()}},[t&&RM(t),l]),{segments:r}}function fB(t={}){const e=zM(),n=t.participant??e,r=G.useMemo(()=>IM(n),[n]);return Qh(r,{attributes:n==null?void 0:n.attributes})}const qM="lk.agent.state";function hB(){const t=HM().find(l=>l.kind===_g.AGENT),e=uB([De.Source.Microphone],t==null?void 0:t.identity)[0],{segments:n}=tx(e),r=ex(),{attributes:a}=fB({participant:t}),s=G.useMemo(()=>r===Fn.Disconnected?"disconnected":r===Fn.Connecting||!t||!(a!=null&&a[qM])?"connecting":a[qM],[a,t,r]);return{agent:t,state:s,audioTrack:e,agentTranscriptions:n,agentAttributes:a}}function pB(t,e={}){const[n,r]=G.useState(QT(t)),[a,s]=G.useState(n==null?void 0:n.isMuted),[l,c]=G.useState(n==null?void 0:n.isSubscribed),[h,p]=G.useState(n==null?void 0:n.track),[v,b]=G.useState("landscape"),k=G.useRef(),{className:T,trackObserver:E}=G.useMemo(()=>M7(t),[t.participant.sid??t.participant.identity,t.source,ZT(t)&&t.publication.trackSid]);return G.useEffect(()=>{const R=E.subscribe(M=>{Ec.debug("update track",M),r(M),s(M==null?void 0:M.isMuted),c(M==null?void 0:M.isSubscribed),p(M==null?void 0:M.track)});return()=>R==null?void 0:R.unsubscribe()},[E]),G.useEffect(()=>{var R,M;return h&&(k.current&&h.detach(k.current),(R=e.element)!=null&&R.current&&!(t.participant.isLocal&&(h==null?void 0:h.kind)==="audio")&&h.attach(e.element.current)),k.current=(M=e.element)==null?void 0:M.current,()=>{k.current&&(h==null||h.detach(k.current))}},[h,e.element]),G.useEffect(()=>{var R,M;if(typeof((R=n==null?void 0:n.dimensions)==null?void 0:R.width)=="number"&&typeof((M=n==null?void 0:n.dimensions)==null?void 0:M.height)=="number"){const A=n.dimensions.width>n.dimensions.height?"landscape":"portrait";b(A)}},[n]),{publication:n,isMuted:a,isSubscribed:l,track:h,elementProps:iB(e.props,{className:T,"data-lk-local-participant":t.participant.isLocal,"data-lk-source":n==null?void 0:n.source,...(n==null?void 0:n.kind)==="video"&&{"data-lk-orientation":v}})}}var nx,WM;function mB(){if(WM)return nx;WM=1;var t="Expected a function",e=NaN,n="[object Symbol]",r=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt,h=typeof mb=="object"&&mb&&mb.Object===Object&&mb,p=typeof self=="object"&&self&&self.Object===Object&&self,v=h||p||Function("return this")(),b=Object.prototype,k=b.toString,T=Math.max,E=Math.min,R=function(){return v.Date.now()};function M(I,N,ne){var X,se,$,oe,J,xe,ke=0,Ge=!1,Je=!1,je=!0;if(typeof I!="function")throw new TypeError(t);N=j(N)||0,A(ne)&&(Ge=!!ne.leading,Je="maxWait"in ne,$=Je?T(j(ne.maxWait)||0,N):$,je="trailing"in ne?!!ne.trailing:je);function ve(bt){var it=X,xt=se;return X=se=void 0,ke=bt,oe=I.apply(xt,it),oe}function He(bt){return ke=bt,J=setTimeout(Ce,N),Ge?ve(bt):oe}function z(bt){var it=bt-xe,xt=bt-ke,tn=N-it;return Je?E(tn,$-xt):tn}function ee(bt){var it=bt-xe,xt=bt-ke;return xe===void 0||it>=N||it<0||Je&&xt>=$}function Ce(){var bt=R();if(ee(bt))return H(bt);J=setTimeout(Ce,z(bt))}function H(bt){return J=void 0,je&&X?ve(bt):(X=se=void 0,oe)}function Ct(){J!==void 0&&clearTimeout(J),ke=0,X=xe=se=J=void 0}function Rt(){return J===void 0?oe:H(R())}function ht(){var bt=R(),it=ee(bt);if(X=arguments,se=this,xe=bt,it){if(J===void 0)return He(xe);if(Je)return J=setTimeout(Ce,N),ve(xe)}return J===void 0&&(J=setTimeout(Ce,N)),oe}return ht.cancel=Ct,ht.flush=Rt,ht}function A(I){var N=typeof I;return!!I&&(N=="object"||N=="function")}function U(I){return!!I&&typeof I=="object"}function V(I){return typeof I=="symbol"||U(I)&&k.call(I)==n}function j(I){if(typeof I=="number")return I;if(V(I))return e;if(A(I)){var N=typeof I.valueOf=="function"?I.valueOf():I;I=A(N)?N+"":N}if(typeof I!="string")return I===0?I:+I;I=I.replace(r,"");var ne=s.test(I);return ne||l.test(I)?c(I.slice(2),ne?2:8):a.test(I)?e:+I}return nx=M,nx}mB();const gB=G.forwardRef(function({trackRef:t,onSubscriptionStatusChanged:e,volume:n,...r},a){const s=Q7(t),l=G.useRef(null);G.useImperativeHandle(a,()=>l.current);const{elementProps:c,isSubscribed:h,track:p,publication:v}=pB(s,{element:l,props:r});return G.useEffect(()=>{e==null||e(!!h)},[h,e]),G.useEffect(()=>{p===void 0||n===void 0||(p instanceof $O?p.setVolume(n):Ec.warn("Volume can only be set on remote audio tracks."))},[n,p]),G.useEffect(()=>{v===void 0||r.muted===void 0||(v instanceof GO?v.setEnabled(!r.muted):Ec.warn("Can only call setEnabled on remote track publications."))},[r.muted,v,p]),G.createElement("audio",{ref:l,...c})});function vB({volume:t,muted:e}){const n=oB([De.Source.Microphone,De.Source.ScreenShareAudio,De.Source.Unknown],{updateOnlyOn:[],onlySubscribed:!0}).filter(r=>!r.participant.isLocal&&r.publication.kind===De.Kind.Audio);return G.createElement("div",{style:{display:"none"}},n.map(r=>G.createElement(gB,{key:RM(r),trackRef:r,volume:t,muted:e})))}const rx=G.createContext({});function ix(t){const e=G.useRef(null);return e.current===null&&(e.current=t()),e.current}const _b=G.createContext(null),ax=G.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"});class yB extends G.Component{getSnapshotBeforeUpdate(e){const n=this.props.childRef.current;if(n&&e.isPresent&&!this.props.isPresent){const r=this.props.sizeRef.current;r.height=n.offsetHeight||0,r.width=n.offsetWidth||0,r.top=n.offsetTop,r.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function bB({children:t,isPresent:e}){const n=G.useId(),r=G.useRef(null),a=G.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=G.useContext(ax);return G.useInsertionEffect(()=>{const{width:l,height:c,top:h,left:p}=a.current;if(e||!r.current||!l||!c)return;r.current.dataset.motionPopId=n;const v=document.createElement("style");return s&&(v.nonce=s),document.head.appendChild(v),v.sheet&&v.sheet.insertRule(`
281
281
  [data-motion-pop-id="${n}"] {
@@ -422,5 +422,5 @@ a=extmap-allow-mixed`)!==-1){const s=a.sdp.split(`
422
422
  `))+1))}const l="#".repeat(a),c=n.enter("headingAtx"),h=n.enter("phrasing");s.move(l+" ");let p=n.containerPhrasing(t,{before:"# ",after:`
423
423
  `,...s.current()});return/^[\t ]/.test(p)&&(p=Dv(p.charCodeAt(0))+p.slice(1)),p=p?l+" "+p:l,n.options.closeAtx&&(p+=" "+l),h(),c(),p}V5.peek=yee;function V5(t){return t.value||""}function yee(){return"<"}z5.peek=bee;function z5(t,e,n,r){const a=T_(n),s=a==='"'?"Quote":"Apostrophe",l=n.enter("image");let c=n.enter("label");const h=n.createTracker(r);let p=h.move("![");return p+=h.move(n.safe(t.alt,{before:p,after:"]",...h.current()})),p+=h.move("]("),c(),!t.url&&t.title||/[\0- \u007F]/.test(t.url)?(c=n.enter("destinationLiteral"),p+=h.move("<"),p+=h.move(n.safe(t.url,{before:p,after:">",...h.current()})),p+=h.move(">")):(c=n.enter("destinationRaw"),p+=h.move(n.safe(t.url,{before:p,after:t.title?" ":")",...h.current()}))),c(),t.title&&(c=n.enter(`title${s}`),p+=h.move(" "+a),p+=h.move(n.safe(t.title,{before:p,after:a,...h.current()})),p+=h.move(a),c()),p+=h.move(")"),l(),p}function bee(){return"!"}B5.peek=See;function B5(t,e,n,r){const a=t.referenceType,s=n.enter("imageReference");let l=n.enter("label");const c=n.createTracker(r);let h=c.move("![");const p=n.safe(t.alt,{before:h,after:"]",...c.current()});h+=c.move(p+"]["),l();const v=n.stack;n.stack=[],l=n.enter("reference");const b=n.safe(n.associationId(t),{before:h,after:"]",...c.current()});return l(),n.stack=v,s(),a==="full"||!p||p!==b?h+=c.move(b+"]"):a==="shortcut"?h=h.slice(0,-1):h+=c.move("]"),h}function See(){return"!"}H5.peek=Cee;function H5(t,e,n){let r=t.value||"",a="`",s=-1;for(;new RegExp("(^|[^`])"+a+"([^`]|$)").test(r);)a+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++s<n.unsafe.length;){const l=n.unsafe[s],c=n.compilePattern(l);let h;if(l.atBreak)for(;h=c.exec(r);){let p=h.index;r.charCodeAt(p)===10&&r.charCodeAt(p-1)===13&&p--,r=r.slice(0,p)+" "+r.slice(h.index+1)}}return a+r+a}function Cee(){return"`"}function $5(t,e){const n=Zw(t);return!!(!e.options.resourceLink&&t.url&&!t.title&&t.children&&t.children.length===1&&t.children[0].type==="text"&&(n===t.url||"mailto:"+n===t.url)&&/^[a-z][a-z+.-]+:/i.test(t.url)&&!/[\0- <>\u007F]/.test(t.url))}q5.peek=kee;function q5(t,e,n,r){const a=T_(n),s=a==='"'?"Quote":"Apostrophe",l=n.createTracker(r);let c,h;if($5(t,n)){const v=n.stack;n.stack=[],c=n.enter("autolink");let b=l.move("<");return b+=l.move(n.containerPhrasing(t,{before:b,after:">",...l.current()})),b+=l.move(">"),c(),n.stack=v,b}c=n.enter("link"),h=n.enter("label");let p=l.move("[");return p+=l.move(n.containerPhrasing(t,{before:p,after:"](",...l.current()})),p+=l.move("]("),h(),!t.url&&t.title||/[\0- \u007F]/.test(t.url)?(h=n.enter("destinationLiteral"),p+=l.move("<"),p+=l.move(n.safe(t.url,{before:p,after:">",...l.current()})),p+=l.move(">")):(h=n.enter("destinationRaw"),p+=l.move(n.safe(t.url,{before:p,after:t.title?" ":")",...l.current()}))),h(),t.title&&(h=n.enter(`title${s}`),p+=l.move(" "+a),p+=l.move(n.safe(t.title,{before:p,after:a,...l.current()})),p+=l.move(a),h()),p+=l.move(")"),c(),p}function kee(t,e,n){return $5(t,n)?"<":"["}W5.peek=Tee;function W5(t,e,n,r){const a=t.referenceType,s=n.enter("linkReference");let l=n.enter("label");const c=n.createTracker(r);let h=c.move("[");const p=n.containerPhrasing(t,{before:h,after:"]",...c.current()});h+=c.move(p+"]["),l();const v=n.stack;n.stack=[],l=n.enter("reference");const b=n.safe(n.associationId(t),{before:h,after:"]",...c.current()});return l(),n.stack=v,s(),a==="full"||!p||p!==b?h+=c.move(b+"]"):a==="shortcut"?h=h.slice(0,-1):h+=c.move("]"),h}function Tee(){return"["}function x_(t){const e=t.options.bullet||"*";if(e!=="*"&&e!=="+"&&e!=="-")throw new Error("Cannot serialize items with `"+e+"` for `options.bullet`, expected `*`, `+`, or `-`");return e}function xee(t){const e=x_(t),n=t.options.bulletOther;if(!n)return e==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===e)throw new Error("Expected `bullet` (`"+e+"`) and `bulletOther` (`"+n+"`) to be different");return n}function wee(t){const e=t.options.bulletOrdered||".";if(e!=="."&&e!==")")throw new Error("Cannot serialize items with `"+e+"` for `options.bulletOrdered`, expected `.` or `)`");return e}function G5(t){const e=t.options.rule||"*";if(e!=="*"&&e!=="-"&&e!=="_")throw new Error("Cannot serialize rules with `"+e+"` for `options.rule`, expected `*`, `-`, or `_`");return e}function _ee(t,e,n,r){const a=n.enter("list"),s=n.bulletCurrent;let l=t.ordered?wee(n):x_(n);const c=t.ordered?l==="."?")":".":xee(n);let h=e&&n.bulletLastUsed?l===n.bulletLastUsed:!1;if(!t.ordered){const v=t.children?t.children[0]:void 0;if((l==="*"||l==="-")&&v&&(!v.children||!v.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(h=!0),G5(n)===l&&v){let b=-1;for(;++b<t.children.length;){const k=t.children[b];if(k&&k.type==="listItem"&&k.children&&k.children[0]&&k.children[0].type==="thematicBreak"){h=!0;break}}}}h&&(l=c),n.bulletCurrent=l;const p=n.containerFlow(t,r);return n.bulletLastUsed=l,n.bulletCurrent=s,a(),p}function Eee(t){const e=t.options.listItemIndent||"one";if(e!=="tab"&&e!=="one"&&e!=="mixed")throw new Error("Cannot serialize items with `"+e+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return e}function Ree(t,e,n,r){const a=Eee(n);let s=n.bulletCurrent||x_(n);e&&e.type==="list"&&e.ordered&&(s=(typeof e.start=="number"&&e.start>-1?e.start:1)+(n.options.incrementListMarker===!1?0:e.children.indexOf(t))+s);let l=s.length+1;(a==="tab"||a==="mixed"&&(e&&e.type==="list"&&e.spread||t.spread))&&(l=Math.ceil(l/4)*4);const c=n.createTracker(r);c.move(s+" ".repeat(l-s.length)),c.shift(l);const h=n.enter("listItem"),p=n.indentLines(n.containerFlow(t,c.current()),v);return h(),p;function v(b,k,T){return k?(T?"":" ".repeat(l))+b:(T?s:s+" ".repeat(l-s.length))+b}}function Pee(t,e,n,r){const a=n.enter("paragraph"),s=n.enter("phrasing"),l=n.containerPhrasing(t,r);return s(),a(),l}const Dee=kS(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function Aee(t,e,n,r){return(t.children.some(function(l){return Dee(l)})?n.containerPhrasing:n.containerFlow).call(n,t,r)}function Oee(t){const e=t.options.strong||"*";if(e!=="*"&&e!=="_")throw new Error("Cannot serialize strong with `"+e+"` for `options.strong`, expected `*`, or `_`");return e}Y5.peek=Mee;function Y5(t,e,n,r){const a=Oee(n),s=n.enter("strong"),l=n.createTracker(r),c=l.move(a+a);let h=l.move(n.containerPhrasing(t,{after:a,before:c,...l.current()}));const p=h.charCodeAt(0),v=_S(r.before.charCodeAt(r.before.length-1),p,a);v.inside&&(h=Dv(p)+h.slice(1));const b=h.charCodeAt(h.length-1),k=_S(r.after.charCodeAt(0),b,a);k.inside&&(h=h.slice(0,-1)+Dv(b));const T=l.move(a+a);return s(),n.attentionEncodeSurroundingInfo={after:k.outside,before:v.outside},c+h+T}function Mee(t,e,n){return n.options.strong||"*"}function Lee(t,e,n,r){return n.safe(t.value,r)}function Nee(t){const e=t.options.ruleRepetition||3;if(e<3)throw new Error("Cannot serialize rules with repetition `"+e+"` for `options.ruleRepetition`, expected `3` or more");return e}function Iee(t,e,n){const r=(G5(n)+(n.options.ruleSpaces?" ":"")).repeat(Nee(n));return n.options.ruleSpaces?r.slice(0,-1):r}const K5={blockquote:aee,break:F5,code:dee,definition:hee,emphasis:j5,hardBreak:F5,heading:vee,html:V5,image:z5,imageReference:B5,inlineCode:H5,link:q5,linkReference:W5,list:_ee,listItem:Ree,paragraph:Pee,root:Aee,strong:Y5,text:Lee,thematicBreak:Iee};function Uee(){return{enter:{table:Fee,tableData:Z5,tableHeader:Z5,tableRow:Vee},exit:{codeText:zee,table:jee,tableData:w_,tableHeader:w_,tableRow:w_}}}function Fee(t){const e=t._align;this.enter({type:"table",align:e.map(function(n){return n==="none"?null:n}),children:[]},t),this.data.inTable=!0}function jee(t){this.exit(t),this.data.inTable=void 0}function Vee(t){this.enter({type:"tableRow",children:[]},t)}function w_(t){this.exit(t)}function Z5(t){this.enter({type:"tableCell",children:[]},t)}function zee(t){let e=this.resume();this.data.inTable&&(e=e.replace(/\\([\\|])/g,Bee));const n=this.stack[this.stack.length-1];n.type,n.value=e,this.exit(t)}function Bee(t,e){return e==="|"?e:t}function Hee(t){const e=t||{},n=e.tableCellPadding,r=e.tablePipeAlign,a=e.stringLength,s=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:`
424
424
  `,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:k,table:l,tableCell:h,tableRow:c}};function l(T,E,R,M){return p(v(T,R,M),T.align)}function c(T,E,R,M){const A=b(T,R,M),U=p([A]);return U.slice(0,U.indexOf(`
425
- `))}function h(T,E,R,M){const A=R.enter("tableCell"),U=R.enter("phrasing"),V=R.containerPhrasing(T,{...M,before:s,after:s});return U(),A(),V}function p(T,E){return ree(T,{align:E,alignDelimiters:r,padding:n,stringLength:a})}function v(T,E,R){const M=T.children;let A=-1;const U=[],V=E.enter("table");for(;++A<M.length;)U[A]=b(M[A],E,R);return V(),U}function b(T,E,R){const M=T.children;let A=-1;const U=[],V=E.enter("tableRow");for(;++A<M.length;)U[A]=h(M[A],T,E,R);return V(),U}function k(T,E,R){let M=K5.inlineCode(T,E,R);return R.stack.includes("tableCell")&&(M=M.replace(/\|/g,"\\$&")),M}}function $ee(){return{exit:{taskListCheckValueChecked:Q5,taskListCheckValueUnchecked:Q5,paragraph:Wee}}}function qee(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:Gee}}}function Q5(t){const e=this.stack[this.stack.length-2];e.type,e.checked=t.type==="taskListCheckValueChecked"}function Wee(t){const e=this.stack[this.stack.length-2];if(e&&e.type==="listItem"&&typeof e.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const a=e.children;let s=-1,l;for(;++s<a.length;){const c=a[s];if(c.type==="paragraph"){l=c;break}}l===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(t)}function Gee(t,e,n,r){const a=t.children[0],s=typeof t.checked=="boolean"&&a&&a.type==="paragraph",l="["+(t.checked?"x":" ")+"] ",c=n.createTracker(r);s&&c.move(l);let h=K5.listItem(t,e,n,{...r,...c.current()});return s&&(h=h.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,p)),h;function p(v){return v+l}}function Yee(){return[wJ(),UJ(),QJ(),Uee(),$ee()]}function Kee(t){return{extensions:[_J(),FJ(),XJ(),Hee(t),qee()]}}const Zee={tokenize:nte,partial:!0},X5={tokenize:rte,partial:!0},J5={tokenize:ite,partial:!0},eU={tokenize:ate,partial:!0},Qee={tokenize:ote,partial:!0},tU={name:"wwwAutolink",tokenize:ete,previous:rU},nU={name:"protocolAutolink",tokenize:tte,previous:iU},Cu={name:"emailAutolink",tokenize:Jee,previous:aU},kl={};function Xee(){return{text:kl}}let mf=48;for(;mf<123;)kl[mf]=Cu,mf++,mf===58?mf=65:mf===91&&(mf=97);kl[43]=Cu,kl[45]=Cu,kl[46]=Cu,kl[95]=Cu,kl[72]=[Cu,nU],kl[104]=[Cu,nU],kl[87]=[Cu,tU],kl[119]=[Cu,tU];function Jee(t,e,n){const r=this;let a,s;return l;function l(b){return!__(b)||!aU.call(r,r.previous)||E_(r.events)?n(b):(t.enter("literalAutolink"),t.enter("literalAutolinkEmail"),c(b))}function c(b){return __(b)?(t.consume(b),c):b===64?(t.consume(b),h):n(b)}function h(b){return b===46?t.check(Qee,v,p)(b):b===45||b===95||Sa(b)?(s=!0,t.consume(b),h):v(b)}function p(b){return t.consume(b),a=!0,h}function v(b){return s&&a&&za(r.previous)?(t.exit("literalAutolinkEmail"),t.exit("literalAutolink"),e(b)):n(b)}}function ete(t,e,n){const r=this;return a;function a(l){return l!==87&&l!==119||!rU.call(r,r.previous)||E_(r.events)?n(l):(t.enter("literalAutolink"),t.enter("literalAutolinkWww"),t.check(Zee,t.attempt(X5,t.attempt(J5,s),n),n)(l))}function s(l){return t.exit("literalAutolinkWww"),t.exit("literalAutolink"),e(l)}}function tte(t,e,n){const r=this;let a="",s=!1;return l;function l(b){return(b===72||b===104)&&iU.call(r,r.previous)&&!E_(r.events)?(t.enter("literalAutolink"),t.enter("literalAutolinkHttp"),a+=String.fromCodePoint(b),t.consume(b),c):n(b)}function c(b){if(za(b)&&a.length<5)return a+=String.fromCodePoint(b),t.consume(b),c;if(b===58){const k=a.toLowerCase();if(k==="http"||k==="https")return t.consume(b),h}return n(b)}function h(b){return b===47?(t.consume(b),s?p:(s=!0,h)):n(b)}function p(b){return b===null||fS(b)||Sr(b)||pf(b)||hS(b)?n(b):t.attempt(X5,t.attempt(J5,v),n)(b)}function v(b){return t.exit("literalAutolinkHttp"),t.exit("literalAutolink"),e(b)}}function nte(t,e,n){let r=0;return a;function a(l){return(l===87||l===119)&&r<3?(r++,t.consume(l),a):l===46&&r===3?(t.consume(l),s):n(l)}function s(l){return l===null?n(l):e(l)}}function rte(t,e,n){let r,a,s;return l;function l(p){return p===46||p===95?t.check(eU,h,c)(p):p===null||Sr(p)||pf(p)||p!==45&&hS(p)?h(p):(s=!0,t.consume(p),l)}function c(p){return p===95?r=!0:(a=r,r=void 0),t.consume(p),l}function h(p){return a||r||!s?n(p):e(p)}}function ite(t,e){let n=0,r=0;return a;function a(l){return l===40?(n++,t.consume(l),a):l===41&&r<n?s(l):l===33||l===34||l===38||l===39||l===41||l===42||l===44||l===46||l===58||l===59||l===60||l===63||l===93||l===95||l===126?t.check(eU,e,s)(l):l===null||Sr(l)||pf(l)?e(l):(t.consume(l),a)}function s(l){return l===41&&r++,t.consume(l),a}}function ate(t,e,n){return r;function r(c){return c===33||c===34||c===39||c===41||c===42||c===44||c===46||c===58||c===59||c===63||c===95||c===126?(t.consume(c),r):c===38?(t.consume(c),s):c===93?(t.consume(c),a):c===60||c===null||Sr(c)||pf(c)?e(c):n(c)}function a(c){return c===null||c===40||c===91||Sr(c)||pf(c)?e(c):r(c)}function s(c){return za(c)?l(c):n(c)}function l(c){return c===59?(t.consume(c),r):za(c)?(t.consume(c),l):n(c)}}function ote(t,e,n){return r;function r(s){return t.consume(s),a}function a(s){return Sa(s)?n(s):e(s)}}function rU(t){return t===null||t===40||t===42||t===95||t===91||t===93||t===126||Sr(t)}function iU(t){return!za(t)}function aU(t){return!(t===47||__(t))}function __(t){return t===43||t===45||t===46||t===95||Sa(t)}function E_(t){let e=t.length,n=!1;for(;e--;){const r=t[e][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return t.length>0&&!n&&(t[t.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const ste={tokenize:mte,partial:!0};function lte(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:fte,continuation:{tokenize:hte},exit:pte}},text:{91:{name:"gfmFootnoteCall",tokenize:dte},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:ute,resolveTo:cte}}}}function ute(t,e,n){const r=this;let a=r.events.length;const s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l;for(;a--;){const h=r.events[a][1];if(h.type==="labelImage"){l=h;break}if(h.type==="gfmFootnoteCall"||h.type==="labelLink"||h.type==="label"||h.type==="image"||h.type==="link")break}return c;function c(h){if(!l||!l._balanced)return n(h);const p=Ns(r.sliceSerialize({start:l.end,end:r.now()}));return p.codePointAt(0)!==94||!s.includes(p.slice(1))?n(h):(t.enter("gfmFootnoteCallLabelMarker"),t.consume(h),t.exit("gfmFootnoteCallLabelMarker"),e(h))}}function cte(t,e){let n=t.length;for(;n--;)if(t[n][1].type==="labelImage"&&t[n][0]==="enter"){t[n][1];break}t[n+1][1].type="data",t[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},t[n+3][1].start),end:Object.assign({},t[t.length-1][1].end)},a={type:"gfmFootnoteCallMarker",start:Object.assign({},t[n+3][1].end),end:Object.assign({},t[n+3][1].end)};a.end.column++,a.end.offset++,a.end._bufferIndex++;const s={type:"gfmFootnoteCallString",start:Object.assign({},a.end),end:Object.assign({},t[t.length-1][1].start)},l={type:"chunkString",contentType:"string",start:Object.assign({},s.start),end:Object.assign({},s.end)},c=[t[n+1],t[n+2],["enter",r,e],t[n+3],t[n+4],["enter",a,e],["exit",a,e],["enter",s,e],["enter",l,e],["exit",l,e],["exit",s,e],t[t.length-2],t[t.length-1],["exit",r,e]];return t.splice(n,t.length-n+1,...c),t}function dte(t,e,n){const r=this,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s=0,l;return c;function c(b){return t.enter("gfmFootnoteCall"),t.enter("gfmFootnoteCallLabelMarker"),t.consume(b),t.exit("gfmFootnoteCallLabelMarker"),h}function h(b){return b!==94?n(b):(t.enter("gfmFootnoteCallMarker"),t.consume(b),t.exit("gfmFootnoteCallMarker"),t.enter("gfmFootnoteCallString"),t.enter("chunkString").contentType="string",p)}function p(b){if(s>999||b===93&&!l||b===null||b===91||Sr(b))return n(b);if(b===93){t.exit("chunkString");const k=t.exit("gfmFootnoteCallString");return a.includes(Ns(r.sliceSerialize(k)))?(t.enter("gfmFootnoteCallLabelMarker"),t.consume(b),t.exit("gfmFootnoteCallLabelMarker"),t.exit("gfmFootnoteCall"),e):n(b)}return Sr(b)||(l=!0),s++,t.consume(b),b===92?v:p}function v(b){return b===91||b===92||b===93?(t.consume(b),s++,p):p(b)}}function fte(t,e,n){const r=this,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s,l=0,c;return h;function h(E){return t.enter("gfmFootnoteDefinition")._container=!0,t.enter("gfmFootnoteDefinitionLabel"),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(E),t.exit("gfmFootnoteDefinitionLabelMarker"),p}function p(E){return E===94?(t.enter("gfmFootnoteDefinitionMarker"),t.consume(E),t.exit("gfmFootnoteDefinitionMarker"),t.enter("gfmFootnoteDefinitionLabelString"),t.enter("chunkString").contentType="string",v):n(E)}function v(E){if(l>999||E===93&&!c||E===null||E===91||Sr(E))return n(E);if(E===93){t.exit("chunkString");const R=t.exit("gfmFootnoteDefinitionLabelString");return s=Ns(r.sliceSerialize(R)),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(E),t.exit("gfmFootnoteDefinitionLabelMarker"),t.exit("gfmFootnoteDefinitionLabel"),k}return Sr(E)||(c=!0),l++,t.consume(E),E===92?b:v}function b(E){return E===91||E===92||E===93?(t.consume(E),l++,v):v(E)}function k(E){return E===58?(t.enter("definitionMarker"),t.consume(E),t.exit("definitionMarker"),a.includes(s)||a.push(s),Vn(t,T,"gfmFootnoteDefinitionWhitespace")):n(E)}function T(E){return e(E)}}function hte(t,e,n){return t.check(wv,e,t.attempt(ste,e,n))}function pte(t){t.exit("gfmFootnoteDefinition")}function mte(t,e,n){const r=this;return Vn(t,a,"gfmFootnoteDefinitionIndent",5);function a(s){const l=r.events[r.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?e(s):n(s)}}function gte(t){let n=(t||{}).singleTilde;const r={name:"strikethrough",tokenize:s,resolveAll:a};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function a(l,c){let h=-1;for(;++h<l.length;)if(l[h][0]==="enter"&&l[h][1].type==="strikethroughSequenceTemporary"&&l[h][1]._close){let p=h;for(;p--;)if(l[p][0]==="exit"&&l[p][1].type==="strikethroughSequenceTemporary"&&l[p][1]._open&&l[h][1].end.offset-l[h][1].start.offset===l[p][1].end.offset-l[p][1].start.offset){l[h][1].type="strikethroughSequence",l[p][1].type="strikethroughSequence";const v={type:"strikethrough",start:Object.assign({},l[p][1].start),end:Object.assign({},l[h][1].end)},b={type:"strikethroughText",start:Object.assign({},l[p][1].end),end:Object.assign({},l[h][1].start)},k=[["enter",v,c],["enter",l[p][1],c],["exit",l[p][1],c],["enter",b,c]],T=c.parser.constructs.insideSpan.null;T&&Mo(k,k.length,0,pS(T,l.slice(p+1,h),c)),Mo(k,k.length,0,[["exit",b,c],["enter",l[h][1],c],["exit",l[h][1],c],["exit",v,c]]),Mo(l,p-1,h-p+3,k),h=p+k.length-2;break}}for(h=-1;++h<l.length;)l[h][1].type==="strikethroughSequenceTemporary"&&(l[h][1].type="data");return l}function s(l,c,h){const p=this.previous,v=this.events;let b=0;return k;function k(E){return p===126&&v[v.length-1][1].type!=="characterEscape"?h(E):(l.enter("strikethroughSequenceTemporary"),T(E))}function T(E){const R=Cp(p);if(E===126)return b>1?h(E):(l.consume(E),b++,T);if(b<2&&!n)return h(E);const M=l.exit("strikethroughSequenceTemporary"),A=Cp(E);return M._open=!A||A===2&&!!R,M._close=!R||R===2&&!!A,c(E)}}}class vte{constructor(){this.map=[]}add(e,n,r){yte(this,e,n,r)}consume(e){if(this.map.sort(function(s,l){return s[0]-l[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(e.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),e.length=this.map[n][0];r.push([...e]),e.length=0;let a=r.pop();for(;a;)e.push(...a),a=r.pop();this.map.length=0}}function yte(t,e,n,r){let a=0;if(!(n===0&&r.length===0)){for(;a<t.map.length;){if(t.map[a][0]===e){t.map[a][1]+=n,t.map[a][2].push(...r);return}a+=1}t.map.push([e,n,r])}}function bte(t,e){let n=!1;const r=[];for(;e<t.length;){const a=t[e];if(n){if(a[0]==="enter")a[1].type==="tableContent"&&r.push(t[e+1][1].type==="tableDelimiterMarker"?"left":"none");else if(a[1].type==="tableContent"){if(t[e-1][1].type==="tableDelimiterMarker"){const s=r.length-1;r[s]=r[s]==="left"?"center":"right"}}else if(a[1].type==="tableDelimiterRow")break}else a[0]==="enter"&&a[1].type==="tableDelimiterRow"&&(n=!0);e+=1}return r}function Ste(){return{flow:{null:{name:"table",tokenize:Cte,resolveAll:kte}}}}function Cte(t,e,n){const r=this;let a=0,s=0,l;return c;function c($){let oe=r.events.length-1;for(;oe>-1;){const ke=r.events[oe][1].type;if(ke==="lineEnding"||ke==="linePrefix")oe--;else break}const J=oe>-1?r.events[oe][1].type:null,xe=J==="tableHead"||J==="tableRow"?N:h;return xe===N&&r.parser.lazy[r.now().line]?n($):xe($)}function h($){return t.enter("tableHead"),t.enter("tableRow"),p($)}function p($){return $===124||(l=!0,s+=1),v($)}function v($){return $===null?n($):Bt($)?s>1?(s=0,r.interrupt=!0,t.exit("tableRow"),t.enter("lineEnding"),t.consume($),t.exit("lineEnding"),T):n($):Pn($)?Vn(t,v,"whitespace")($):(s+=1,l&&(l=!1,a+=1),$===124?(t.enter("tableCellDivider"),t.consume($),t.exit("tableCellDivider"),l=!0,v):(t.enter("data"),b($)))}function b($){return $===null||$===124||Sr($)?(t.exit("data"),v($)):(t.consume($),$===92?k:b)}function k($){return $===92||$===124?(t.consume($),b):b($)}function T($){return r.interrupt=!1,r.parser.lazy[r.now().line]?n($):(t.enter("tableDelimiterRow"),l=!1,Pn($)?Vn(t,E,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)($):E($))}function E($){return $===45||$===58?M($):$===124?(l=!0,t.enter("tableCellDivider"),t.consume($),t.exit("tableCellDivider"),R):I($)}function R($){return Pn($)?Vn(t,M,"whitespace")($):M($)}function M($){return $===58?(s+=1,l=!0,t.enter("tableDelimiterMarker"),t.consume($),t.exit("tableDelimiterMarker"),A):$===45?(s+=1,A($)):$===null||Bt($)?j($):I($)}function A($){return $===45?(t.enter("tableDelimiterFiller"),U($)):I($)}function U($){return $===45?(t.consume($),U):$===58?(l=!0,t.exit("tableDelimiterFiller"),t.enter("tableDelimiterMarker"),t.consume($),t.exit("tableDelimiterMarker"),V):(t.exit("tableDelimiterFiller"),V($))}function V($){return Pn($)?Vn(t,j,"whitespace")($):j($)}function j($){return $===124?E($):$===null||Bt($)?!l||a!==s?I($):(t.exit("tableDelimiterRow"),t.exit("tableHead"),e($)):I($)}function I($){return n($)}function N($){return t.enter("tableRow"),ne($)}function ne($){return $===124?(t.enter("tableCellDivider"),t.consume($),t.exit("tableCellDivider"),ne):$===null||Bt($)?(t.exit("tableRow"),e($)):Pn($)?Vn(t,ne,"whitespace")($):(t.enter("data"),X($))}function X($){return $===null||$===124||Sr($)?(t.exit("data"),ne($)):(t.consume($),$===92?se:X)}function se($){return $===92||$===124?(t.consume($),X):X($)}}function kte(t,e){let n=-1,r=!0,a=0,s=[0,0,0,0],l=[0,0,0,0],c=!1,h=0,p,v,b;const k=new vte;for(;++n<t.length;){const T=t[n],E=T[1];T[0]==="enter"?E.type==="tableHead"?(c=!1,h!==0&&(oU(k,e,h,p,v),v=void 0,h=0),p={type:"table",start:Object.assign({},E.start),end:Object.assign({},E.end)},k.add(n,0,[["enter",p,e]])):E.type==="tableRow"||E.type==="tableDelimiterRow"?(r=!0,b=void 0,s=[0,0,0,0],l=[0,n+1,0,0],c&&(c=!1,v={type:"tableBody",start:Object.assign({},E.start),end:Object.assign({},E.end)},k.add(n,0,[["enter",v,e]])),a=E.type==="tableDelimiterRow"?2:v?3:1):a&&(E.type==="data"||E.type==="tableDelimiterMarker"||E.type==="tableDelimiterFiller")?(r=!1,l[2]===0&&(s[1]!==0&&(l[0]=l[1],b=ES(k,e,s,a,void 0,b),s=[0,0,0,0]),l[2]=n)):E.type==="tableCellDivider"&&(r?r=!1:(s[1]!==0&&(l[0]=l[1],b=ES(k,e,s,a,void 0,b)),s=l,l=[s[1],n,0,0])):E.type==="tableHead"?(c=!0,h=n):E.type==="tableRow"||E.type==="tableDelimiterRow"?(h=n,s[1]!==0?(l[0]=l[1],b=ES(k,e,s,a,n,b)):l[1]!==0&&(b=ES(k,e,l,a,n,b)),a=0):a&&(E.type==="data"||E.type==="tableDelimiterMarker"||E.type==="tableDelimiterFiller")&&(l[3]=n)}for(h!==0&&oU(k,e,h,p,v),k.consume(e.events),n=-1;++n<e.events.length;){const T=e.events[n];T[0]==="enter"&&T[1].type==="table"&&(T[1]._align=bte(e.events,n))}return t}function ES(t,e,n,r,a,s){const l=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",c="tableContent";n[0]!==0&&(s.end=Object.assign({},Tp(e.events,n[0])),t.add(n[0],0,[["exit",s,e]]));const h=Tp(e.events,n[1]);if(s={type:l,start:Object.assign({},h),end:Object.assign({},h)},t.add(n[1],0,[["enter",s,e]]),n[2]!==0){const p=Tp(e.events,n[2]),v=Tp(e.events,n[3]),b={type:c,start:Object.assign({},p),end:Object.assign({},v)};if(t.add(n[2],0,[["enter",b,e]]),r!==2){const k=e.events[n[2]],T=e.events[n[3]];if(k[1].end=Object.assign({},T[1].end),k[1].type="chunkText",k[1].contentType="text",n[3]>n[2]+1){const E=n[2]+1,R=n[3]-n[2]-1;t.add(E,R,[])}}t.add(n[3]+1,0,[["exit",b,e]])}return a!==void 0&&(s.end=Object.assign({},Tp(e.events,a)),t.add(a,0,[["exit",s,e]]),s=void 0),s}function oU(t,e,n,r,a){const s=[],l=Tp(e.events,n);a&&(a.end=Object.assign({},l),s.push(["exit",a,e])),r.end=Object.assign({},l),s.push(["exit",r,e]),t.add(n+1,0,s)}function Tp(t,e){const n=t[e],r=n[0]==="enter"?"start":"end";return n[1][r]}const Tte={name:"tasklistCheck",tokenize:wte};function xte(){return{text:{91:Tte}}}function wte(t,e,n){const r=this;return a;function a(h){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(h):(t.enter("taskListCheck"),t.enter("taskListCheckMarker"),t.consume(h),t.exit("taskListCheckMarker"),s)}function s(h){return Sr(h)?(t.enter("taskListCheckValueUnchecked"),t.consume(h),t.exit("taskListCheckValueUnchecked"),l):h===88||h===120?(t.enter("taskListCheckValueChecked"),t.consume(h),t.exit("taskListCheckValueChecked"),l):n(h)}function l(h){return h===93?(t.enter("taskListCheckMarker"),t.consume(h),t.exit("taskListCheckMarker"),t.exit("taskListCheck"),c):n(h)}function c(h){return Bt(h)?e(h):Pn(h)?t.check({tokenize:_te},e,n)(h):n(h)}}function _te(t,e,n){return Vn(t,r,"whitespace");function r(a){return a===null?n(a):e(a)}}function Ete(t){return I4([Xee(),lte(),gte(t),Ste(),xte()])}const Rte={};function Pte(t){const e=this,n=t||Rte,r=e.data(),a=r.micromarkExtensions||(r.micromarkExtensions=[]),s=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),l=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);a.push(Ete(n)),s.push(Yee()),l.push(Kee(n))}const Dte=({itemIndex:t,message:e})=>{const n=Zo(),r=WW(e.name),a=r?n.textColor:n.primaryTextColor;return W.jsx("div",{className:xr("ringg_ai-flex ringg_ai-flex-col ringg_ai-items-start ringg_ai-gap-1 ringg_ai-justify-start",r?"ringg_ai-flex-row":"ringg_ai-flex-row-reverse"),children:W.jsx("div",{className:xr("ringg_ai-flex ringg_ai-items-center ringg_ai-justify-start ringg_ai-gap-2 ringg_ai-px-4 ringg_ai-py-2 ringg_ai-rounded-xl ringg_ai-max-w-[90%]",r?"ringg_ai-mr-auto ringg_ai-text-left ringg_ai-rounded-bl-none":"ringg_ai-ml-auto ringg_ai-text-right ringg_ai-rounded-br-none"),style:{backgroundColor:r?n.surfaceColor:n.primaryColor,color:a},children:W.jsxs("div",{className:"ringg_ai-flex ringg_ai-flex-col ringg_ai-gap-2.5 ringg_ai-w-full ringg_ai-overflow-x-auto",children:[W.jsx("div",{className:"ringg_ai-prose ringg_ai-prose-sm ringg_ai-max-w-none [&_p]:ringg_ai-text-sm [&_li]:ringg_ai-text-sm [&_table]:ringg_ai-w-max",style:{"--tw-prose-body":a,"--tw-prose-headings":a,"--tw-prose-bold":a,"--tw-prose-counters":a,"--tw-prose-bullets":a,"--tw-prose-quotes":a,"--tw-prose-code":a,"--tw-prose-th-borders":n.borderColor,"--tw-prose-td-borders":n.borderColor,color:a},children:W.jsx(mJ,{remarkPlugins:[Pte],children:e.message})}),(e==null?void 0:e.sourceUrl)&&W.jsxs("a",{href:e.sourceUrl,target:"_blank",rel:"noopener noreferrer",className:"ringg_ai-text-sm ringg_ai-break-all ringg_ai-w-fit ringg_ai-hover:underline",style:{color:r?n.primaryColor:n.primaryTextColor},children:["Source: ",e.sourceUrl]})]})},`${e.name}__${t}`)},`${e.timestamp}__${t}`)};function Ate({tabs:t=[],activeTab:e="voice-call",onTabChange:n}){const r=Zo(),[a,s]=G.useState(e),l=c=>{s(c),n==null||n(c)};return W.jsx("div",{className:"ringg_ai-w-full ringg_ai-border-t",style:{backgroundColor:r.backgroundColor,borderColor:r.borderColor},children:W.jsx("div",{className:"ringg_ai-flex ringg_ai-items-center ringg_ai-px-0",children:t.map(c=>{const h=c.icon,p=a===c.id,v=p?r.primaryColor:r.mutedTextColor;return W.jsxs("button",{onClick:()=>l(c.id),className:xr("ringg_ai-flex ringg_ai-flex-col ringg_ai-items-center ringg_ai-gap-1 ringg_ai-border-t-2 ringg_ai-py-3 ringg_ai-transition-all ringg_ai-duration-200 ringg_ai-flex-1"),style:{borderTopColor:p?r.primaryColor:"transparent"},children:[W.jsx(h,{className:"ringg_ai-w-5 ringg_ai-h-5 ringg_ai-transition-colors",fill:v,style:{color:v}}),W.jsx("span",{className:"ringg_ai-text-xs ringg_ai-font-medium ringg_ai-transition-colors",style:{color:v},children:c.label})]},c.id)})})})}const Ote=Y3("ringg_ai-inline-flex ringg_ai-items-center ringg_ai-justify-center ringg_ai-gap-2 ringg_ai-whitespace-nowrap ringg_ai-rounded-md ringg_ai-text-sm ringg_ai-font-medium ringg_ai-ring-offset-background ringg_ai-transition-colors focus-visible:ringg_ai-outline-none focus-visible:ringg_ai-ring-2 focus-visible:ringg_ai-ring-ring focus-visible:ringg_ai-ring-offset-2 disabled:ringg_ai-pointer-events-none disabled:ringg_ai-opacity-50 [&_svg]:ringg_ai-pointer-events-none [&_svg]:ringg_ai-size-4 [&_svg]:ringg_ai-shrink-0",{variants:{variant:{default:"ringg_ai-bg-primary ringg_ai-text-primary-foreground ringg_ai-shadow hover:ringg_ai-bg-primary/90",destructive:"ringg_ai-bg-destructive ringg_ai-text-destructive-foreground ringg_ai-shadow-sm hover:ringg_ai-bg-destructive/90",outline:"ringg_ai-border ringg_ai-border-input ringg_ai-bg-background ringg_ai-shadow-sm hover:ringg_ai-bg-accent hover:ringg_ai-text-accent-foreground",secondary:"ringg_ai-bg-secondary ringg_ai-text-secondary-foreground ringg_ai-shadow-sm hover:ringg_ai-bg-secondary/80",ghost:"hover:ringg_ai-bg-accent hover:ringg_ai-text-accent-foreground",link:"ringg_ai-text-primary ringg_ai-underline-offset-4 hover:ringg_ai-underline"},size:{default:"ringg_ai-h-9 ringg_ai-px-4 ringg_ai-py-2",sm:"ringg_ai-h-8 ringg_ai-rounded-md ringg_ai-px-3 ringg_ai-text-xs",lg:"ringg_ai-h-10 ringg_ai-rounded-md ringg_ai-px-8",icon:"ringg_ai-h-9 ringg_ai-w-9"}},defaultVariants:{variant:"default",size:"default"}}),Av=G.forwardRef(({className:t,variant:e,size:n,asChild:r=!1,...a},s)=>{const l=r?uS:"button";return W.jsx(l,{className:xr(Ote({variant:e,size:n,className:t})),ref:s,...a})});Av.displayName="Button";function Bc(t,e){typeof window<"u"&&window.dispatchEvent(new CustomEvent(t,{detail:e}))}function Mte({callMode:t}){const[e,n]=G.useState(!1),[r,a]=G.useState(!1),[s,l]=G.useState(null),c=G.useRef(!1),h=G.useRef(t);h.current=t;const p=G.useCallback(()=>{c.current||(c.current=!0,n(!0),Bc("ringg:widget_status",{status:"maximised",mode:h.current}))},[]),v=G.useCallback(()=>{c.current=!1,n(!1),Bc("ringg:widget_status",{status:"minimised",mode:h.current})},[]),b=G.useCallback(()=>{a(!1),l(null),v()},[v]),k=G.useCallback(()=>{c.current?v():p()},[p,v]);return G.useMemo(()=>({isOpen:e,showFeedback:r,currentCallId:s,setShowFeedback:a,setCurrentCallId:l,open:p,minimize:v,close:b,toggle:k}),[e,r,s,p,v,b,k])}function Lte({room:t,onError:e}){const[n,r]=G.useState("unknown"),a=G.useRef(e);a.current=e;const s=G.useCallback(async()=>{var h;try{if((h=navigator.permissions)!=null&&h.query){const p=await navigator.permissions.query({name:"microphone"});r(p.state),p.onchange=()=>{r(p.state)}}else try{await navigator.mediaDevices.getUserMedia({audio:!0}),r("granted")}catch{r("denied")}}catch(p){console.error("Error checking microphone permission:",p),r("unknown")}},[]),l=G.useCallback(async()=>{var h;try{const p=await navigator.mediaDevices.getUserMedia({audio:!0});return r("granted"),p.getTracks().forEach(v=>v.stop()),!0}catch(p){return console.error("Error requesting microphone permission:",p),r("denied"),(h=a.current)==null||h.call(a,"Microphone access was denied. Please enable it in your browser settings."),!1}},[]);G.useEffect(()=>{s();const h=()=>{var p;(p=a.current)==null||p.call(a,"Error acquiring microphone permission. Please make sure you grant the necessary permissions in your browser and reload the tab"),r("denied")};return t.on(Ee.MediaDevicesError,h),()=>{t.off(Ee.MediaDevicesError,h)}},[t,s]);const c=n==="granted";return G.useMemo(()=>({state:n,isGranted:c,check:s,request:l}),[n,c,s,l])}function Nte({containerRef:t,enabled:e}){G.useEffect(()=>{const n=t.current;if(!n||!e)return;const r=c=>{const h=n.querySelector('[data-scrollable="true"]');if(!h){c.preventDefault();return}const{scrollTop:p,scrollHeight:v,clientHeight:b}=h,k=p===0&&c.deltaY<0,T=p+b>=v-1&&c.deltaY>0;(k||T)&&c.preventDefault()};let a=0;const s=c=>{a=c.touches[0].clientY},l=c=>{const h=n.querySelector('[data-scrollable="true"]'),p=c.touches[0].clientY,v=a-p;if(!h){c.preventDefault();return}const{scrollTop:b,scrollHeight:k,clientHeight:T}=h,E=b===0&&v<0,R=b+T>=k-1&&v>0;(E||R)&&c.preventDefault()};return n.addEventListener("wheel",r,{passive:!1}),n.addEventListener("touchstart",s,{passive:!0}),n.addEventListener("touchmove",l,{passive:!1}),()=>{n.removeEventListener("wheel",r),n.removeEventListener("touchstart",s),n.removeEventListener("touchmove",l)}},[e])}const xp={mode:"prod",title:"Ringg AI Support",description:"Ringg AI offers 24/7 voice support to handle your business calls efficiently and professionally",defaultTab:"audio",hideTabSelector:!1,notificationTuneUrl:"https://assets.ringg.ai/audios/misc/widget_notification.mp3"};function R_(t){switch(t){case"dev":return"https://calling-dev.ringg.ai/ca/api/v0";case"stage":return"https://stage-api2.desivocal.com/ca/api/v0";default:return"https://prod-api.ringg.ai/ca/api/v0"}}function Ite(t){switch(t){case"dev":return"wss://ringg-ai-dev-92tubwpz.livekit.cloud";case"stage":return"wss://ringg-ai-ujrjmhgy.livekit.cloud";default:return"wss://ringg-ai-prod-r0vhjzhs.livekit.cloud"}}function Xse(t){return t}const sU={center:{top:0,left:0,right:0,bottom:0,margin:"auto"},"top-left":{top:"2%",left:"2%"},"top-right":{top:"2%",right:"2%"},"bottom-left":{bottom:"2%",left:"2%"},"bottom-right":{bottom:"2%",right:"2%"},"bottom-center":{bottom:"2%",left:"50%"}};function Ute(t){return sU[t]??sU["bottom-right"]}function Fte(t){return t==="bottom-center"?{left:"50%"}:t==="bottom-left"?{left:"2%"}:{right:"2%"}}function RS(t){if(t!==void 0)return typeof t=="number"?`${t}px`:t}function jte(t){return t?{width:RS(t.width),height:RS(t.height),borderRadius:RS(t.borderRadius)}:{}}function Vte(t,e){if(!e)return t;let n=[t];return Object.entries(e).forEach(([r,a])=>{n=n.flatMap((s,l)=>{if(typeof s!="string")return s;const c=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),h=new RegExp(`\\b(${c})\\b`,"g");return s.split(h).map((p,v)=>p===r?W.jsx("a",{target:"_blank",rel:"noopener noreferrer",className:"ringg_ai-text-blue-500 hover:ringg_ai-underline",href:a,children:r},`${l}-${v}`):p)})}),n}const zte=({room:t,config:e})=>{var Hi,Ji,ea,co,es,ts,fo;const[n,r]=G.useState({}),a=e,{mode:s=xp.mode,title:l=xp.title,description:c=xp.description,agentId:h,variables:p,buttons:v,xApiKey:b="",defaultTab:k=xp.defaultTab,hideTabSelector:T=xp.hideTabSelector,innerWindowProps:E,logoUrl:R,logoStyles:M,legalDisclaimer:A,feedbackScreen:U,notificationTuneUrl:V=xp.notificationTuneUrl,widgetPosition:j,theme:I}=a,N=WI(I),ne=mw(N.buttonStyle),X=(j==null?void 0:j.triggerPlacement)??"fixed",se=(j==null?void 0:j.triggerAlignment)??"bottom-right",$=(j==null?void 0:j.hideTriggerOnExpand)??!0,oe=(j==null?void 0:j.widgetAlignment)??"bottom-right",J=Ute(se),xe=jte(E),[ke,Ge]=G.useState(k),[Je,je]=G.useState(!1),[ve,He]=G.useState(!1),[z,ee]=G.useState({hasError:!1,message:""}),[Ce,H]=G.useState([]),[Ct,Rt]=G.useState(new Map),ht=G.useRef(null),bt=G.useRef(null),it=G.useRef(null),xt=G.useRef(""),tn=G.useRef(),qn=G.useRef(new Set),_r=G.useRef(null),vr=G.useRef(!1),Xn=G.useRef(new Map),Nr=ex(t),bn=Nr==="connected",Lt=Mte({callMode:ke}),Z=Lte({room:t,onError:tt=>ee({hasError:!0,message:tt})});Nte({containerRef:bt,enabled:Lt.isOpen});const{chatMessages:le}=$M(),me=hB(),Ve=aB(),ze=HM(),Oe=tx(me.audioTrack||void 0),ut=tx({publication:Ve.microphoneTrack,source:De.Source.Microphone,participant:Ve.localParticipant}),Nt=G.useMemo(()=>ze.find(tt=>{var Me;return(Me=tt.identity)==null?void 0:Me.includes("agent")}),[ze]),fe=G.useCallback((tt,Me)=>{vr.current=!1,console.log("%c[Conversation Started]","background: #22c55e; color: white; padding: 2px 6px; border-radius: 3px;",{mode:tt,callId:Me}),Bc("ringg:conversation_status",{status:"started",mode:tt,callId:Me})},[]),Re=G.useCallback((tt,Me)=>{vr.current||(vr.current=!0,console.log("%c[Conversation Ended]","background: #ef4444; color: white; padding: 2px 6px; border-radius: 3px;",{mode:tt,callId:Me}),Bc("ringg:conversation_status",{status:"ended",mode:tt,callId:Me}))},[]),vt=G.useCallback(async tt=>{if(!(tt==="audio"&&!Z.isGranted&&!await Z.request())){je(!0),Ge(tt);try{const Me=await fetch(`${R_(s)}/calling/webcall`,{method:"POST",body:JSON.stringify({agent_id:h,custom_args_values:p,media_type:tt}),headers:{"Content-Type":"application/json","X-API-KEY":b}}),It=await Me.json();if(!Me.ok)throw new Error((It==null?void 0:It.message)||"Failed to make call");It!=null&&It.call_id&&Lt.setCurrentCallId(It.call_id),await t.connect(Ite(s),It==null?void 0:It.user_token),tt==="audio"&&await t.localParticipant.setMicrophoneEnabled(!0),fe(tt,It.call_id),ee({hasError:!1,message:""})}catch(Me){ee({hasError:!0,message:Me.message})}finally{je(!1)}}},[t,s,h,p,b,Z,Lt,fe]),Ft=G.useCallback(async()=>{je(!0);try{Lt.currentCallId&&Re(ke,Lt.currentCallId),H([]),Rt(new Map),qn.current=new Set,xt.current="",tn.current=void 0,t.disconnect(),He(!1),Lt.setShowFeedback(!0),Lt.open()}catch(tt){ee({hasError:!0,message:"Error ending call: "+tt.message})}finally{je(!1)}},[t,ke,Lt,Re]),Kt=G.useCallback(async(tt,Me)=>{if(!Lt.currentCallId){Lt.close();return}je(!0);try{await fetch(`${R_(s)}/calling/${Lt.currentCallId}/feedback`,{method:"POST",body:JSON.stringify({rating:tt,comment:Me}),headers:{"Content-Type":"application/json","X-API-KEY":b}}),Bc("ringg:feedback_status",{status:"submitted",callId:Lt.currentCallId,rating:tt})}catch(It){console.error("Error submitting feedback:",It)}finally{je(!1),Lt.close()}},[s,b,Lt]),Be=G.useCallback(()=>{Lt.currentCallId&&Bc("ringg:feedback_status",{status:"skipped",callId:Lt.currentCallId}),Lt.close()},[Lt]),ct=G.useCallback(tt=>{var It;const Me={name:"Agent",message:"",isSelf:!1,timestamp:Date.now()+Math.random(),componentType:tt.component_type,componentData:tt};H(Ht=>[...Ht,Me]),Bc("ringg:calendar_booking",{status:"shown",componentId:tt.component_id}),(It=it.current)==null||It.play().catch(()=>{}),Lt.open()},[Lt]),At=G.useCallback(tt=>{qn.current.add(tt),Bc("ringg:calendar_booking",{status:"confirmed",componentId:tt,message:"Flow completed"})},[]),ln=G.useCallback(async(tt,Me)=>{const It=Xn.current.get(tt);if(!It){console.warn(`[RPC] No pending response found for component: ${tt}`);return}if(!Nt){console.warn("[RPC] No agent participant found to send response to");return}const{name:Ht,originalConfig:Sn}=It,jt=`render_component_${Ht}_response`;let Cn;if(Ht==="calendar"){const Er=Me.step_data&&Me.step_data.slot_id;Cn=(Array.isArray(Sn)?Sn:[]).find(Xe=>Xe.id===Er)||{id:Er,datetime:Me.step_data&&Me.step_data.slot_datetime}}else if(Ht==="form")Cn=Me.step_data||Me.all_data;else if(Ht==="buttons"){const Er=Me.step_data&&Me.step_data.selected_button;Cn=(Array.isArray(Sn)?Sn:[]).find(Xe=>Xe.id===Er)||{id:Er}}else Cn=Me;const er=JSON.stringify(Cn);try{console.log(`[RPC] Sending ${jt}:`,er);const Er=await Ve.localParticipant.performRpc({destinationIdentity:Nt.identity,method:jt,payload:er});console.log(`[RPC] Response from ${jt}:`,Er),Xn.current.delete(tt)}catch(Er){console.error(`[RPC] Error sending ${jt}:`,Er)}},[Nt,Ve.localParticipant]),En=G.useMemo(()=>null,[]),un=G.useCallback(async(tt,Me,It)=>(await fetch(Me.startsWith("http")?Me:`${R_(s)}${Me}`,{method:tt,body:JSON.stringify(It),headers:{"Content-Type":"application/json","X-API-KEY":b}})).json(),[s,b,bn,En]),Dn=G.useCallback(async tt=>{try{const Me=JSON.parse(tt.payload);return Array.isArray(Me.source_urls)?xt.current=Me.source_urls.join(", "):Me.source_url&&(xt.current=Me.source_url),JSON.stringify({status:"received"})}catch(Me){throw console.error("Failed to parse RPC payload:",Me),new Error("Invalid payload for send_source_urls")}},[]),Wn=G.useCallback(async tt=>{try{console.log("Received dynamic data:",tt.payload);const Me=JSON.parse(tt.payload);return Me.component_type&&Me.component_id&&ct(Me),JSON.stringify({status:"received"})}catch(Me){throw console.error("Failed to parse component payload:",Me),new Error("Invalid component payload")}},[ct]),Jn=G.useCallback((tt,Me)=>{const It=`${tt}_${Date.now()}`,Ht=Me.componant_config||Me.component_config;if(tt==="calendar"){const Sn=Array.isArray(Ht)?Ht:[];return{component_type:"calendar_booking",component_id:It,data:{available_slots:Sn.map(jt=>({id:jt.id,datetime:jt.datetime})),timezone:Me.timezone||"UTC",title:Me.title||"Select a time slot"},actions:{on_select:{method:"POST",endpoint:"/mock/calendar",payload:{selected_slot_id:"{slot_id}"}}}}}return tt==="form"?{component_type:"form",component_id:It,data:{title:Me.title||"Form",description:Me.description,fields:Array.isArray(Ht)?Ht:[],submit_label:Me.submit_label},actions:{on_submit:{method:"POST",endpoint:"/mock/form",payload:{form_data:"{form_data}"}}}}:tt==="buttons"?{component_type:"buttons",component_id:It,data:{title:Me.title,buttons:Array.isArray(Ht)?Ht:[]}}:tt==="confirmation"?{component_type:"confirmation",component_id:It,data:{title:Me.title||"Confirmed",message:Me.message||"",icon:Me.icon||"success",details:Me.details}}:Me.component_type&&Me.component_id?Me:null},[]),Gn=G.useCallback(async tt=>{try{const Me=JSON.parse(tt.payload);console.log("[RPC] Received send_dynamic_data:",Me);const It=Me.componant_type||Me.component_type;if(!It)return console.warn("[RPC] No componant_type in payload"),JSON.stringify({status:"error",message:"No componant_type provided"});const Ht=It.replace("render_component_","");console.log(`[RPC] Routing to component: ${Ht}`);const Sn=Jn(Ht,Me);return Sn?(Xn.current.set(Sn.component_id,{name:Ht,originalConfig:Me.componant_config||Me.component_config}),ct(Sn),JSON.stringify({status:"received",component_id:Sn.component_id})):(console.warn(`[RPC] Unknown component type: ${Ht}`),JSON.stringify({status:"error",message:`Unknown component type: ${Ht}`}))}catch(Me){throw console.error("[RPC] Failed to parse send_dynamic_data payload:",Me),new Error("Invalid send_dynamic_data payload")}},[ct,Jn]);G.useEffect(()=>{_r.current=ct},[ct]);const In=G.useRef(Lt.open);return In.current=Lt.open,G.useEffect(()=>{},[]),G.useEffect(()=>{var Ht,Sn;if(!t||ke!=="audio")return;const tt=new Map(Ct);me.audioTrack&&Oe.segments.forEach(jt=>{const Cn=tt.get(jt.id),er=bw(jt,Cn,me.audioTrack.participant);tt.set(jt.id,er),jt.text&&jt.text!==(Cn==null?void 0:Cn.message)&&(jt.final?console.log("%c[Agent Message Complete]","background: #22c55e; color: white; padding: 2px 6px; border-radius: 3px;",jt.text):console.log("%c[Agent Speaking...]","color: #22c55e;",jt.text))}),ut.segments.forEach(jt=>{const Cn=tt.get(jt.id),er=bw(jt,Cn,Ve.localParticipant);tt.set(jt.id,er),jt.text&&jt.text!==(Cn==null?void 0:Cn.message)&&(jt.final?console.log("%c[User Message Sent]","background: #3b82f6; color: white; padding: 2px 6px; border-radius: 3px;",jt.text):console.log("%c[User Speaking...]","color: #3b82f6;",jt.text))});const Me=Array.from(tt.values()).sort((jt,Cn)=>jt.timestamp-Cn.timestamp),It=xt.current&&((Ht=Me[Me.length-1])==null?void 0:Ht.name.includes("Agent"))&&!((Sn=Me[Me.length-1])!=null&&Sn.sourceUrl)&&tn.current!==Me.length-1;if(It){tn.current=Me.length,Me[Me.length-1]={...Me[Me.length-1],sourceUrl:xt.current};const jt=Me.filter(er=>!er.isSelf).length-1,Cn=tt.get(Oe.segments[jt].id);tt.set(Oe.segments[jt].id,bw(Oe.segments[jt],{...Cn,sourceUrl:xt.current},me.audioTrack.participant))}H(Me),Rt(tt),It||(xt.current="")},[ke,le,Oe.segments,ut.segments,me.audioTrack,Ve.localParticipant]),G.useEffect(()=>{if(!t||ke!=="text")return;const tt=async(It,Ht)=>{var Sn,jt;try{const Cn=await It.readAll(),er=(Sn=Ht.identity)==null?void 0:Sn.includes("agent");console.log(`%c[Transcript - Text] ${er?"Agent":"User"}:`,`color: ${er?"#22c55e":"#3b82f6"}; font-weight: bold;`,Cn),er&&((jt=it.current)==null||jt.play().catch(()=>{}),Lt.open());const Er={message:Cn,isSelf:!er,name:er?"Agent":"You",timestamp:Date.now()+performance.now()%1,...er&&xt.current&&{sourceUrl:xt.current}};xt.current&&(xt.current=""),H(K=>{const Le=new Set;return[...K,Er].filter(Xe=>!Le.has(Xe.timestamp)&&Le.add(Xe.timestamp)).sort((Xe,ot)=>Xe.timestamp-ot.timestamp)})}catch(Cn){console.error("Error reading text stream",Cn)}},Me=le.map(It=>{var jt,Cn,er,Er;const Ht=((jt=It.from)==null?void 0:jt.identity)===Ve.localParticipant.identity,Sn=me.audioTrack?((Cn=It.from)==null?void 0:Cn.identity)===((er=me.audioTrack.participant)==null?void 0:er.identity):!Ht;return{name:((Er=It.from)==null?void 0:Er.name)||(Sn?"Agent":Ht?"You":"Unknown"),isSelf:Ht,message:It.message,timestamp:It.timestamp}});return H(It=>{const Ht=new Set;return[...It,...Me].filter(Sn=>!Ht.has(Sn.timestamp)&&Ht.add(Sn.timestamp)).sort((Sn,jt)=>Sn.timestamp-jt.timestamp)}),t.registerTextStreamHandler("lk.transcription",tt),()=>{t.unregisterTextStreamHandler("lk.transcription")}},[t,ke,le,Lt,Ve.localParticipant,me.audioTrack]),G.useEffect(()=>{if(t)return console.log("[RPC] Registering handlers on room connect"),t.registerRpcMethod("send_source_urls",Dn),t.registerRpcMethod("render_component",Wn),t.registerRpcMethod("send_dynamic_data",Gn),console.log("[RPC] Registered: send_source_urls, render_component, send_dynamic_data"),()=>{t.unregisterRpcMethod("send_source_urls"),t.unregisterRpcMethod("render_component"),t.unregisterRpcMethod("send_dynamic_data")}},[t,Dn,Wn,Gn]),G.useEffect(()=>{if(t)return t.on(Ee.ParticipantDisconnected,Ft),t.on(Ee.Disconnected,Ft),()=>{t.off(Ee.ParticipantDisconnected,Ft),t.off(Ee.Disconnected,Ft)}},[Ft,t]),G.useEffect(()=>{if(ht.current&&(ht.current.scrollTop=ht.current.scrollHeight),Ce.length>0){const tt=Ce.filter(Me=>Me.message&&!Me.componentType).map(Me=>`${Me.isSelf?"User":"Agent"}: ${Me.message}`).join(`
426
- `);console.groupCollapsed(`%c[Transcript Summary] ${Ce.filter(Me=>Me.message).length} messages`,"color: #8b5cf6; font-weight: bold;"),console.log(tt),console.groupEnd()}},[Ce]),G.useEffect(()=>(it.current=new Audio(V),it.current.preload="auto",()=>{it.current&&(it.current.pause(),it.current.src="",it.current=null)}),[V]),W.jsxs(pW,{theme:I,children:[W.jsxs(sx,{children:[(!$||!Lt.isOpen)&&W.jsx(mu.button,{initial:{scale:.8,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.8,opacity:0},transition:{type:"spring",stiffness:400,damping:25},"aria-label":"Open call widget",onClick:Lt.toggle,style:{position:X,...J,backgroundColor:N.primaryColor,color:N.primaryTextColor,...(Hi=v==null?void 0:v.modalTrigger)==null?void 0:Hi.styles},className:"ringg_ai-h-14 ringg_ai-w-14 !ringg_ai-rounded-full ringg_ai-flex ringg_ai-items-center ringg_ai-justify-center ringg_ai-shadow ringg_ai-trigger-btn !ringg_ai-z-[9999] hover:ringg_ai-opacity-90 ringg_ai-transition-opacity",children:W.jsx("img",{src:((ea=(Ji=v==null?void 0:v.modalTrigger)==null?void 0:Ji.icon)==null?void 0:ea.url)??"https://assets.ringg.ai/images/icons/widget-phone.svg",alt:"Widget trigger",style:{width:((es=(co=v==null?void 0:v.modalTrigger)==null?void 0:co.icon)==null?void 0:es.size)??25,height:((fo=(ts=v==null?void 0:v.modalTrigger)==null?void 0:ts.icon)==null?void 0:fo.size)??25}})},"trigger-button"),Lt.isOpen&&W.jsxs(mu.div,{ref:bt,initial:{y:"100%",opacity:0,x:oe==="bottom-center"?"-50%":0},animate:{y:0,opacity:1,x:oe==="bottom-center"?"-50%":0},exit:{y:"100%",opacity:0,x:oe==="bottom-center"?"-50%":0},transition:{type:"spring",stiffness:300,damping:28},className:xr("ringg_ai-relative ringg_ai-border ringg_ai-overflow-hidden ringg_ai-shadow-xl !ringg_ai-z-[9999] ringg_ai-w-[95vw] md:ringg_ai-w-[360px]",bn&&"ringg_ai-h-[24.5rem]"),style:{position:"fixed",bottom:"2%",...Fte(oe),...bn?xe:{},maxWidth:"96dvw",maxHeight:"96dvh",backgroundColor:N.backgroundColor,borderColor:N.borderColor,borderRadius:RS(E==null?void 0:E.borderRadius)??N.borderRadius,fontFamily:N.fontFamily,"--widget-primary":N.primaryColor,"--widget-primary-text":N.primaryTextColor,"--widget-bg":N.backgroundColor,"--widget-surface":N.surfaceColor,"--widget-text":N.textColor,"--widget-muted":N.mutedTextColor,"--widget-border":N.borderColor,"--widget-button-radius":ne},children:[bn&&W.jsx(Av,{size:"icon",variant:"ghost","aria-label":"Minimize widget",onClick:Lt.minimize,className:"ringg_ai-absolute !ringg_ai-z-[9999] ringg_ai-top-2.5 ringg_ai-right-12 !ringg_ai-rounded-full ringg_ai-text-gray-500 hover:ringg_ai-text-gray-700",children:W.jsx(iW,{size:20})}),W.jsx(Av,{size:"icon",variant:"ghost","aria-label":bn?"End call":"Close widget",onClick:()=>bn?He(!0):Lt.showFeedback?Be():Lt.minimize(),className:"ringg_ai-absolute !ringg_ai-z-[9999] ringg_ai-top-2.5 ringg_ai-right-2.5 !ringg_ai-rounded-full ringg_ai-text-gray-500 hover:ringg_ai-text-gray-700",children:W.jsx(lW,{size:20})}),W.jsx(UY,{open:ve,onOpenChange:He,containerRef:bt,children:W.jsxs(FY,{children:[W.jsxs(jY,{children:[W.jsxs(VY,{children:["Are you sure you want to end ",ke==="text"?"chat":"call","?"]}),W.jsx(zY,{children:"Your current conversation will be closed and cannot be accessed later."})]}),W.jsxs(BY,{children:[W.jsx(Av,{variant:"outline",onClick:()=>He(!1),style:{borderRadius:ne,borderColor:N.borderColor,backgroundColor:N.surfaceColor,color:N.textColor},children:"Cancel"}),W.jsxs(Av,{onClick:Ft,style:{borderRadius:ne,backgroundColor:N.primaryColor,color:N.primaryTextColor},children:["End ",ke==="text"?"Chat":"Call"]})]})]})}),Lt.showFeedback?W.jsx($Y,{callMode:ke,isSubmitting:Je,feedbackScreenConfig:U,onSubmit:Kt,onSkip:Be}):W.jsxs("div",{className:"ringg_ai-flex ringg_ai-h-full ringg_ai-flex-col",children:[W.jsxs("div",{className:xr("ringg_ai-relative ringg_ai-p-5 ringg_ai-h-full ringg_ai-mb-2 ringg_ai-flex ringg_ai-gap-5 ringg_ai-flex-col",!bn&&"ringg_ai-mt-2"),children:[W.jsx(qY,{isCalling:bn,isLoading:Je,title:l,description:c,logoUrl:R,logoStyles:M}),Ce.length===0&&bn&&W.jsx("div",{className:"ringg_ai-mt-20 ringg_ai-h-full"}),Ce.length>0&&bn&&W.jsx("div",{"data-scrollable":"true",ref:ht,className:"ringg_ai-mt-20 ringg_ai-h-full ringg_ai-overflow-y-auto ringg_ai-flex ringg_ai-flex-col",children:W.jsx("div",{className:"ringg_ai-mt-auto md:ringg_ai-mt-0 ringg_ai-flex ringg_ai-flex-col ringg_ai-gap-2.5",children:Ce.sort((tt,Me)=>tt.timestamp-Me.timestamp).map((tt,Me)=>tt.componentType&&tt.componentData?W.jsx(nK,{initialComponent:tt.componentData,onApiCall:un,onComplete:()=>At(tt.componentData.component_id),onSendResponse:ln},`flow_${tt.componentData.component_id}_${Me}`):W.jsx(Dte,{itemIndex:Me,message:tt},`${tt.timestamp}__${Me}`))})}),W.jsx(IY,{buttonConfig:v,callMode:ke,isCalling:bn,onCallEnd:Ft}),z.hasError&&W.jsx("div",{className:"ringg_ai-text-center ringg_ai-text-sm ringg_ai-text-red-500 -ringg_ai-mt-3 -ringg_ai-mb-2",children:z.message}),Nr==="disconnected"&&W.jsx(GW,{callMode:ke,buttonConfig:v,isCalling:bn,isLoading:Je,onCallTrigger:vt}),!bn&&W.jsx("p",{className:"ringg_ai-text-xs ringg_ai-text-center",style:{color:N.mutedTextColor},children:A?Vte(A.text,A.links):W.jsxs(W.Fragment,{children:["By starting call you agree to ",W.jsx("a",{target:"_blank",rel:"noopener noreferrer",className:"hover:ringg_ai-underline",style:{color:N.primaryColor},href:"https://www.ringg.ai/privacy",children:"Privacy policy"})," & ",W.jsx("a",{target:"_blank",rel:"noopener noreferrer",className:"hover:ringg_ai-underline",style:{color:N.primaryColor},href:"https://www.ringg.ai/terms",children:"T&C"})]})})]}),!bn&&!T&&W.jsx(Ate,{tabs:XG,activeTab:ke,onTabChange:tt=>Ge(tt)})]})]},"chat-widget")]}),W.jsx(vB,{}),!1]})},Bte=({config:t})=>{const[e]=G.useState(()=>new Gh({dynacast:!0,adaptiveStream:!0}));return W.jsx(XT.Provider,{value:e,children:W.jsx(zte,{config:t,room:e})})};{const t="ringg_ai_container";(function(e,n){function r(a){let s=n.getElementById(t);s||(s=n.createElement("div"),s.id=t,n.body.appendChild(s)),yg.createRoot(s).render(W.jsx(ir.StrictMode,{children:W.jsx(Bte,{config:a})}))}e.loadAgent=r})(window,document)}});
425
+ `))}function h(T,E,R,M){const A=R.enter("tableCell"),U=R.enter("phrasing"),V=R.containerPhrasing(T,{...M,before:s,after:s});return U(),A(),V}function p(T,E){return ree(T,{align:E,alignDelimiters:r,padding:n,stringLength:a})}function v(T,E,R){const M=T.children;let A=-1;const U=[],V=E.enter("table");for(;++A<M.length;)U[A]=b(M[A],E,R);return V(),U}function b(T,E,R){const M=T.children;let A=-1;const U=[],V=E.enter("tableRow");for(;++A<M.length;)U[A]=h(M[A],T,E,R);return V(),U}function k(T,E,R){let M=K5.inlineCode(T,E,R);return R.stack.includes("tableCell")&&(M=M.replace(/\|/g,"\\$&")),M}}function $ee(){return{exit:{taskListCheckValueChecked:Q5,taskListCheckValueUnchecked:Q5,paragraph:Wee}}}function qee(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:Gee}}}function Q5(t){const e=this.stack[this.stack.length-2];e.type,e.checked=t.type==="taskListCheckValueChecked"}function Wee(t){const e=this.stack[this.stack.length-2];if(e&&e.type==="listItem"&&typeof e.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const a=e.children;let s=-1,l;for(;++s<a.length;){const c=a[s];if(c.type==="paragraph"){l=c;break}}l===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(t)}function Gee(t,e,n,r){const a=t.children[0],s=typeof t.checked=="boolean"&&a&&a.type==="paragraph",l="["+(t.checked?"x":" ")+"] ",c=n.createTracker(r);s&&c.move(l);let h=K5.listItem(t,e,n,{...r,...c.current()});return s&&(h=h.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,p)),h;function p(v){return v+l}}function Yee(){return[wJ(),UJ(),QJ(),Uee(),$ee()]}function Kee(t){return{extensions:[_J(),FJ(),XJ(),Hee(t),qee()]}}const Zee={tokenize:nte,partial:!0},X5={tokenize:rte,partial:!0},J5={tokenize:ite,partial:!0},eU={tokenize:ate,partial:!0},Qee={tokenize:ote,partial:!0},tU={name:"wwwAutolink",tokenize:ete,previous:rU},nU={name:"protocolAutolink",tokenize:tte,previous:iU},Cu={name:"emailAutolink",tokenize:Jee,previous:aU},kl={};function Xee(){return{text:kl}}let mf=48;for(;mf<123;)kl[mf]=Cu,mf++,mf===58?mf=65:mf===91&&(mf=97);kl[43]=Cu,kl[45]=Cu,kl[46]=Cu,kl[95]=Cu,kl[72]=[Cu,nU],kl[104]=[Cu,nU],kl[87]=[Cu,tU],kl[119]=[Cu,tU];function Jee(t,e,n){const r=this;let a,s;return l;function l(b){return!__(b)||!aU.call(r,r.previous)||E_(r.events)?n(b):(t.enter("literalAutolink"),t.enter("literalAutolinkEmail"),c(b))}function c(b){return __(b)?(t.consume(b),c):b===64?(t.consume(b),h):n(b)}function h(b){return b===46?t.check(Qee,v,p)(b):b===45||b===95||Sa(b)?(s=!0,t.consume(b),h):v(b)}function p(b){return t.consume(b),a=!0,h}function v(b){return s&&a&&za(r.previous)?(t.exit("literalAutolinkEmail"),t.exit("literalAutolink"),e(b)):n(b)}}function ete(t,e,n){const r=this;return a;function a(l){return l!==87&&l!==119||!rU.call(r,r.previous)||E_(r.events)?n(l):(t.enter("literalAutolink"),t.enter("literalAutolinkWww"),t.check(Zee,t.attempt(X5,t.attempt(J5,s),n),n)(l))}function s(l){return t.exit("literalAutolinkWww"),t.exit("literalAutolink"),e(l)}}function tte(t,e,n){const r=this;let a="",s=!1;return l;function l(b){return(b===72||b===104)&&iU.call(r,r.previous)&&!E_(r.events)?(t.enter("literalAutolink"),t.enter("literalAutolinkHttp"),a+=String.fromCodePoint(b),t.consume(b),c):n(b)}function c(b){if(za(b)&&a.length<5)return a+=String.fromCodePoint(b),t.consume(b),c;if(b===58){const k=a.toLowerCase();if(k==="http"||k==="https")return t.consume(b),h}return n(b)}function h(b){return b===47?(t.consume(b),s?p:(s=!0,h)):n(b)}function p(b){return b===null||fS(b)||Sr(b)||pf(b)||hS(b)?n(b):t.attempt(X5,t.attempt(J5,v),n)(b)}function v(b){return t.exit("literalAutolinkHttp"),t.exit("literalAutolink"),e(b)}}function nte(t,e,n){let r=0;return a;function a(l){return(l===87||l===119)&&r<3?(r++,t.consume(l),a):l===46&&r===3?(t.consume(l),s):n(l)}function s(l){return l===null?n(l):e(l)}}function rte(t,e,n){let r,a,s;return l;function l(p){return p===46||p===95?t.check(eU,h,c)(p):p===null||Sr(p)||pf(p)||p!==45&&hS(p)?h(p):(s=!0,t.consume(p),l)}function c(p){return p===95?r=!0:(a=r,r=void 0),t.consume(p),l}function h(p){return a||r||!s?n(p):e(p)}}function ite(t,e){let n=0,r=0;return a;function a(l){return l===40?(n++,t.consume(l),a):l===41&&r<n?s(l):l===33||l===34||l===38||l===39||l===41||l===42||l===44||l===46||l===58||l===59||l===60||l===63||l===93||l===95||l===126?t.check(eU,e,s)(l):l===null||Sr(l)||pf(l)?e(l):(t.consume(l),a)}function s(l){return l===41&&r++,t.consume(l),a}}function ate(t,e,n){return r;function r(c){return c===33||c===34||c===39||c===41||c===42||c===44||c===46||c===58||c===59||c===63||c===95||c===126?(t.consume(c),r):c===38?(t.consume(c),s):c===93?(t.consume(c),a):c===60||c===null||Sr(c)||pf(c)?e(c):n(c)}function a(c){return c===null||c===40||c===91||Sr(c)||pf(c)?e(c):r(c)}function s(c){return za(c)?l(c):n(c)}function l(c){return c===59?(t.consume(c),r):za(c)?(t.consume(c),l):n(c)}}function ote(t,e,n){return r;function r(s){return t.consume(s),a}function a(s){return Sa(s)?n(s):e(s)}}function rU(t){return t===null||t===40||t===42||t===95||t===91||t===93||t===126||Sr(t)}function iU(t){return!za(t)}function aU(t){return!(t===47||__(t))}function __(t){return t===43||t===45||t===46||t===95||Sa(t)}function E_(t){let e=t.length,n=!1;for(;e--;){const r=t[e][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return t.length>0&&!n&&(t[t.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const ste={tokenize:mte,partial:!0};function lte(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:fte,continuation:{tokenize:hte},exit:pte}},text:{91:{name:"gfmFootnoteCall",tokenize:dte},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:ute,resolveTo:cte}}}}function ute(t,e,n){const r=this;let a=r.events.length;const s=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let l;for(;a--;){const h=r.events[a][1];if(h.type==="labelImage"){l=h;break}if(h.type==="gfmFootnoteCall"||h.type==="labelLink"||h.type==="label"||h.type==="image"||h.type==="link")break}return c;function c(h){if(!l||!l._balanced)return n(h);const p=Ns(r.sliceSerialize({start:l.end,end:r.now()}));return p.codePointAt(0)!==94||!s.includes(p.slice(1))?n(h):(t.enter("gfmFootnoteCallLabelMarker"),t.consume(h),t.exit("gfmFootnoteCallLabelMarker"),e(h))}}function cte(t,e){let n=t.length;for(;n--;)if(t[n][1].type==="labelImage"&&t[n][0]==="enter"){t[n][1];break}t[n+1][1].type="data",t[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},t[n+3][1].start),end:Object.assign({},t[t.length-1][1].end)},a={type:"gfmFootnoteCallMarker",start:Object.assign({},t[n+3][1].end),end:Object.assign({},t[n+3][1].end)};a.end.column++,a.end.offset++,a.end._bufferIndex++;const s={type:"gfmFootnoteCallString",start:Object.assign({},a.end),end:Object.assign({},t[t.length-1][1].start)},l={type:"chunkString",contentType:"string",start:Object.assign({},s.start),end:Object.assign({},s.end)},c=[t[n+1],t[n+2],["enter",r,e],t[n+3],t[n+4],["enter",a,e],["exit",a,e],["enter",s,e],["enter",l,e],["exit",l,e],["exit",s,e],t[t.length-2],t[t.length-1],["exit",r,e]];return t.splice(n,t.length-n+1,...c),t}function dte(t,e,n){const r=this,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s=0,l;return c;function c(b){return t.enter("gfmFootnoteCall"),t.enter("gfmFootnoteCallLabelMarker"),t.consume(b),t.exit("gfmFootnoteCallLabelMarker"),h}function h(b){return b!==94?n(b):(t.enter("gfmFootnoteCallMarker"),t.consume(b),t.exit("gfmFootnoteCallMarker"),t.enter("gfmFootnoteCallString"),t.enter("chunkString").contentType="string",p)}function p(b){if(s>999||b===93&&!l||b===null||b===91||Sr(b))return n(b);if(b===93){t.exit("chunkString");const k=t.exit("gfmFootnoteCallString");return a.includes(Ns(r.sliceSerialize(k)))?(t.enter("gfmFootnoteCallLabelMarker"),t.consume(b),t.exit("gfmFootnoteCallLabelMarker"),t.exit("gfmFootnoteCall"),e):n(b)}return Sr(b)||(l=!0),s++,t.consume(b),b===92?v:p}function v(b){return b===91||b===92||b===93?(t.consume(b),s++,p):p(b)}}function fte(t,e,n){const r=this,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s,l=0,c;return h;function h(E){return t.enter("gfmFootnoteDefinition")._container=!0,t.enter("gfmFootnoteDefinitionLabel"),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(E),t.exit("gfmFootnoteDefinitionLabelMarker"),p}function p(E){return E===94?(t.enter("gfmFootnoteDefinitionMarker"),t.consume(E),t.exit("gfmFootnoteDefinitionMarker"),t.enter("gfmFootnoteDefinitionLabelString"),t.enter("chunkString").contentType="string",v):n(E)}function v(E){if(l>999||E===93&&!c||E===null||E===91||Sr(E))return n(E);if(E===93){t.exit("chunkString");const R=t.exit("gfmFootnoteDefinitionLabelString");return s=Ns(r.sliceSerialize(R)),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(E),t.exit("gfmFootnoteDefinitionLabelMarker"),t.exit("gfmFootnoteDefinitionLabel"),k}return Sr(E)||(c=!0),l++,t.consume(E),E===92?b:v}function b(E){return E===91||E===92||E===93?(t.consume(E),l++,v):v(E)}function k(E){return E===58?(t.enter("definitionMarker"),t.consume(E),t.exit("definitionMarker"),a.includes(s)||a.push(s),Vn(t,T,"gfmFootnoteDefinitionWhitespace")):n(E)}function T(E){return e(E)}}function hte(t,e,n){return t.check(wv,e,t.attempt(ste,e,n))}function pte(t){t.exit("gfmFootnoteDefinition")}function mte(t,e,n){const r=this;return Vn(t,a,"gfmFootnoteDefinitionIndent",5);function a(s){const l=r.events[r.events.length-1];return l&&l[1].type==="gfmFootnoteDefinitionIndent"&&l[2].sliceSerialize(l[1],!0).length===4?e(s):n(s)}}function gte(t){let n=(t||{}).singleTilde;const r={name:"strikethrough",tokenize:s,resolveAll:a};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function a(l,c){let h=-1;for(;++h<l.length;)if(l[h][0]==="enter"&&l[h][1].type==="strikethroughSequenceTemporary"&&l[h][1]._close){let p=h;for(;p--;)if(l[p][0]==="exit"&&l[p][1].type==="strikethroughSequenceTemporary"&&l[p][1]._open&&l[h][1].end.offset-l[h][1].start.offset===l[p][1].end.offset-l[p][1].start.offset){l[h][1].type="strikethroughSequence",l[p][1].type="strikethroughSequence";const v={type:"strikethrough",start:Object.assign({},l[p][1].start),end:Object.assign({},l[h][1].end)},b={type:"strikethroughText",start:Object.assign({},l[p][1].end),end:Object.assign({},l[h][1].start)},k=[["enter",v,c],["enter",l[p][1],c],["exit",l[p][1],c],["enter",b,c]],T=c.parser.constructs.insideSpan.null;T&&Mo(k,k.length,0,pS(T,l.slice(p+1,h),c)),Mo(k,k.length,0,[["exit",b,c],["enter",l[h][1],c],["exit",l[h][1],c],["exit",v,c]]),Mo(l,p-1,h-p+3,k),h=p+k.length-2;break}}for(h=-1;++h<l.length;)l[h][1].type==="strikethroughSequenceTemporary"&&(l[h][1].type="data");return l}function s(l,c,h){const p=this.previous,v=this.events;let b=0;return k;function k(E){return p===126&&v[v.length-1][1].type!=="characterEscape"?h(E):(l.enter("strikethroughSequenceTemporary"),T(E))}function T(E){const R=Cp(p);if(E===126)return b>1?h(E):(l.consume(E),b++,T);if(b<2&&!n)return h(E);const M=l.exit("strikethroughSequenceTemporary"),A=Cp(E);return M._open=!A||A===2&&!!R,M._close=!R||R===2&&!!A,c(E)}}}class vte{constructor(){this.map=[]}add(e,n,r){yte(this,e,n,r)}consume(e){if(this.map.sort(function(s,l){return s[0]-l[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(e.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),e.length=this.map[n][0];r.push([...e]),e.length=0;let a=r.pop();for(;a;)e.push(...a),a=r.pop();this.map.length=0}}function yte(t,e,n,r){let a=0;if(!(n===0&&r.length===0)){for(;a<t.map.length;){if(t.map[a][0]===e){t.map[a][1]+=n,t.map[a][2].push(...r);return}a+=1}t.map.push([e,n,r])}}function bte(t,e){let n=!1;const r=[];for(;e<t.length;){const a=t[e];if(n){if(a[0]==="enter")a[1].type==="tableContent"&&r.push(t[e+1][1].type==="tableDelimiterMarker"?"left":"none");else if(a[1].type==="tableContent"){if(t[e-1][1].type==="tableDelimiterMarker"){const s=r.length-1;r[s]=r[s]==="left"?"center":"right"}}else if(a[1].type==="tableDelimiterRow")break}else a[0]==="enter"&&a[1].type==="tableDelimiterRow"&&(n=!0);e+=1}return r}function Ste(){return{flow:{null:{name:"table",tokenize:Cte,resolveAll:kte}}}}function Cte(t,e,n){const r=this;let a=0,s=0,l;return c;function c($){let oe=r.events.length-1;for(;oe>-1;){const ke=r.events[oe][1].type;if(ke==="lineEnding"||ke==="linePrefix")oe--;else break}const J=oe>-1?r.events[oe][1].type:null,xe=J==="tableHead"||J==="tableRow"?N:h;return xe===N&&r.parser.lazy[r.now().line]?n($):xe($)}function h($){return t.enter("tableHead"),t.enter("tableRow"),p($)}function p($){return $===124||(l=!0,s+=1),v($)}function v($){return $===null?n($):Bt($)?s>1?(s=0,r.interrupt=!0,t.exit("tableRow"),t.enter("lineEnding"),t.consume($),t.exit("lineEnding"),T):n($):Pn($)?Vn(t,v,"whitespace")($):(s+=1,l&&(l=!1,a+=1),$===124?(t.enter("tableCellDivider"),t.consume($),t.exit("tableCellDivider"),l=!0,v):(t.enter("data"),b($)))}function b($){return $===null||$===124||Sr($)?(t.exit("data"),v($)):(t.consume($),$===92?k:b)}function k($){return $===92||$===124?(t.consume($),b):b($)}function T($){return r.interrupt=!1,r.parser.lazy[r.now().line]?n($):(t.enter("tableDelimiterRow"),l=!1,Pn($)?Vn(t,E,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)($):E($))}function E($){return $===45||$===58?M($):$===124?(l=!0,t.enter("tableCellDivider"),t.consume($),t.exit("tableCellDivider"),R):I($)}function R($){return Pn($)?Vn(t,M,"whitespace")($):M($)}function M($){return $===58?(s+=1,l=!0,t.enter("tableDelimiterMarker"),t.consume($),t.exit("tableDelimiterMarker"),A):$===45?(s+=1,A($)):$===null||Bt($)?j($):I($)}function A($){return $===45?(t.enter("tableDelimiterFiller"),U($)):I($)}function U($){return $===45?(t.consume($),U):$===58?(l=!0,t.exit("tableDelimiterFiller"),t.enter("tableDelimiterMarker"),t.consume($),t.exit("tableDelimiterMarker"),V):(t.exit("tableDelimiterFiller"),V($))}function V($){return Pn($)?Vn(t,j,"whitespace")($):j($)}function j($){return $===124?E($):$===null||Bt($)?!l||a!==s?I($):(t.exit("tableDelimiterRow"),t.exit("tableHead"),e($)):I($)}function I($){return n($)}function N($){return t.enter("tableRow"),ne($)}function ne($){return $===124?(t.enter("tableCellDivider"),t.consume($),t.exit("tableCellDivider"),ne):$===null||Bt($)?(t.exit("tableRow"),e($)):Pn($)?Vn(t,ne,"whitespace")($):(t.enter("data"),X($))}function X($){return $===null||$===124||Sr($)?(t.exit("data"),ne($)):(t.consume($),$===92?se:X)}function se($){return $===92||$===124?(t.consume($),X):X($)}}function kte(t,e){let n=-1,r=!0,a=0,s=[0,0,0,0],l=[0,0,0,0],c=!1,h=0,p,v,b;const k=new vte;for(;++n<t.length;){const T=t[n],E=T[1];T[0]==="enter"?E.type==="tableHead"?(c=!1,h!==0&&(oU(k,e,h,p,v),v=void 0,h=0),p={type:"table",start:Object.assign({},E.start),end:Object.assign({},E.end)},k.add(n,0,[["enter",p,e]])):E.type==="tableRow"||E.type==="tableDelimiterRow"?(r=!0,b=void 0,s=[0,0,0,0],l=[0,n+1,0,0],c&&(c=!1,v={type:"tableBody",start:Object.assign({},E.start),end:Object.assign({},E.end)},k.add(n,0,[["enter",v,e]])),a=E.type==="tableDelimiterRow"?2:v?3:1):a&&(E.type==="data"||E.type==="tableDelimiterMarker"||E.type==="tableDelimiterFiller")?(r=!1,l[2]===0&&(s[1]!==0&&(l[0]=l[1],b=ES(k,e,s,a,void 0,b),s=[0,0,0,0]),l[2]=n)):E.type==="tableCellDivider"&&(r?r=!1:(s[1]!==0&&(l[0]=l[1],b=ES(k,e,s,a,void 0,b)),s=l,l=[s[1],n,0,0])):E.type==="tableHead"?(c=!0,h=n):E.type==="tableRow"||E.type==="tableDelimiterRow"?(h=n,s[1]!==0?(l[0]=l[1],b=ES(k,e,s,a,n,b)):l[1]!==0&&(b=ES(k,e,l,a,n,b)),a=0):a&&(E.type==="data"||E.type==="tableDelimiterMarker"||E.type==="tableDelimiterFiller")&&(l[3]=n)}for(h!==0&&oU(k,e,h,p,v),k.consume(e.events),n=-1;++n<e.events.length;){const T=e.events[n];T[0]==="enter"&&T[1].type==="table"&&(T[1]._align=bte(e.events,n))}return t}function ES(t,e,n,r,a,s){const l=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",c="tableContent";n[0]!==0&&(s.end=Object.assign({},Tp(e.events,n[0])),t.add(n[0],0,[["exit",s,e]]));const h=Tp(e.events,n[1]);if(s={type:l,start:Object.assign({},h),end:Object.assign({},h)},t.add(n[1],0,[["enter",s,e]]),n[2]!==0){const p=Tp(e.events,n[2]),v=Tp(e.events,n[3]),b={type:c,start:Object.assign({},p),end:Object.assign({},v)};if(t.add(n[2],0,[["enter",b,e]]),r!==2){const k=e.events[n[2]],T=e.events[n[3]];if(k[1].end=Object.assign({},T[1].end),k[1].type="chunkText",k[1].contentType="text",n[3]>n[2]+1){const E=n[2]+1,R=n[3]-n[2]-1;t.add(E,R,[])}}t.add(n[3]+1,0,[["exit",b,e]])}return a!==void 0&&(s.end=Object.assign({},Tp(e.events,a)),t.add(a,0,[["exit",s,e]]),s=void 0),s}function oU(t,e,n,r,a){const s=[],l=Tp(e.events,n);a&&(a.end=Object.assign({},l),s.push(["exit",a,e])),r.end=Object.assign({},l),s.push(["exit",r,e]),t.add(n+1,0,s)}function Tp(t,e){const n=t[e],r=n[0]==="enter"?"start":"end";return n[1][r]}const Tte={name:"tasklistCheck",tokenize:wte};function xte(){return{text:{91:Tte}}}function wte(t,e,n){const r=this;return a;function a(h){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(h):(t.enter("taskListCheck"),t.enter("taskListCheckMarker"),t.consume(h),t.exit("taskListCheckMarker"),s)}function s(h){return Sr(h)?(t.enter("taskListCheckValueUnchecked"),t.consume(h),t.exit("taskListCheckValueUnchecked"),l):h===88||h===120?(t.enter("taskListCheckValueChecked"),t.consume(h),t.exit("taskListCheckValueChecked"),l):n(h)}function l(h){return h===93?(t.enter("taskListCheckMarker"),t.consume(h),t.exit("taskListCheckMarker"),t.exit("taskListCheck"),c):n(h)}function c(h){return Bt(h)?e(h):Pn(h)?t.check({tokenize:_te},e,n)(h):n(h)}}function _te(t,e,n){return Vn(t,r,"whitespace");function r(a){return a===null?n(a):e(a)}}function Ete(t){return I4([Xee(),lte(),gte(t),Ste(),xte()])}const Rte={};function Pte(t){const e=this,n=t||Rte,r=e.data(),a=r.micromarkExtensions||(r.micromarkExtensions=[]),s=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),l=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);a.push(Ete(n)),s.push(Yee()),l.push(Kee(n))}const Dte=({itemIndex:t,message:e})=>{const n=Zo(),r=WW(e.name),a=r?n.textColor:n.primaryTextColor;return W.jsx("div",{className:xr("ringg_ai-flex ringg_ai-flex-col ringg_ai-items-start ringg_ai-gap-1 ringg_ai-justify-start",r?"ringg_ai-flex-row":"ringg_ai-flex-row-reverse"),children:W.jsx("div",{className:xr("ringg_ai-flex ringg_ai-items-center ringg_ai-justify-start ringg_ai-gap-2 ringg_ai-px-4 ringg_ai-py-2 ringg_ai-rounded-xl ringg_ai-max-w-[90%]",r?"ringg_ai-mr-auto ringg_ai-text-left ringg_ai-rounded-bl-none":"ringg_ai-ml-auto ringg_ai-text-right ringg_ai-rounded-br-none"),style:{backgroundColor:r?n.surfaceColor:n.primaryColor,color:a},children:W.jsxs("div",{className:"ringg_ai-flex ringg_ai-flex-col ringg_ai-gap-2.5 ringg_ai-w-full ringg_ai-overflow-x-auto",children:[W.jsx("div",{className:"ringg_ai-prose ringg_ai-prose-sm ringg_ai-max-w-none [&_p]:ringg_ai-text-sm [&_li]:ringg_ai-text-sm [&_table]:ringg_ai-w-max",style:{"--tw-prose-body":a,"--tw-prose-headings":a,"--tw-prose-bold":a,"--tw-prose-counters":a,"--tw-prose-bullets":a,"--tw-prose-quotes":a,"--tw-prose-code":a,"--tw-prose-th-borders":n.borderColor,"--tw-prose-td-borders":n.borderColor,color:a},children:W.jsx(mJ,{remarkPlugins:[Pte],children:e.message})}),(e==null?void 0:e.sourceUrl)&&W.jsxs("a",{href:e.sourceUrl,target:"_blank",rel:"noopener noreferrer",className:"ringg_ai-text-sm ringg_ai-break-all ringg_ai-w-fit ringg_ai-hover:underline",style:{color:r?n.primaryColor:n.primaryTextColor},children:["Source: ",e.sourceUrl]})]})},`${e.name}__${t}`)},`${e.timestamp}__${t}`)};function Ate({tabs:t=[],activeTab:e="voice-call",onTabChange:n}){const r=Zo(),[a,s]=G.useState(e),l=c=>{s(c),n==null||n(c)};return W.jsx("div",{className:"ringg_ai-w-full ringg_ai-border-t",style:{backgroundColor:r.backgroundColor,borderColor:r.borderColor},children:W.jsx("div",{className:"ringg_ai-flex ringg_ai-items-center ringg_ai-px-0",children:t.map(c=>{const h=c.icon,p=a===c.id,v=p?r.primaryColor:r.mutedTextColor;return W.jsxs("button",{onClick:()=>l(c.id),className:xr("ringg_ai-flex ringg_ai-flex-col ringg_ai-items-center ringg_ai-gap-1 ringg_ai-border-t-2 ringg_ai-py-3 ringg_ai-transition-all ringg_ai-duration-200 ringg_ai-flex-1"),style:{borderTopColor:p?r.primaryColor:"transparent"},children:[W.jsx(h,{className:"ringg_ai-w-5 ringg_ai-h-5 ringg_ai-transition-colors",fill:v,style:{color:v}}),W.jsx("span",{className:"ringg_ai-text-xs ringg_ai-font-medium ringg_ai-transition-colors",style:{color:v},children:c.label})]},c.id)})})})}const Ote=Y3("ringg_ai-inline-flex ringg_ai-items-center ringg_ai-justify-center ringg_ai-gap-2 ringg_ai-whitespace-nowrap ringg_ai-rounded-md ringg_ai-text-sm ringg_ai-font-medium ringg_ai-ring-offset-background ringg_ai-transition-colors focus-visible:ringg_ai-outline-none focus-visible:ringg_ai-ring-2 focus-visible:ringg_ai-ring-ring focus-visible:ringg_ai-ring-offset-2 disabled:ringg_ai-pointer-events-none disabled:ringg_ai-opacity-50 [&_svg]:ringg_ai-pointer-events-none [&_svg]:ringg_ai-size-4 [&_svg]:ringg_ai-shrink-0",{variants:{variant:{default:"ringg_ai-bg-primary ringg_ai-text-primary-foreground ringg_ai-shadow hover:ringg_ai-bg-primary/90",destructive:"ringg_ai-bg-destructive ringg_ai-text-destructive-foreground ringg_ai-shadow-sm hover:ringg_ai-bg-destructive/90",outline:"ringg_ai-border ringg_ai-border-input ringg_ai-bg-background ringg_ai-shadow-sm hover:ringg_ai-bg-accent hover:ringg_ai-text-accent-foreground",secondary:"ringg_ai-bg-secondary ringg_ai-text-secondary-foreground ringg_ai-shadow-sm hover:ringg_ai-bg-secondary/80",ghost:"hover:ringg_ai-bg-accent hover:ringg_ai-text-accent-foreground",link:"ringg_ai-text-primary ringg_ai-underline-offset-4 hover:ringg_ai-underline"},size:{default:"ringg_ai-h-9 ringg_ai-px-4 ringg_ai-py-2",sm:"ringg_ai-h-8 ringg_ai-rounded-md ringg_ai-px-3 ringg_ai-text-xs",lg:"ringg_ai-h-10 ringg_ai-rounded-md ringg_ai-px-8",icon:"ringg_ai-h-9 ringg_ai-w-9"}},defaultVariants:{variant:"default",size:"default"}}),Av=G.forwardRef(({className:t,variant:e,size:n,asChild:r=!1,...a},s)=>{const l=r?uS:"button";return W.jsx(l,{className:xr(Ote({variant:e,size:n,className:t})),ref:s,...a})});Av.displayName="Button";function Bc(t,e){typeof window<"u"&&window.dispatchEvent(new CustomEvent(t,{detail:e}))}function Mte({callMode:t}){const[e,n]=G.useState(!1),[r,a]=G.useState(!1),[s,l]=G.useState(null),c=G.useRef(!1),h=G.useRef(t);h.current=t;const p=G.useCallback(()=>{c.current||(c.current=!0,n(!0),Bc("ringg:widget_status",{status:"maximised",mode:h.current}))},[]),v=G.useCallback(()=>{c.current=!1,n(!1),Bc("ringg:widget_status",{status:"minimised",mode:h.current})},[]),b=G.useCallback(()=>{a(!1),l(null),v()},[v]),k=G.useCallback(()=>{c.current?v():p()},[p,v]);return G.useMemo(()=>({isOpen:e,showFeedback:r,currentCallId:s,setShowFeedback:a,setCurrentCallId:l,open:p,minimize:v,close:b,toggle:k}),[e,r,s,p,v,b,k])}function Lte({room:t,onError:e}){const[n,r]=G.useState("unknown"),a=G.useRef(e);a.current=e;const s=G.useCallback(async()=>{var h;try{if((h=navigator.permissions)!=null&&h.query){const p=await navigator.permissions.query({name:"microphone"});r(p.state),p.onchange=()=>{r(p.state)}}else try{await navigator.mediaDevices.getUserMedia({audio:!0}),r("granted")}catch{r("denied")}}catch(p){console.error("Error checking microphone permission:",p),r("unknown")}},[]),l=G.useCallback(async()=>{var h;try{const p=await navigator.mediaDevices.getUserMedia({audio:!0});return r("granted"),p.getTracks().forEach(v=>v.stop()),!0}catch(p){return console.error("Error requesting microphone permission:",p),r("denied"),(h=a.current)==null||h.call(a,"Microphone access was denied. Please enable it in your browser settings."),!1}},[]);G.useEffect(()=>{s();const h=()=>{var p;(p=a.current)==null||p.call(a,"Error acquiring microphone permission. Please make sure you grant the necessary permissions in your browser and reload the tab"),r("denied")};return t.on(Ee.MediaDevicesError,h),()=>{t.off(Ee.MediaDevicesError,h)}},[t,s]);const c=n==="granted";return G.useMemo(()=>({state:n,isGranted:c,check:s,request:l}),[n,c,s,l])}function Nte({containerRef:t,enabled:e}){G.useEffect(()=>{const n=t.current;if(!n||!e)return;const r=c=>{const h=n.querySelector('[data-scrollable="true"]');if(!h){c.preventDefault();return}const{scrollTop:p,scrollHeight:v,clientHeight:b}=h,k=p===0&&c.deltaY<0,T=p+b>=v-1&&c.deltaY>0;(k||T)&&c.preventDefault()};let a=0;const s=c=>{a=c.touches[0].clientY},l=c=>{const h=n.querySelector('[data-scrollable="true"]'),p=c.touches[0].clientY,v=a-p;if(!h){c.preventDefault();return}const{scrollTop:b,scrollHeight:k,clientHeight:T}=h,E=b===0&&v<0,R=b+T>=k-1&&v>0;(E||R)&&c.preventDefault()};return n.addEventListener("wheel",r,{passive:!1}),n.addEventListener("touchstart",s,{passive:!0}),n.addEventListener("touchmove",l,{passive:!1}),()=>{n.removeEventListener("wheel",r),n.removeEventListener("touchstart",s),n.removeEventListener("touchmove",l)}},[e])}const xp={mode:"prod",title:"Ringg AI Support",description:"Ringg AI offers 24/7 voice support to handle your business calls efficiently and professionally",defaultTab:"audio",hideTabSelector:!1,notificationTuneUrl:"https://assets.ringg.ai/audios/misc/widget_notification.mp3"};function R_(t){switch(t){case"dev":return"https://calling-dev.ringg.ai/ca/api/v0";case"stage":return"https://stage-api2.desivocal.com/ca/api/v0";default:return"https://prod-api.ringg.ai/ca/api/v0"}}function Ite(t){switch(t){case"dev":return"wss://ringg-ai-dev-92tubwpz.livekit.cloud";case"stage":return"wss://ringg-ai-ujrjmhgy.livekit.cloud";default:return"wss://ringg-ai-prod-r0vhjzhs.livekit.cloud"}}function Xse(t){return t}const sU={center:{top:0,left:0,right:0,bottom:0,margin:"auto"},"top-left":{top:"2%",left:"2%"},"top-right":{top:"2%",right:"2%"},"bottom-left":{bottom:"2%",left:"2%"},"bottom-right":{bottom:"2%",right:"2%"},"bottom-center":{bottom:"2%",left:"50%"}};function Ute(t){return sU[t]??sU["bottom-right"]}function Fte(t){return t==="bottom-center"?{left:"50%"}:t==="bottom-left"?{left:"2%"}:{right:"2%"}}function RS(t){if(t!==void 0)return typeof t=="number"?`${t}px`:t}function jte(t){return t?{width:RS(t.width),height:RS(t.height),borderRadius:RS(t.borderRadius)}:{}}function Vte(t,e){if(!e)return t;let n=[t];return Object.entries(e).forEach(([r,a])=>{n=n.flatMap((s,l)=>{if(typeof s!="string")return s;const c=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),h=new RegExp(`\\b(${c})\\b`,"g");return s.split(h).map((p,v)=>p===r?W.jsx("a",{target:"_blank",rel:"noopener noreferrer",className:"ringg_ai-text-blue-500 hover:ringg_ai-underline",href:a,children:r},`${l}-${v}`):p)})}),n}const zte=({room:t,config:e})=>{var Hi,Ji,ea,co,es,ts,fo;const[n,r]=G.useState({}),a=e,{mode:s=xp.mode,title:l=xp.title,description:c=xp.description,agentId:h,variables:p,buttons:v,xApiKey:b="",defaultTab:k=xp.defaultTab,hideTabSelector:T=xp.hideTabSelector,innerWindowProps:E,logoUrl:R,logoStyles:M,legalDisclaimer:A,feedbackScreen:U,notificationTuneUrl:V=xp.notificationTuneUrl,widgetPosition:j,theme:I}=a,N=WI(I),ne=mw(N.buttonStyle),X=(j==null?void 0:j.triggerPlacement)??"fixed",se=(j==null?void 0:j.triggerAlignment)??"bottom-right",$=(j==null?void 0:j.hideTriggerOnExpand)??!0,oe=(j==null?void 0:j.widgetAlignment)??"bottom-right",J=Ute(se),xe=jte(E),[ke,Ge]=G.useState(k),[Je,je]=G.useState(!1),[ve,He]=G.useState(!1),[z,ee]=G.useState({hasError:!1,message:""}),[Ce,H]=G.useState([]),[Ct,Rt]=G.useState(new Map),ht=G.useRef(null),bt=G.useRef(null),it=G.useRef(null),xt=G.useRef(""),tn=G.useRef(),qn=G.useRef(new Set),_r=G.useRef(null),vr=G.useRef(!1),Xn=G.useRef(new Map),Nr=ex(t),bn=Nr==="connected",Lt=Mte({callMode:ke}),Z=Lte({room:t,onError:et=>ee({hasError:!0,message:et})});Nte({containerRef:bt,enabled:Lt.isOpen});const{chatMessages:le}=$M(),me=hB(),Ve=aB(),ze=HM(),Oe=tx(me.audioTrack||void 0),ut=tx({publication:Ve.microphoneTrack,source:De.Source.Microphone,participant:Ve.localParticipant}),Nt=G.useMemo(()=>ze.find(et=>{var Me;return(Me=et.identity)==null?void 0:Me.includes("agent")}),[ze]),fe=G.useCallback((et,Me)=>{vr.current=!1,console.log("%c[Conversation Started]","background: #22c55e; color: white; padding: 2px 6px; border-radius: 3px;",{mode:et,callId:Me}),Bc("ringg:conversation_status",{status:"started",mode:et,callId:Me})},[]),Re=G.useCallback((et,Me)=>{vr.current||(vr.current=!0,console.log("%c[Conversation Ended]","background: #ef4444; color: white; padding: 2px 6px; border-radius: 3px;",{mode:et,callId:Me}),Bc("ringg:conversation_status",{status:"ended",mode:et,callId:Me}))},[]),vt=G.useCallback(async et=>{if(!(et==="audio"&&!Z.isGranted&&!await Z.request())){je(!0),Ge(et);try{const Me=await fetch(`${R_(s)}/calling/webcall`,{method:"POST",body:JSON.stringify({agent_id:h,custom_args_values:p,media_type:et}),headers:{"Content-Type":"application/json","X-API-KEY":b}}),It=await Me.json();if(!Me.ok)throw new Error((It==null?void 0:It.message)||"Failed to make call");It!=null&&It.call_id&&Lt.setCurrentCallId(It.call_id),await t.connect(Ite(s),It==null?void 0:It.user_token),et==="audio"&&await t.localParticipant.setMicrophoneEnabled(!0),fe(et,It.call_id),ee({hasError:!1,message:""})}catch(Me){ee({hasError:!0,message:Me.message})}finally{je(!1)}}},[t,s,h,p,b,Z,Lt,fe]),Ft=G.useCallback(async()=>{je(!0);try{Lt.currentCallId&&Re(ke,Lt.currentCallId),H([]),Rt(new Map),qn.current=new Set,xt.current="",tn.current=void 0,t.disconnect(),He(!1),Lt.setShowFeedback(!0),Lt.open()}catch(et){ee({hasError:!0,message:"Error ending call: "+et.message})}finally{je(!1)}},[t,ke,Lt,Re]),Kt=G.useCallback(async(et,Me)=>{if(!Lt.currentCallId){Lt.close();return}je(!0);try{await fetch(`${R_(s)}/calling/${Lt.currentCallId}/feedback`,{method:"POST",body:JSON.stringify({rating:et,comment:Me}),headers:{"Content-Type":"application/json","X-API-KEY":b}}),Bc("ringg:feedback_status",{status:"submitted",callId:Lt.currentCallId,rating:et})}catch(It){console.error("Error submitting feedback:",It)}finally{je(!1),Lt.close()}},[s,b,Lt]),Be=G.useCallback(()=>{Lt.currentCallId&&Bc("ringg:feedback_status",{status:"skipped",callId:Lt.currentCallId}),Lt.close()},[Lt]),ct=G.useCallback(et=>{var It;const Me={name:"Agent",message:"",isSelf:!1,timestamp:Date.now()+Math.random(),componentType:et.component_type,componentData:et};H(Ht=>[...Ht,Me]),Bc("ringg:calendar_booking",{status:"shown",componentId:et.component_id}),(It=it.current)==null||It.play().catch(()=>{}),Lt.open()},[Lt]),At=G.useCallback(et=>{qn.current.add(et),Bc("ringg:calendar_booking",{status:"confirmed",componentId:et,message:"Flow completed"})},[]),ln=G.useCallback(async(et,Me)=>{const It=Xn.current.get(et);if(!It){console.warn(`[RPC] No pending response found for component: ${et}`);return}if(!Nt){console.warn("[RPC] No agent participant found to send response to");return}const{name:Ht,originalConfig:Sn}=It,jt="receive_dynamic_data";let Cn;if(Ht==="calendar"){const Er=Me.step_data&&Me.step_data.slot_id;Cn=(Array.isArray(Sn)?Sn:[]).find(Xe=>Xe.id===Er)||{id:Er,datetime:Me.step_data&&Me.step_data.slot_datetime}}else if(Ht==="form")Cn=Me.step_data||Me.all_data;else if(Ht==="buttons"){const Er=Me.step_data&&Me.step_data.selected_button;Cn=(Array.isArray(Sn)?Sn:[]).find(Xe=>Xe.id===Er)||{id:Er}}else Cn=Me;const er=JSON.stringify({componant_type:`receive_component_${Ht}`,component_id:et,componant_data:Cn});try{console.log(`[RPC] Sending ${jt}:`,er);const Er=await Ve.localParticipant.performRpc({destinationIdentity:Nt.identity,method:jt,payload:er});console.log(`[RPC] Response from ${jt}:`,Er),Xn.current.delete(et)}catch(Er){console.error(`[RPC] Error sending ${jt}:`,Er)}},[Nt,Ve.localParticipant]),En=G.useMemo(()=>null,[]),un=G.useCallback(async(et,Me,It)=>(await fetch(Me.startsWith("http")?Me:`${R_(s)}${Me}`,{method:et,body:JSON.stringify(It),headers:{"Content-Type":"application/json","X-API-KEY":b}})).json(),[s,b,bn,En]),Dn=G.useCallback(async et=>{try{const Me=JSON.parse(et.payload);return Array.isArray(Me.source_urls)?xt.current=Me.source_urls.join(", "):Me.source_url&&(xt.current=Me.source_url),JSON.stringify({status:"received"})}catch(Me){throw console.error("Failed to parse RPC payload:",Me),new Error("Invalid payload for send_source_urls")}},[]),Wn=G.useCallback(async et=>{try{console.log("Received dynamic data:",et.payload);const Me=JSON.parse(et.payload);return Me.component_type&&Me.component_id&&ct(Me),JSON.stringify({status:"received"})}catch(Me){throw console.error("Failed to parse component payload:",Me),new Error("Invalid component payload")}},[ct]),Jn=G.useCallback((et,Me)=>{const It=`${et}_${Date.now()}`,Ht=Me.componant_config||Me.component_config;if(et==="calendar"){const Sn=Array.isArray(Ht)?Ht:[];return{component_type:"calendar_booking",component_id:It,data:{available_slots:Sn.map(jt=>({id:jt.id,datetime:jt.datetime})),timezone:Me.timezone||"UTC",title:Me.title||"Select a time slot"},actions:{on_select:{method:"POST",endpoint:"/mock/calendar",payload:{selected_slot_id:"{slot_id}"}}}}}return et==="form"?{component_type:"form",component_id:It,data:{title:Me.title||"Form",description:Me.description,fields:Array.isArray(Ht)?Ht:[],submit_label:Me.submit_label},actions:{on_submit:{method:"POST",endpoint:"/mock/form",payload:{form_data:"{form_data}"}}}}:et==="buttons"?{component_type:"buttons",component_id:It,data:{title:Me.title,buttons:Array.isArray(Ht)?Ht:[]}}:et==="confirmation"?{component_type:"confirmation",component_id:It,data:{title:Me.title||"Confirmed",message:Me.message||"",icon:Me.icon||"success",details:Me.details}}:Me.component_type&&Me.component_id?Me:null},[]),Gn=G.useCallback(async et=>{try{const Me=JSON.parse(et.payload);console.log("[RPC] Received send_dynamic_data:",Me);const It=Me.componant_type||Me.component_type;if(!It)return console.warn("[RPC] No componant_type in payload"),JSON.stringify({status:"error",message:"No componant_type provided"});const Ht=It.replace("render_component_","");console.log(`[RPC] Routing to component: ${Ht}`);const Sn=Jn(Ht,Me);return Sn?(Xn.current.set(Sn.component_id,{name:Ht,originalConfig:Me.componant_config||Me.component_config}),ct(Sn),JSON.stringify({status:"received",component_id:Sn.component_id})):(console.warn(`[RPC] Unknown component type: ${Ht}`),JSON.stringify({status:"error",message:`Unknown component type: ${Ht}`}))}catch(Me){throw console.error("[RPC] Failed to parse send_dynamic_data payload:",Me),new Error("Invalid send_dynamic_data payload")}},[ct,Jn]);G.useEffect(()=>{_r.current=ct},[ct]);const In=G.useRef(Lt.open);return In.current=Lt.open,G.useEffect(()=>{},[]),G.useEffect(()=>{var Ht,Sn;if(!t||ke!=="audio")return;const et=new Map(Ct);me.audioTrack&&Oe.segments.forEach(jt=>{const Cn=et.get(jt.id),er=bw(jt,Cn,me.audioTrack.participant);et.set(jt.id,er),jt.text&&jt.text!==(Cn==null?void 0:Cn.message)&&(jt.final?console.log("%c[Agent Message Complete]","background: #22c55e; color: white; padding: 2px 6px; border-radius: 3px;",jt.text):console.log("%c[Agent Speaking...]","color: #22c55e;",jt.text))}),ut.segments.forEach(jt=>{const Cn=et.get(jt.id),er=bw(jt,Cn,Ve.localParticipant);et.set(jt.id,er),jt.text&&jt.text!==(Cn==null?void 0:Cn.message)&&(jt.final?console.log("%c[User Message Sent]","background: #3b82f6; color: white; padding: 2px 6px; border-radius: 3px;",jt.text):console.log("%c[User Speaking...]","color: #3b82f6;",jt.text))});const Me=Array.from(et.values()).sort((jt,Cn)=>jt.timestamp-Cn.timestamp),It=xt.current&&((Ht=Me[Me.length-1])==null?void 0:Ht.name.includes("Agent"))&&!((Sn=Me[Me.length-1])!=null&&Sn.sourceUrl)&&tn.current!==Me.length-1;if(It){tn.current=Me.length,Me[Me.length-1]={...Me[Me.length-1],sourceUrl:xt.current};const jt=Me.filter(er=>!er.isSelf).length-1,Cn=et.get(Oe.segments[jt].id);et.set(Oe.segments[jt].id,bw(Oe.segments[jt],{...Cn,sourceUrl:xt.current},me.audioTrack.participant))}H(Me),Rt(et),It||(xt.current="")},[ke,le,Oe.segments,ut.segments,me.audioTrack,Ve.localParticipant]),G.useEffect(()=>{if(!t||ke!=="text")return;const et=async(It,Ht)=>{var Sn,jt;try{const Cn=await It.readAll(),er=(Sn=Ht.identity)==null?void 0:Sn.includes("agent");console.log(`%c[Transcript - Text] ${er?"Agent":"User"}:`,`color: ${er?"#22c55e":"#3b82f6"}; font-weight: bold;`,Cn),er&&((jt=it.current)==null||jt.play().catch(()=>{}),Lt.open());const Er={message:Cn,isSelf:!er,name:er?"Agent":"You",timestamp:Date.now()+performance.now()%1,...er&&xt.current&&{sourceUrl:xt.current}};xt.current&&(xt.current=""),H(K=>{const Le=new Set;return[...K,Er].filter(Xe=>!Le.has(Xe.timestamp)&&Le.add(Xe.timestamp)).sort((Xe,ot)=>Xe.timestamp-ot.timestamp)})}catch(Cn){console.error("Error reading text stream",Cn)}},Me=le.map(It=>{var jt,Cn,er,Er;const Ht=((jt=It.from)==null?void 0:jt.identity)===Ve.localParticipant.identity,Sn=me.audioTrack?((Cn=It.from)==null?void 0:Cn.identity)===((er=me.audioTrack.participant)==null?void 0:er.identity):!Ht;return{name:((Er=It.from)==null?void 0:Er.name)||(Sn?"Agent":Ht?"You":"Unknown"),isSelf:Ht,message:It.message,timestamp:It.timestamp}});return H(It=>{const Ht=new Set;return[...It,...Me].filter(Sn=>!Ht.has(Sn.timestamp)&&Ht.add(Sn.timestamp)).sort((Sn,jt)=>Sn.timestamp-jt.timestamp)}),t.registerTextStreamHandler("lk.transcription",et),()=>{t.unregisterTextStreamHandler("lk.transcription")}},[t,ke,le,Lt,Ve.localParticipant,me.audioTrack]),G.useEffect(()=>{if(t)return console.log("[RPC] Registering handlers on room connect"),t.registerRpcMethod("send_source_urls",Dn),t.registerRpcMethod("render_component",Wn),t.registerRpcMethod("send_dynamic_data",Gn),console.log("[RPC] Registered: send_source_urls, render_component, send_dynamic_data"),()=>{t.unregisterRpcMethod("send_source_urls"),t.unregisterRpcMethod("render_component"),t.unregisterRpcMethod("send_dynamic_data")}},[t,Dn,Wn,Gn]),G.useEffect(()=>{if(t)return t.on(Ee.ParticipantDisconnected,Ft),t.on(Ee.Disconnected,Ft),()=>{t.off(Ee.ParticipantDisconnected,Ft),t.off(Ee.Disconnected,Ft)}},[Ft,t]),G.useEffect(()=>{if(ht.current&&(ht.current.scrollTop=ht.current.scrollHeight),Ce.length>0){const et=Ce.filter(Me=>Me.message&&!Me.componentType).map(Me=>`${Me.isSelf?"User":"Agent"}: ${Me.message}`).join(`
426
+ `);console.groupCollapsed(`%c[Transcript Summary] ${Ce.filter(Me=>Me.message).length} messages`,"color: #8b5cf6; font-weight: bold;"),console.log(et),console.groupEnd()}},[Ce]),G.useEffect(()=>(it.current=new Audio(V),it.current.preload="auto",()=>{it.current&&(it.current.pause(),it.current.src="",it.current=null)}),[V]),W.jsxs(pW,{theme:I,children:[W.jsxs(sx,{children:[(!$||!Lt.isOpen)&&W.jsx(mu.button,{initial:{scale:.8,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.8,opacity:0},transition:{type:"spring",stiffness:400,damping:25},"aria-label":"Open call widget",onClick:Lt.toggle,style:{position:X,...J,backgroundColor:N.primaryColor,color:N.primaryTextColor,...(Hi=v==null?void 0:v.modalTrigger)==null?void 0:Hi.styles},className:"ringg_ai-h-14 ringg_ai-w-14 !ringg_ai-rounded-full ringg_ai-flex ringg_ai-items-center ringg_ai-justify-center ringg_ai-shadow ringg_ai-trigger-btn !ringg_ai-z-[9999] hover:ringg_ai-opacity-90 ringg_ai-transition-opacity",children:W.jsx("img",{src:((ea=(Ji=v==null?void 0:v.modalTrigger)==null?void 0:Ji.icon)==null?void 0:ea.url)??"https://assets.ringg.ai/images/icons/widget-phone.svg",alt:"Widget trigger",style:{width:((es=(co=v==null?void 0:v.modalTrigger)==null?void 0:co.icon)==null?void 0:es.size)??25,height:((fo=(ts=v==null?void 0:v.modalTrigger)==null?void 0:ts.icon)==null?void 0:fo.size)??25}})},"trigger-button"),Lt.isOpen&&W.jsxs(mu.div,{ref:bt,initial:{y:"100%",opacity:0,x:oe==="bottom-center"?"-50%":0},animate:{y:0,opacity:1,x:oe==="bottom-center"?"-50%":0},exit:{y:"100%",opacity:0,x:oe==="bottom-center"?"-50%":0},transition:{type:"spring",stiffness:300,damping:28},className:xr("ringg_ai-relative ringg_ai-border ringg_ai-overflow-hidden ringg_ai-shadow-xl !ringg_ai-z-[9999] ringg_ai-w-[95vw] md:ringg_ai-w-[360px]",bn&&"ringg_ai-h-[24.5rem]"),style:{position:"fixed",bottom:"2%",...Fte(oe),...bn?xe:{},maxWidth:"96dvw",maxHeight:"96dvh",backgroundColor:N.backgroundColor,borderColor:N.borderColor,borderRadius:RS(E==null?void 0:E.borderRadius)??N.borderRadius,fontFamily:N.fontFamily,"--widget-primary":N.primaryColor,"--widget-primary-text":N.primaryTextColor,"--widget-bg":N.backgroundColor,"--widget-surface":N.surfaceColor,"--widget-text":N.textColor,"--widget-muted":N.mutedTextColor,"--widget-border":N.borderColor,"--widget-button-radius":ne},children:[bn&&W.jsx(Av,{size:"icon",variant:"ghost","aria-label":"Minimize widget",onClick:Lt.minimize,className:"ringg_ai-absolute !ringg_ai-z-[9999] ringg_ai-top-2.5 ringg_ai-right-12 !ringg_ai-rounded-full ringg_ai-text-gray-500 hover:ringg_ai-text-gray-700",children:W.jsx(iW,{size:20})}),W.jsx(Av,{size:"icon",variant:"ghost","aria-label":bn?"End call":"Close widget",onClick:()=>bn?He(!0):Lt.showFeedback?Be():Lt.minimize(),className:"ringg_ai-absolute !ringg_ai-z-[9999] ringg_ai-top-2.5 ringg_ai-right-2.5 !ringg_ai-rounded-full ringg_ai-text-gray-500 hover:ringg_ai-text-gray-700",children:W.jsx(lW,{size:20})}),W.jsx(UY,{open:ve,onOpenChange:He,containerRef:bt,children:W.jsxs(FY,{children:[W.jsxs(jY,{children:[W.jsxs(VY,{children:["Are you sure you want to end ",ke==="text"?"chat":"call","?"]}),W.jsx(zY,{children:"Your current conversation will be closed and cannot be accessed later."})]}),W.jsxs(BY,{children:[W.jsx(Av,{variant:"outline",onClick:()=>He(!1),style:{borderRadius:ne,borderColor:N.borderColor,backgroundColor:N.surfaceColor,color:N.textColor},children:"Cancel"}),W.jsxs(Av,{onClick:Ft,style:{borderRadius:ne,backgroundColor:N.primaryColor,color:N.primaryTextColor},children:["End ",ke==="text"?"Chat":"Call"]})]})]})}),Lt.showFeedback?W.jsx($Y,{callMode:ke,isSubmitting:Je,feedbackScreenConfig:U,onSubmit:Kt,onSkip:Be}):W.jsxs("div",{className:"ringg_ai-flex ringg_ai-h-full ringg_ai-flex-col",children:[W.jsxs("div",{className:xr("ringg_ai-relative ringg_ai-p-5 ringg_ai-h-full ringg_ai-mb-2 ringg_ai-flex ringg_ai-gap-5 ringg_ai-flex-col",!bn&&"ringg_ai-mt-2"),children:[W.jsx(qY,{isCalling:bn,isLoading:Je,title:l,description:c,logoUrl:R,logoStyles:M}),Ce.length===0&&bn&&W.jsx("div",{className:"ringg_ai-mt-20 ringg_ai-h-full"}),Ce.length>0&&bn&&W.jsx("div",{"data-scrollable":"true",ref:ht,className:"ringg_ai-mt-20 ringg_ai-h-full ringg_ai-overflow-y-auto ringg_ai-flex ringg_ai-flex-col",children:W.jsx("div",{className:"ringg_ai-mt-auto md:ringg_ai-mt-0 ringg_ai-flex ringg_ai-flex-col ringg_ai-gap-2.5",children:Ce.sort((et,Me)=>et.timestamp-Me.timestamp).map((et,Me)=>et.componentType&&et.componentData?W.jsx(nK,{initialComponent:et.componentData,onApiCall:un,onComplete:()=>At(et.componentData.component_id),onSendResponse:ln},`flow_${et.componentData.component_id}_${Me}`):W.jsx(Dte,{itemIndex:Me,message:et},`${et.timestamp}__${Me}`))})}),W.jsx(IY,{buttonConfig:v,callMode:ke,isCalling:bn,onCallEnd:Ft}),z.hasError&&W.jsx("div",{className:"ringg_ai-text-center ringg_ai-text-sm ringg_ai-text-red-500 -ringg_ai-mt-3 -ringg_ai-mb-2",children:z.message}),Nr==="disconnected"&&W.jsx(GW,{callMode:ke,buttonConfig:v,isCalling:bn,isLoading:Je,onCallTrigger:vt}),!bn&&W.jsx("p",{className:"ringg_ai-text-xs ringg_ai-text-center",style:{color:N.mutedTextColor},children:A?Vte(A.text,A.links):W.jsxs(W.Fragment,{children:["By starting call you agree to ",W.jsx("a",{target:"_blank",rel:"noopener noreferrer",className:"hover:ringg_ai-underline",style:{color:N.primaryColor},href:"https://www.ringg.ai/privacy",children:"Privacy policy"})," & ",W.jsx("a",{target:"_blank",rel:"noopener noreferrer",className:"hover:ringg_ai-underline",style:{color:N.primaryColor},href:"https://www.ringg.ai/terms",children:"T&C"})]})})]}),!bn&&!T&&W.jsx(Ate,{tabs:XG,activeTab:ke,onTabChange:et=>Ge(et)})]})]},"chat-widget")]}),W.jsx(vB,{}),!1]})},Bte=({config:t})=>{const[e]=G.useState(()=>new Gh({dynacast:!0,adaptiveStream:!0}));return W.jsx(XT.Provider,{value:e,children:W.jsx(zte,{config:t,room:e})})};{const t="ringg_ai_container";(function(e,n){function r(a){let s=n.getElementById(t);s||(s=n.createElement("div"),s.id=t,n.body.appendChild(s)),yg.createRoot(s).render(W.jsx(ir.StrictMode,{children:W.jsx(Bte,{config:a})}))}e.loadAgent=r})(window,document)}});