@hysc/meeting 10.6.1 → 10.6.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.
- package/package.json +1 -1
- package/dist/index.d.mts +0 -2467
- package/dist/index.d.ts +0 -2467
- package/dist/index.js +0 -5
- package/dist/index.mjs +0 -5
- package/umd/index.js +0 -25
- package/umd/src/BMChat/BMChatVM.d.ts +0 -28
- package/umd/src/BMChat/BMMessageInfo.d.ts +0 -32
- package/umd/src/BMRoom/BMLiveVM.d.ts +0 -36
- package/umd/src/BMRoom/BMRoom.d.ts +0 -740
- package/umd/src/BMRoom/BMRoomInfo.d.ts +0 -222
- package/umd/src/BMRoom/BMRoomVM.d.ts +0 -329
- package/umd/src/BMRoom/RoomEvent.d.ts +0 -1
- package/umd/src/BMStream/BMSpeaker.d.ts +0 -26
- package/umd/src/BMStream/BMStreamModel.d.ts +0 -311
- package/umd/src/BMStream/BMStreamModelVM.d.ts +0 -281
- package/umd/src/BMStream/getHTMLMediaStreamOptions.d.ts +0 -35
- package/umd/src/BMStream/sortStream.d.ts +0 -30
- package/umd/src/BMUser/BMUser.d.ts +0 -173
- package/umd/src/BMUser/BMUserVM.d.ts +0 -188
- package/umd/src/SingletonQueue/SingletonQueue.d.ts +0 -16
- package/umd/src/audioPlay/AudioPlay.d.ts +0 -31
- package/umd/src/bjy-common/function/debounce.d.ts +0 -9
- package/umd/src/bjy-common/function/execute.d.ts +0 -9
- package/umd/src/bjy-common/function/getErrorMessage.d.ts +0 -1
- package/umd/src/bjy-common/function/isDef.d.ts +0 -1
- package/umd/src/bjy-common/function/isNative.d.ts +0 -1
- package/umd/src/bjy-common/function/isUndef.d.ts +0 -1
- package/umd/src/bjy-common/function/nextTick.d.ts +0 -2
- package/umd/src/bjy-common/function/throttling.d.ts +0 -9
- package/umd/src/bjy-common/function/toNumber.d.ts +0 -1
- package/umd/src/bjy-common/function/toString.d.ts +0 -1
- package/umd/src/bjy-common/type/api.d.ts +0 -66
- package/umd/src/bjy-common/type/options.d.ts +0 -7
- package/umd/src/bjy-common/type/type.d.ts +0 -90
- package/umd/src/bjy-common/util/CustomEvent.d.ts +0 -30
- package/umd/src/bjy-common/util/Emitter.d.ts +0 -57
- package/umd/src/bjy-common/util/NextTask.d.ts +0 -28
- package/umd/src/bjy-common/util/Sleep.d.ts +0 -14
- package/umd/src/bjy-common/util/Timer.d.ts +0 -13
- package/umd/src/bjy-common/util/array.d.ts +0 -96
- package/umd/src/bjy-common/util/browser.d.ts +0 -6
- package/umd/src/bjy-common/util/constant.d.ts +0 -50
- package/umd/src/bjy-common/util/holder.d.ts +0 -6
- package/umd/src/bjy-common/util/is.d.ts +0 -49
- package/umd/src/bjy-common/util/keypath.d.ts +0 -41
- package/umd/src/bjy-common/util/logger.d.ts +0 -42
- package/umd/src/bjy-common/util/network.d.ts +0 -4
- package/umd/src/bjy-common/util/object.d.ts +0 -83
- package/umd/src/bjy-common/util/os.d.ts +0 -14
- package/umd/src/bjy-common/util/string.d.ts +0 -102
- package/umd/src/constants.d.ts +0 -130
- package/umd/src/error/RTCError.d.ts +0 -20
- package/umd/src/error/errorMap.d.ts +0 -70
- package/umd/src/error/errorType.d.ts +0 -96
- package/umd/src/handleEvent/attachEvents.d.ts +0 -47
- package/umd/src/handleEvent/brtcNetEvent.d.ts +0 -9
- package/umd/src/handleEvent/customMessageEvent.d.ts +0 -2
- package/umd/src/handleEvent/handleParticipantEvent.d.ts +0 -24
- package/umd/src/handleEvent/handleRoomEvent.d.ts +0 -20
- package/umd/src/handleEvent/messageEvent.d.ts +0 -5
- package/umd/src/handleEvent/pullUser.d.ts +0 -7
- package/umd/src/handleEvent/roomErrEvent.d.ts +0 -9
- package/umd/src/handleEvent/streamEvent.d.ts +0 -22
- package/umd/src/index.d.ts +0 -13
- package/umd/src/logger/logger.d.ts +0 -86
- package/umd/src/type/customStats.d.ts +0 -129
- package/umd/src/type/index.d.ts +0 -9
- package/umd/src/type/stream.d.ts +0 -12
- package/umd/src/type/user.d.ts +0 -9
- package/umd/src/util/PackLoss.d.ts +0 -7
- package/umd/src/util/Pqueue.d.ts +0 -62
- package/umd/src/util/Privileges.d.ts +0 -20
- package/umd/src/util/ReportCollector.d.ts +0 -22
- package/umd/src/util/Stutter.d.ts +0 -19
- package/umd/src/util/Thread.d.ts +0 -12
- package/umd/src/util/base64.d.ts +0 -4
- package/umd/src/util/benchmark.d.ts +0 -1
- package/umd/src/util/checkPermissions.d.ts +0 -1
- package/umd/src/util/checkSystemRequirements.d.ts +0 -1
- package/umd/src/util/constant.d.ts +0 -67
- package/umd/src/util/devices.d.ts +0 -2
- package/umd/src/util/emitter.d.ts +0 -45
- package/umd/src/util/formatUserId.d.ts +0 -2
- package/umd/src/util/is.d.ts +0 -70
- package/umd/src/util/peerToPeerProbe.d.ts +0 -9
- package/umd/src/util/request.d.ts +0 -45
- package/umd/src/util/roomUtils.d.ts +0 -9
- package/umd/src/util/sortUtils.d.ts +0 -10
- package/umd/src/util/util.d.ts +0 -81
package/umd/index.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("buffer"),require("events")):"function"==typeof define&&define.amd?define(["exports","buffer","events"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).BoomMeeting={},e.require$$0$1,e.require$$6)}(this,(function(exports,require$$0$1,require$$6){"use strict";function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var require$$0__default=_interopDefaultLegacy(require$$0$1),require$$6__default=_interopDefaultLegacy(require$$6),extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])},extendStatics(e,t)};function __extends(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}extendStatics(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}function __awaiter(e,t,r,i){return new(r||(r=Promise))((function(s,o){function n(e){try{u(i.next(e))}catch(e){o(e)}}function a(e){try{u(i.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(n,a)}u((i=i.apply(e,t||[])).next())}))}function __values(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],i=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var i,s,o=r.call(e),n=[];try{for(;(void 0===t||t-- >0)&&!(i=o.next()).done;)n.push(i.value)}catch(e){s={error:e}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return n}function __spreadArray$1(e,t,r){if(r||2===arguments.length)for(var i,s=0,o=t.length;s<o;s++)!i&&s in t||(i||(i=Array.prototype.slice.call(t,0,s)),i[s]=t[s]);return e.concat(i||Array.prototype.slice.call(t))}var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getAugmentedNamespace(e){if(e.__esModule)return e;var t=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})})),t}var global$1="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}var cachedSetTimeout=defaultSetTimout,cachedClearTimeout=defaultClearTimeout;function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch(t){try{return cachedSetTimeout.call(null,e,0)}catch(t){return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch(t){try{return cachedClearTimeout.call(null,e)}catch(t){return cachedClearTimeout.call(this,e)}}}"function"==typeof global$1.setTimeout&&(cachedSetTimeout=setTimeout),"function"==typeof global$1.clearTimeout&&(cachedClearTimeout=clearTimeout);var queue=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue.length;t;){for(currentQueue=queue,queue=[];++queueIndex<t;)currentQueue&¤tQueue[queueIndex].run();queueIndex=-1,t=queue.length}currentQueue=null,draining=!1,runClearTimeout(e)}}function nextTick(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];queue.push(new Item(e,t)),1!==queue.length||draining||runTimeout(drainQueue)}function Item(e,t){this.fun=e,this.array=t}Item.prototype.run=function(){this.fun.apply(null,this.array)};var title="browser",platform="browser",browser$1=!0,env={},argv=[],version$2="",versions={},release={},config$1={};function noop$2(){}var on$1=noop$2,addListener=noop$2,once$1=noop$2,off=noop$2,removeListener=noop$2,removeAllListeners=noop$2,emit=noop$2;function binding(e){throw new Error("process.binding is not supported")}function cwd(){return"/"}function chdir(e){throw new Error("process.chdir is not supported")}function umask(){return 0}var performance=global$1.performance||{},performanceNow=performance.now||performance.mozNow||performance.msNow||performance.oNow||performance.webkitNow||function(){return(new Date).getTime()};function hrtime(e){var t=.001*performanceNow.call(performance),r=Math.floor(t),i=Math.floor(t%1*1e9);return e&&(r-=e[0],(i-=e[1])<0&&(r--,i+=1e9)),[r,i]}var startTime=new Date;function uptime(){return(new Date-startTime)/1e3}var process={nextTick:nextTick,title:title,browser:browser$1,env:env,argv:argv,version:version$2,versions:versions,on:on$1,addListener:addListener,once:once$1,off:off,removeListener:removeListener,removeAllListeners:removeAllListeners,emit:emit,binding:binding,cwd:cwd,chdir:chdir,umask:umask,hrtime:hrtime,platform:platform,release:release,config:config$1,uptime:uptime},ot=Object.defineProperty,pe$1=Object.getOwnPropertyDescriptor,ue$1=Object.getOwnPropertyNames,fe=Object.prototype.hasOwnProperty,U$1=(e,t)=>{for(var r in t)ot(e,r,{get:t[r],enumerable:!0})},le$1=(e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of ue$1(t))!fe.call(e,s)&&s!==r&&ot(e,s,{get:()=>t[s],enumerable:!(i=pe$1(t,s))||i.enumerable});return e},me$1=e=>le$1(ot({},"__esModule",{value:!0}),e),Dr={};U$1(Dr,{BMCameraNotAuthError:()=>sn,BMCameraOccupyError:()=>cn,BMCreateStreamError:()=>Ze,BMMicNotAuthError:()=>pn,BMMicOccupyError:()=>un,BMNoCameraError:()=>en,BMNoMicroError:()=>nn,BMNoSpeakerError:()=>rn,BMOpenCameraError:()=>on,BMOpenMicroError:()=>an,BMShareStreamConnectError:()=>En,BMShareStreamReconnectFailed:()=>Tn,BMShareStreamReconnectSuccess:()=>xn,BMStreamConnectError:()=>mn,BMStreamDisconnectedError:()=>fn,BMStreamReconnectFailed:()=>Sn,BMStreamReconnectSuccess:()=>gn,BloudEventMap:()=>zt,BloudEvents:()=>k$1,BloudLockError:()=>Be$1,BmChangeAudioProfileError:()=>qe,BmChangeMasterError:()=>je,BmChangeVideoProfileError:()=>Xe,BmCheckDeviceError:()=>Qe,BmEvictUserError:()=>Ye,BmJoinError:()=>Pe$1,BmLeaveError:()=>Fe,BmSetAudioOffError:()=>Ge,BmSetLocalAudioEnable:()=>ke,BmSetLocalSpeakerEnable:()=>Je,BmSetLocalVideoEnable:()=>We,BmSetMsgOffError:()=>ze,BmSetRemoteAudioEnable:()=>Me,BmSetRemoteVideoEnable:()=>Ce$1,BmSetVideoOffError:()=>$e,BmSyncStreamFailError:()=>ln,BmUpdateCustomStatsError:()=>Ke,BmUpdateManagerError:()=>Ve,BmUpdateUserError:()=>He,BoomCoreErrorCode:()=>Yt,BoomError:()=>s$2,BoomMeetingErrorCode:()=>Ht,BrtcCreateStreamError:()=>De,BrtcEvents:()=>K$2,BrtcPublishError:()=>_e,BrtcShareSigError:()=>he$1,BrtcSubscribeError:()=>ve,BrtcUnPublishError:()=>Ie$1,BrtcUnsubscribeError:()=>Le,CustomEvents:()=>X$1,Emitter:()=>$$1,JoinBloudError:()=>Ue,JoinBrtcError:()=>Ae$1,JoinTypeError:()=>ye$1,JoinUserInfoError:()=>Oe$1,LOGLEVEL:()=>$t,Logger:()=>it,PlayerEvents:()=>z$1,ProxiesUrlTypeError:()=>be$1,RepeatJoinError:()=>Ne,ShareScreenCanceled:()=>ge$1,ShareScreenClientJoinedError:()=>Te$1,ShareScreenContentHintError:()=>Se,ShareScreenNoPermission:()=>Ee$1,ShareScreenOtherError:()=>xe,StreamErrorMap:()=>Gt,ToggleShareScreenError:()=>de$1,array:()=>M$1,constant:()=>E$3,execute:()=>C$3,getBloudProxiesUrlError:()=>Re,getErrorMessage:()=>Bt,getStreamError:()=>tn,getTimestamp:()=>jt,is:()=>R$1,isDef:()=>et,nextTick:()=>ae$1,object:()=>H$1,toNumber:()=>ce$1,toString:()=>L$2,updateCustomStatsError:()=>we});var dist$4=me$1(Dr),s$2=class extends Error{constructor(e,t,r){let i;super(),this.boom_error_flag_="__BOOM_ERROR___",this.code=e,i="string"==typeof t?t:JSON.stringify(t),this.message=i,r&&(this.name=r)}toString(){return JSON.stringify({code:this.code,message:this.message})}getCode(){return this.code}getMessage(){return this.message}},Yt=(e=>(e[e.BloudLock=28]="BloudLock",e[e.ShareScreenNoPermission=100]="ShareScreenNoPermission",e[e.ShareScreenCanceled=101]="ShareScreenCanceled",e[e.ShareScreenOtherError=102]="ShareScreenOtherError",e[e.ShareScreenContentHintError=103]="ShareScreenContentHintError",e[e.ShareScreenClientJoinedError=104]="ShareScreenClientJoinedError",e[e.BrtcShareSigError=105]="BrtcShareSigError",e[e.ToggleShareScreenError=106]="ToggleShareScreenError",e[e.BrtcCreateStreamError=107]="BrtcCreateStreamError",e[e.BrtcSubscribeError=108]="BrtcSubscribeError",e[e.BrtcPublishError=109]="BrtcPublishError",e[e.BrtcUnsubscribeError=110]="BrtcUnsubscribeError",e[e.BrtcUnPublishError=111]="BrtcUnPublishError",e[e.RepeatJoinError=112]="RepeatJoinError",e[e.ProxiesUrlTypeError=113]="ProxiesUrlTypeError",e[e.getBloudProxiesUrlError=114]="getBloudProxiesUrlError",e[e.JoinUserInfoError=115]="JoinUserInfoError",e[e.JoinTypeError=116]="JoinTypeError",e[e.JoinBrtcError=117]="JoinBrtcError",e[e.JoinBloudError=118]="JoinBloudError",e[e.UpdateCustomStatsError=119]="UpdateCustomStatsError",e[e.CreateBloudError=120]="CreateBloudError",e))(Yt||{}),Ee$1=new s$2(100,"没有打开共享屏幕录制权限","no share permission"),ge$1=new s$2(101,"取消共享屏幕","cancel share"),xe=e=>new s$2(102,e),Se=new s$2(103,"设置 共享屏幕视频流的 contentHint 失效","set share video contentHint failed"),Te$1=new s$2(104,"共享屏幕brtc client入会失败","share client join failed"),he$1=new s$2(105,"brtcShareSig为空","brtc share sig is empty"),de$1=e=>new s$2(106,e,"toggle share has error"),Ne=new s$2(112,"正在 join,请勿重复调用","repeat join error"),be$1=new s$2(113,"proxies url 必须为字符串","get bloud proxies param error"),Re=e=>new s$2(114,e,"get bloud proxies error"),Oe$1=new s$2(115,"userinfo传递错误,请检查"),ye$1=new s$2(116,"type传递错误,请检查"),Ae$1=e=>new s$2(117,e,"join brtc error"),Ue=e=>new s$2(118,e,"join bloud error"),Be$1=e=>new s$2(28,"会议已锁定"),De=e=>new s$2(107,"brtc 创建本地流失败"),ve=e=>new s$2(108,e,"brtc subscribe failed"),_e=e=>new s$2(109,e,"brtc pub failed"),Le=e=>new s$2(110,e,"brtc sub failed"),Ie$1=e=>new s$2(110,e,"brtc unpub failed"),we=e=>new s$2(119,e,"bloud updateCustomStats failed"),Ht=(e=>(e[e.BmJoinError=200]="BmJoinError",e[e.BMLeaveError=201]="BMLeaveError",e[e.BmSetRemoteVideoEnable=202]="BmSetRemoteVideoEnable",e[e.BmSetRemoteAudioEnable=203]="BmSetRemoteAudioEnable",e[e.BmSetLocalVideoEnable=204]="BmSetLocalVideoEnable",e[e.BmSetLocalAudioEnable=205]="BmSetLocalAudioEnable",e[e.BmSetLocalSpeakerEnable=206]="BmSetLocalSpeakerEnable",e[e.BmChangeMasterError=207]="BmChangeMasterError",e[e.BmUpdateManagerError=208]="BmUpdateManagerError",e[e.BmEvictUserError=209]="BmEvictUserError",e[e.BmUpdateUserError=210]="BmUpdateUserError",e[e.BmSetAudioOffError=211]="BmSetAudioOffError",e[e.BmSetVideoOffError=212]="BmSetVideoOffError",e[e.BmSetMsgOffError=213]="BmSetMsgOffError",e[e.BmUpdateCustomStatsError=214]="BmUpdateCustomStatsError",e[e.BmChangeVideoProfileError=215]="BmChangeVideoProfileError",e[e.BmChangeAudioProfileError=216]="BmChangeAudioProfileError",e[e.BmCheckDeviceError=217]="BmCheckDeviceError",e))(Ht||{}),Pe$1=e=>new s$2(200,e,"boommeeting join failed"),Fe=e=>new s$2(201,e,"boommeeting leave failed"),Ce$1=e=>new s$2(202,e,"开关对端摄像头失败"),Me=e=>new s$2(203,e,"开关对端麦克风发生失败"),We=e=>new s$2(204,e,"开关本地摄像头失败"),ke=e=>new s$2(205,e,"开关本地麦克风失败"),Je=e=>new s$2(206,e,"开关扬声器失败"),je=e=>new s$2(207,e,"转移主持人发生错误"),Ve=e=>new s$2(208,e,"改变联席主持人发生错误"),Ye=e=>new s$2(209,e,"踢出用户发生错误"),He=e=>new s$2(210,e,"更新用户信息发生错误"),Ge=e=>new s$2(211,e,"全员静音发生错误"),$e=e=>new s$2(212,e,"全员禁用摄像头发生错误"),ze=e=>new s$2(213,e,"全员禁用聊天发生错误"),Ke=e=>new s$2(214,e,"更新房间自定义属性状态发生错误"),Xe=e=>new s$2(215,e,"远程调节对方视频发生错误"),qe=e=>new s$2(216,e,"远程调节对方音频发生错误"),Qe=e=>new s$2(217,e,"远程检测对方设备发生错误"),Gt=(e=>(e[e.createStream=1302]="createStream",e[e.noCameraDevice=1303]="noCameraDevice",e[e.noMicroDevice=1304]="noMicroDevice",e[e.noSpeakerDevice=1305]="noSpeakerDevice",e[e.openCamera=1301]="openCamera",e[e.cameraNotAuth=1314]="cameraNotAuth",e[e.cameraOccupy=1315]="cameraOccupy",e[e.openMicro=1302]="openMicro",e[e.micNotAuth=1317]="micNotAuth",e[e.micOccupy=1319]="micOccupy",e[e.streamDisconnected=1320]="streamDisconnected",e[e.syncFail=1321]="syncFail",e[e.getStreamFail=1322]="getStreamFail",e[e.streamConnectError=1323]="streamConnectError",e[e.streamReconnectSuccess=1324]="streamReconnectSuccess",e[e.streamReconnectFailed=1325]="streamReconnectFailed",e[e.shareStreamConnectError=1326]="shareStreamConnectError",e[e.shareStreamConnectSuccess=1327]="shareStreamConnectSuccess",e[e.shareStreamConnectFailed=1328]="shareStreamConnectFailed",e))(Gt||{}),Ze=(e,t)=>new s$2(1302,`采集${e}流失败,请重试: ${t}`),tn=e=>new s$2(1322,`当前${e}不可用, 请确保您的${e}连接正确, 或更换其他${e}`),en=()=>new s$2(1303,"当前没有摄像头输入设备,请检查"),nn=()=>new s$2(1304,"当前没有麦克风输入设备,请检查"),rn=()=>new s$2(1305,"当前没有扬声器输入设备,请检查"),on=()=>new s$2(1301,"打开摄像头失败"),sn=()=>new s$2(1314,"摄像头设备未授权, 无法开启视频, 启动摄像头失败, 请在系统或浏览器“设置-隐私”中允许使用摄像头"),cn=()=>new s$2(1315,"当前摄像头被占用, 请检查或切换其他摄像头"),an=()=>new s$2(1302,"打开麦克风失败"),pn=()=>new s$2(1317,"麦克风设备未授权, 无法开启麦克风, 启动麦克风失败, 请在系统或浏览器“设置-隐私”中允许使用麦克风"),un=()=>new s$2(1319,"当前麦克风被占用, 请检查或切换其他麦克风"),fn=e=>new s$2(1320,`${e}连接已断开,正在重试,请稍后`),ln=()=>new s$2(1321,"状态同步异常,请重试, 麦克风和摄像头已自动关闭"),mn=()=>new s$2(1323,"网络连接异常,正在重试"),En=()=>new s$2(1326,"共享屏幕网络连接异常,正在重试"),gn=(e,t)=>{let r="";return e&&t?r="麦克风和摄像头":e?r="麦克风":t&&(r="摄像头"),new s$2(1324,`网络连接成功, ${r}已自动打开`)},xn=()=>new s$2(1327,"共享屏幕网络连接成功, 已自动打开"),Sn=()=>new s$2(1325,"网络连接失败,请检查网络,麦克风和摄像头已自动关闭"),Tn=()=>new s$2(1325,"共享屏幕网络连接失败,请检查网络,共享屏幕已自动关闭");function st(e,t,r,i){let s=[];return r&&s.push(r),i&&s.push(i),`[${(new Date).toLocaleTimeString("chinese",{hour12:!1})}] <${e}> [${s.join("|")}] ${t}`}var $t=(r=$t||{},r[r.INFO=0]="INFO",r[r.WARN=1]="WARN",r[r.ERROR=2]="ERROR",r[r.CLOSE=3]="CLOSE",r),m$2=class e{static setStorageCallBack(t){e.storageCallBack=t}static setEnableUpload(t){e.enableUpload=t}static setLogLevel(t){e.logLevel=t}static setNamespace(t){e.namespace=t}static info(t,r,i,s=[]){e.logLevel<=0&&(s.unshift(st("INFO",t,r,i)),console.info(...s),e.storageCallBack&&e.storageCallBack(s.join(""),1))}static warn(t,r,i,s=[]){e.logLevel<=1&&(s.unshift(st("WARN",t,r,i)),console.warn(...s),e.storageCallBack&&e.storageCallBack(s.join(""),2))}static error(t,r,i,s=[]){e.logLevel<=2&&(s.unshift(st("ERROR",t,r,i)),console.error(...s),e.storageCallBack&&e.storageCallBack(s.join(""),3))}},r;m$2.enableUpload=!1,m$2.logLevel=0,m$2.namespace="boom-core";var it=m$2,k$1={};U$1(k$1,{CHANGE_MASTER:()=>mt,CUSTOM_MESSAGE:()=>St,ERROR:()=>ut,EVICTED:()=>Nt,LEAVE_USERS:()=>Rt,MOVE_USER_ROOM:()=>ht,PARTICIPANT_JOINED:()=>ct,PARTICIPANT_LEFT:()=>at$3,RECONNECTED:()=>dn,RECONNECTING:()=>Nn,ROOM_CLOSED:()=>pt,ROOM_CONNECTED:()=>An,ROOM_SYNCED:()=>Un,SEND_MESSAGE:()=>xt,SESSION_CLOED:()=>On,STATE_NOTIFY:()=>yn,STREAM_PUBLISHED:()=>Et,STREAM_REMOVED:()=>gt$2,STREAM_UPDATE:()=>dt,SYNC_FAILED:()=>Bn,TIMEOUT:()=>hn,TOKEN_EXPIRE:()=>Rn,TOKEN_WILL_EXPIRE:()=>bn,UPDATE_CUSTOM_STATS:()=>Tt,UPDATE_STATS:()=>ft,UPDATE_STREAM:()=>Ot,UPDATE_USER:()=>lt$2,USER_REJOINED:()=>bt});var ct="participant-joined",at$3="participant-left",pt="room-closed",ut="room-error",hn="network-error",dn="room-reconnected",Nn="room-reconnecting",ft="update-stats",lt$2="participant-update",mt="change-master",Et="participant-published",gt$2="participant-unpublished",xt="new-message",St="custom-message",Tt="update-custom-stats",ht="move-user-room",dt="stream-update",Nt="participant-evicted",bt="user-rejoined",bn="token-will-expire",Rn="token-expire",On="session-close",yn="state-notify",Rt="leaveUsers",Ot="update-stream",An="room-connected",Un="room-synced",Bn="sync-failed",zt={joinUser:ct,leaveUser:at$3,roomClosed:pt,roomError:ut,updateStats:ft,updateUser:lt$2,changeMaster:mt,publishStream:Et,unpublishStream:gt$2,sendMessage:xt,customMessage:St,updateCustomStats:Tt,moveUserRoom:ht,streamUpdate:dt,evicted:Nt,userRejoined:bt,leaveUsers:Rt,updateStream:Ot},z$1={};U$1(z$1,{PLAYER_STATE_CHANGED:()=>Dn});var Dn="player-state-changed",K$2={};U$1(K$2,{BRTC_ROOM_RECONNECTED:()=>Cn,BRTC_ROOM_ROCONNECTING:()=>Fn,BRTC_SYNC_ROOM_COMPLETED:()=>Pn,CLIENT_BANNED:()=>Ln,ERROR:()=>vn,ROOM_CLOSED:()=>wn,STREAM_PUBLISHED:()=>_n,USER_KICKED:()=>In});var vn="error",_n="stream-published",Ln="client-banned",In="user-kicked",wn="room-closed",Pn="sync-room-completed",Fn="brtc-room-reconnecting",Cn="brtc-room-reconnected",X$1={};U$1(X$1,{BRTC_SHARE_SYNC_ROOM_COMPLETED:()=>Wn,JOIN_READY:()=>Mn});var Mn="join-ready",Wn="brtc-share-sync-room-completed",R$1={};U$1(R$1,{array:()=>N,arrayBuffer:()=>Zn,boolean:()=>qn,func:()=>h$2,isPlainObject:()=>tt,number:()=>Z$1,numeric:()=>Ut,object:()=>S$3,range:()=>Qn,string:()=>b$3});var E$3={};U$1(E$3,{DOCUMENT:()=>Kn,EMPTY_ARRAY:()=>yt,EMPTY_FUNCTION:()=>Q$1,EMPTY_OBJECT:()=>Xn,EMPTY_STRING:()=>B$2,FALSE:()=>f$3,GLOBAL:()=>q$2,KEYPATH_CURRENT:()=>zn,KEYPATH_PARENT:()=>$n,MINUS_ONE:()=>w$2,NULL:()=>O$2,RAW_DOT:()=>J$1,RAW_FALSE:()=>Jn,RAW_FUNCTION:()=>F$2,RAW_LENGTH:()=>Yn,RAW_NULL:()=>jn,RAW_SLASH:()=>Hn,RAW_TAG:()=>Gn,RAW_THIS:()=>Kt,RAW_TRUE:()=>kn,RAW_UNDEFINED:()=>P$2,RAW_VALUE:()=>Vn,RAW_WILDCARD:()=>Xt,TRUE:()=>T$1,UNDEFINED:()=>l$2,WINDOW:()=>j$1});var T$1=!0,f$3=!1,O$2=null,l$2=void 0,w$2=-1,kn="true",Jn="false",jn="null",P$2="undefined",Kt="this",Vn="value",Yn="length",F$2="function",Xt="*",J$1=".",Hn="/",Gn="tag",$n="..",zn=Kt,j$1=typeof window!==P$2?window:void 0,Kn=typeof document!==P$2?document:void 0,q$2=typeof commonjsGlobal!==P$2?commonjsGlobal:j$1,Q$1=function(){},Xn=Object.freeze({}),yt=Object.freeze([]),B$2="";function h$2(e){return typeof e===F$2}function N(e){return Array.isArray(e)}function S$3(e){return null!==e&&"object"==typeof e}function b$3(e){return"string"==typeof e}function Z$1(e){return"number"==typeof e&&!isNaN(e)}function qn(e){return"boolean"==typeof e}function Ut(e){return Z$1(e)||b$3(e)&&!isNaN(parseFloat(e))&&isFinite(+e)}var At={}.hasOwnProperty;function tt(e){if(!S$3(e)||e.nodeType||e===e.window||e.constructor&&!At.call(e,"constructor")&&!At.call(e.constructor.prototype||{},"isPrototypeOf"))return!1;let t;for(t in e);return void 0===t||At.call(e,t)}function Qn(e,t,r){return e>=t&&e<=r}function Zn(e){return e instanceof ArrayBuffer}function Bt(e){if(b$3(e))return e;if(S$3(e)){if(b$3(e.message))return e.message;if(b$3(e.msg))return e.msg;if(h$2(e.toString))return e.toString()}return"unknow"}var M$1={};function C$3(e,t,r){if(h$2(e))return N(r)?e.apply(t,r):void 0!==t?e.call(t,r):void 0!==r?e(r):e()}function d$3(e,t,r){if(!e)return;let{length:i}=e;if(i)if(r)for(let r=i-1;r>=0&&!1!==t(e[r],r);r--);else for(let r=0;r<i&&!1!==t(e[r],r);r++);}function tr(e,t){e[e.length]=t}function er(e,t){e.unshift(t)}function qt(e,t,r){N(t)?d$3(t,(function(t){r(e,t)})):r(e,t)}function Dt(e,t){qt(e,t,tr)}function nr(e,t){qt(e,t,er)}function Qt(e,t,r){let i=-1;return d$3(e,(function(e,s){if(!1===r?e==t:e===t)return i=s,!1})),i}function rr(e){let{length:t}=e;if(t>0)return e[t-1]}function or(e){let{length:t}=e;if(t>0)return e.pop()}function sr(e,t,r){let i=0;return d$3(e,(function(s,o){(!1===r?s==t:s===t)&&(e.splice(o,1),i++)}),!0),i}function vt(e,t,r){return Qt(e,t,r)>=0}function ir(e){return N(e)?e:C$3(yt.slice,e)}function cr(e,t,r){let i={};return d$3(e,(function(e){i[t?e[t]:e]=r||e})),i}function ar(e,t){return e.join(t)}function pr(e){return!N(e)||!e.length}U$1(M$1,{each:()=>d$3,falsy:()=>pr,has:()=>vt,indexOf:()=>Qt,join:()=>ar,last:()=>rr,pop:()=>or,push:()=>Dt,remove:()=>sr,toArray:()=>ir,toObject:()=>cr,unshift:()=>nr});var W$1=class e{constructor(t,r){this.type=t,this.phase=e.PHASE_CURRENT,r&&(this.originalEvent=r)}preventDefault(){let e=this;if(!e.isPrevented){let{originalEvent:t}=e;t&&t.preventDefault(),e.isPrevented=!0}return e}stopPropagation(){let e=this;if(!e.isStoped){let{originalEvent:t}=e;t&&t.stopPropagation(),e.isStoped=!0}return e}prevent(){return this.preventDefault()}stop(){return this.stopPropagation()}};W$1.PHASE_CURRENT=0,W$1.PHASE_UPWARD=1,W$1.PHASE_DOWNWARD=-1;var V$1=W$1,H$1={};function L$2(e,t){return null!=e&&e.toString?e.toString():void 0!==t?t:B$2}function _t(e,t,r){return Z$1(r)?t===r?B$2:e.slice(t,r):e.slice(t)}function Lt(e,t,r){return e.indexOf(t,void 0!==r?r:0)}function It(e,t){return Lt(e,t)>=0}U$1(H$1,{clear:()=>Er,copy:()=>Y$1,diff:()=>te$1,each:()=>y$3,extend:()=>Ct,falsy:()=>hr,get:()=>xr,has:()=>Tr,keys:()=>Mt,merge:()=>gr,param:()=>dr,set:()=>Sr,sort:()=>mr,toArray:()=>Nr,update:()=>ee$1});var Pt={};function Ft(e,t){let r=Pt.hasOwnProperty(e)?Pt[e]:Pt[e]=e.split(J$1);for(let e=0,i=r.length-1;e<=i&&!1!==t(r[e],e===i);e++);}function et(e){return void 0!==e}function Mt(e){return et(e)?Object.keys(e):[]}function fr(e,t){return e.length-t.length}function lr(e,t){return t.length-e.length}function mr(e,t){return Mt(e).sort(t?lr:fr)}function y$3(e,t){for(let r in e)if(!1===t(e[r],r))break}function Er(e){y$3(e,(function(t,r){delete e[r]}))}function Zt(e,t){return S$3(e)?S$3(t)?(y$3(t,(function(t,r){e[r]=t})),e):e:t}function Ct(e,t,r){return Zt(Zt(e,t),r)}function gr(e,t){return e&&t?Ct(Ct({},e),t):e||t}function Y$1(e,t){let r=e;return N(e)?t?(r=[],d$3(e,(function(e,i){r[i]=Y$1(e,t)}))):r=e.slice():S$3(e)&&(r={},y$3(e,(function(e,i){r[i]=t?Y$1(e,t):e}))),r}function xr(e,t,r){let i;return Ft(t,(function(t,r){if(null==e)return i=void 0,!1;{let s=e[t];r?i=void 0!==s?s:void 0:e=s}})),void 0===i&&(i=r),i}function Sr(e,t,r,i){Ft(t,(function(t,s){if(s)e[t]=r;else if(e[t])e=e[t];else{if(!i)return!1;e=e[t]={}}}))}function Tr(e,t){return void 0!==e[t]}function hr(e){return!S$3(e)||N(e)||!Mt(e).length}function te$1(e,t){let r=[];return y$3(e,((e,i)=>{N(e)||tt(e)?(null==t[i]||te$1(e,t[i]).length>0)&&r.push(i):e!==t[i]&&r.push(i)})),r}function dr(e){let t=[],r=(e,r)=>{r=h$2(r)?r():null==r?"":r,t[t.length]=encodeURIComponent(e)+"="+encodeURIComponent(r)};return(N(e)||tt(e))&&(N(e)?d$3(e,((e,t)=>{r(t,e)})):y$3(e,((e,t)=>{r(t,e)}))),t.join("&").replace(/%20/g,"+")}function Nr(e){let t=[];return y$3(e,(e=>{t.push(e)})),t}function ee$1(e,t){if(S$3(e)&&S$3(t))return y$3(t,((r,i)=>{S$3(r)&&S$3(e[i])?ee$1(e[i],r):e[i]=t[i]})),e}var br=1,Rr=2,ne$1=3,re$1=5,G$1=typeof console!==P$2?console:null,Or=/yox/.test(L$2(Q$1))?Rr:ne$1,Wt=j$1&&/edge|msie|trident/i.test(j$1.navigator.userAgent)?B$2:"%c",yr=G$1?Wt?function(e,t,r,i){i?G$1.log(Wt+e,r,t,i):G$1.log(Wt+e,r,t)}:function(e,t,r){r?G$1.log(e,t,r):G$1.log(e,t)}:Q$1;function oe$1(){if(q$2){let e=q$2.YOX_LOG_LEVEL;if(e>=br&&e<=re$1)return e}return Or}function Ar(e){return`background-color:${e};border-radius:12px;color:#fff;font-size:10px;padding:3px 6px;`}function kt(e,t){oe$1()<=ne$1&&yr(t||"bjy warn",e,Ar("#f90"))}function se$1(e,t){if(oe$1()<=re$1)throw new Error(`[${t||"bjy fatal"}]: ${e}`)}var $$1=class{constructor(e){this.ns=e||!1,this.listeners={}}fire(e,t,r){let i=this,s=b$3(e)?i.parse(e):e,o=i.listeners[s.type],n=!0;if(o){o=Y$1(o);let e=t&&t[0]instanceof V$1?t[0]:void 0;d$3(o,(function(a){if(!Jt(s.ns,a,!0)||!vt(o,a)||r&&!r(s,t,a))return;e&&(e.listener=a.fn);let u=C$3(a.fn,a.ctx,t);return e&&(e.listener=void 0),a.num=a.num?a.num+1:1,a.num===a.max&&i.off(s,a.fn),e&&(!1===u?e.prevent().stop():e.isStoped&&(u=!1)),!1===u?n=!1:void 0}))}return n}on(e,t){let r=this,i=r.listeners,s=h$2(t)?{fn:t}:t;if(S$3(s)&&h$2(s.fn)){let t=b$3(e)?r.parse(e):e;s.ns=t.ns,Dt(i[t.type]||(i[t.type]=[]),s)}else"development"===process.env.NODE_ENV&&se$1('emitter.on(types, listener) invoke failed:\n\n"listener" is expected to be a Function or an EmitterOptions.\n');return this}one(e,t){return h$2(t)?t={fn:t,max:1}:t.max=1,this.on(e,t)}off(e,t){let r=this,i=r.listeners;if(e){let s=b$3(e)?r.parse(e):e,o=s.type,n=s.ns,a=ie$1(t),u=function(e,t){d$3(e,(function(t,r){a(t)&&e.splice(r,1)}),!0),e.length||delete i[t]};o?i[o]&&u(i[o],o):n&&y$3(i,(function(e,t){d$3(e,(function(t,r){Jt(n,t)&&e.splice(r,1)}),!0),e.length||delete i[t]})),"development"===process.env.NODE_ENV&&arguments.length>1&&null==t&&kt(`emitter.off(type, listener) is invoked, but "listener" is ${t}.`)}else r.listeners={},"development"===process.env.NODE_ENV&&arguments.length>0&&kt(`emitter.off(type) is invoked, but "type" is ${e}.`)}has(e,t){let r=this.listeners,i=b$3(e)?this.parse(e):e,s=i.type,o=i.ns,n=!0,a=ie$1(t);return s?r[s]&&function(e){d$3(e,(function(e){if(a(e))return n=!1}))}(r[s]):o&&y$3(r,(function(e){return d$3(e,(function(e){if(Jt(o,e))return n=!1})),n})),!n}parse(e){let t={type:e,ns:B$2};if(this.ns){let r=Lt(e,J$1);r>=0&&(t.type=_t(e,0,r),t.ns=_t(e,r+1))}return t}},nt;function Br(){return!0}function ie$1(e){return h$2(e)?function(t){return e===t.fn}:Br}function Jt(e,t,r){let{ns:i}=t;return i&&e?i===e:!!r}function jt(){return Date.now()}function ce$1(e,t){return Ut(e)?+e:void 0!==t?t:0}function Vt(e){return h$2(e)&&It(L$2(e),"[native code]")}typeof setImmediate===F$2&&Vt(setImmediate)&&(nt=setImmediate),nt=typeof MessageChannel===F$2&&Vt(MessageChannel)?function(e){let t=new MessageChannel;t.port1.onmessage=e,t.port2.postMessage(1)}:setTimeout;var ae$1=nt;void 0===global$1.TYPED_ARRAY_SUPPORT||global$1.TYPED_ARRAY_SUPPORT;var Buffer$2=require$$0__default.default.Buffer,toArraybuffer=function(e){if(e instanceof Uint8Array){if(0===e.byteOffset&&e.byteLength===e.buffer.byteLength)return e.buffer;if("function"==typeof e.buffer.slice)return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}if(Buffer$2.isBuffer(e)){for(var t=new Uint8Array(e.length),r=e.length,i=0;i<r;i++)t[i]=e[i];return t.buffer}throw new Error("Argument must be a Buffer")},jsbn={exports:{}};!function(e,t){(function(){var t;function r(e,t,r){null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function i(){return new r(null)}var s="undefined"!=typeof navigator;s&&"Microsoft Internet Explorer"==navigator.appName?(r.prototype.am=function(e,t,r,i,s,o){for(var n=32767&t,a=t>>15;--o>=0;){var u=32767&this[e],l=this[e++]>>15,c=a*u+l*n;s=((u=n*u+((32767&c)<<15)+r[i]+(1073741823&s))>>>30)+(c>>>15)+a*l+(s>>>30),r[i++]=1073741823&u}return s},t=30):s&&"Netscape"!=navigator.appName?(r.prototype.am=function(e,t,r,i,s,o){for(;--o>=0;){var n=t*this[e++]+r[i]+s;s=Math.floor(n/67108864),r[i++]=67108863&n}return s},t=26):(r.prototype.am=function(e,t,r,i,s,o){for(var n=16383&t,a=t>>14;--o>=0;){var u=16383&this[e],l=this[e++]>>14,c=a*u+l*n;s=((u=n*u+((16383&c)<<14)+r[i]+s)>>28)+(c>>14)+a*l,r[i++]=268435455&u}return s},t=28),r.prototype.DB=t,r.prototype.DM=(1<<t)-1,r.prototype.DV=1<<t;r.prototype.FV=Math.pow(2,52),r.prototype.F1=52-t,r.prototype.F2=2*t-52;var o,n,a=new Array;for(o="0".charCodeAt(0),n=0;n<=9;++n)a[o++]=n;for(o="a".charCodeAt(0),n=10;n<36;++n)a[o++]=n;for(o="A".charCodeAt(0),n=10;n<36;++n)a[o++]=n;function u(e){return"0123456789abcdefghijklmnopqrstuvwxyz".charAt(e)}function l(e,t){var r=a[e.charCodeAt(t)];return null==r?-1:r}function c(e){var t=i();return t.fromInt(e),t}function d(e){var t,r=1;return 0!=(t=e>>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function h(e){this.m=e}function m(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function p(e,t){return e&t}function f(e,t){return e|t}function g(e,t){return e^t}function v(e,t){return e&~t}function y(e){if(0==e)return-1;var t=0;return 0==(65535&e)&&(e>>=16,t+=16),0==(255&e)&&(e>>=8,t+=8),0==(15&e)&&(e>>=4,t+=4),0==(3&e)&&(e>>=2,t+=2),0==(1&e)&&++t,t}function b(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function S(){}function _(e){return e}function E(e){this.r2=i(),this.q3=i(),r.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}h.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},h.prototype.revert=function(e){return e},h.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},h.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},h.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},m.prototype.convert=function(e){var t=i();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(r.ZERO)>0&&this.m.subTo(t,t),t},m.prototype.revert=function(e){var t=i();return e.copyTo(t),this.reduce(t),t},m.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=32767&e[t],i=r*this.mpl+((r*this.mph+(e[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(e[r=t+this.m.t]+=this.m.am(0,i,e,t,0,this.m.t);e[r]>=e.DV;)e[r]-=e.DV,e[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},m.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},m.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},r.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},r.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},r.prototype.fromString=function(e,t){var i;if(16==t)i=4;else if(8==t)i=3;else if(256==t)i=8;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)return void this.fromRadix(e,t);i=2}this.t=0,this.s=0;for(var s=e.length,o=!1,n=0;--s>=0;){var a=8==i?255&e[s]:l(e,s);a<0?"-"==e.charAt(s)&&(o=!0):(o=!1,0==n?this[this.t++]=a:n+i>this.DB?(this[this.t-1]|=(a&(1<<this.DB-n)-1)<<n,this[this.t++]=a>>this.DB-n):this[this.t-1]|=a<<n,(n+=i)>=this.DB&&(n-=this.DB))}8==i&&0!=(128&e[0])&&(this.s=-1,n>0&&(this[this.t-1]|=(1<<this.DB-n)-1<<n)),this.clamp(),o&&r.ZERO.subTo(this,this)},r.prototype.clamp=function(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t},r.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t[r+e]=this[r];for(r=e-1;r>=0;--r)t[r]=0;t.t=this.t+e,t.s=this.s},r.prototype.drShiftTo=function(e,t){for(var r=e;r<this.t;++r)t[r-e]=this[r];t.t=Math.max(this.t-e,0),t.s=this.s},r.prototype.lShiftTo=function(e,t){var r,i=e%this.DB,s=this.DB-i,o=(1<<s)-1,n=Math.floor(e/this.DB),a=this.s<<i&this.DM;for(r=this.t-1;r>=0;--r)t[r+n+1]=this[r]>>s|a,a=(this[r]&o)<<i;for(r=n-1;r>=0;--r)t[r]=0;t[n]=a,t.t=this.t+n+1,t.s=this.s,t.clamp()},r.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var i=e%this.DB,s=this.DB-i,o=(1<<i)-1;t[0]=this[r]>>i;for(var n=r+1;n<this.t;++n)t[n-r-1]|=(this[n]&o)<<s,t[n-r]=this[n]>>i;i>0&&(t[this.t-r-1]|=(this.s&o)<<s),t.t=this.t-r,t.clamp()}},r.prototype.subTo=function(e,t){for(var r=0,i=0,s=Math.min(e.t,this.t);r<s;)i+=this[r]-e[r],t[r++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i-=e.s;r<this.t;)i+=this[r],t[r++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;r<e.t;)i-=e[r],t[r++]=i&this.DM,i>>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[r++]=this.DV+i:i>0&&(t[r++]=i),t.t=r,t.clamp()},r.prototype.multiplyTo=function(e,t){var i=this.abs(),s=e.abs(),o=i.t;for(t.t=o+s.t;--o>=0;)t[o]=0;for(o=0;o<s.t;++o)t[o+i.t]=i.am(0,s[o],t,o,0,i.t);t.s=0,t.clamp(),this.s!=e.s&&r.ZERO.subTo(t,t)},r.prototype.squareTo=function(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e[r]=0;for(r=0;r<t.t-1;++r){var i=t.am(r,t[r],e,2*r,0,1);(e[r+t.t]+=t.am(r+1,2*t[r],e,2*r+1,i,t.t-r-1))>=t.DV&&(e[r+t.t]-=t.DV,e[r+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(r,t[r],e,2*r,0,1)),e.s=0,e.clamp()},r.prototype.divRemTo=function(e,t,s){var o=e.abs();if(!(o.t<=0)){var n=this.abs();if(n.t<o.t)return null!=t&&t.fromInt(0),void(null!=s&&this.copyTo(s));null==s&&(s=i());var a=i(),u=this.s,l=e.s,c=this.DB-d(o[o.t-1]);c>0?(o.lShiftTo(c,a),n.lShiftTo(c,s)):(o.copyTo(a),n.copyTo(s));var h=a.t,m=a[h-1];if(0!=m){var p=m*(1<<this.F1)+(h>1?a[h-2]>>this.F2:0),f=this.FV/p,g=(1<<this.F1)/p,v=1<<this.F2,y=s.t,b=y-h,S=null==t?i():t;for(a.dlShiftTo(b,S),s.compareTo(S)>=0&&(s[s.t++]=1,s.subTo(S,s)),r.ONE.dlShiftTo(h,S),S.subTo(a,a);a.t<h;)a[a.t++]=0;for(;--b>=0;){var _=s[--y]==m?this.DM:Math.floor(s[y]*f+(s[y-1]+v)*g);if((s[y]+=a.am(0,_,s,b,0,h))<_)for(a.dlShiftTo(b,S),s.subTo(S,s);s[y]<--_;)s.subTo(S,s)}null!=t&&(s.drShiftTo(h,t),u!=l&&r.ZERO.subTo(t,t)),s.t=h,s.clamp(),c>0&&s.rShiftTo(c,s),u<0&&r.ZERO.subTo(s,s)}}},r.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},r.prototype.isEven=function(){return 0==(this.t>0?1&this[0]:this.s)},r.prototype.exp=function(e,t){if(e>4294967295||e<1)return r.ONE;var s=i(),o=i(),n=t.convert(this),a=d(e)-1;for(n.copyTo(s);--a>=0;)if(t.sqrTo(s,o),(e&1<<a)>0)t.mulTo(o,n,s);else{var u=s;s=o,o=u}return t.revert(s)},r.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,i=(1<<t)-1,s=!1,o="",n=this.t,a=this.DB-n*this.DB%t;if(n-- >0)for(a<this.DB&&(r=this[n]>>a)>0&&(s=!0,o=u(r));n>=0;)a<t?(r=(this[n]&(1<<a)-1)<<t-a,r|=this[--n]>>(a+=this.DB-t)):(r=this[n]>>(a-=t)&i,a<=0&&(a+=this.DB,--n)),r>0&&(s=!0),s&&(o+=u(r));return s?o:"0"},r.prototype.negate=function(){var e=i();return r.ZERO.subTo(this,e),e},r.prototype.abs=function(){return this.s<0?this.negate():this},r.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this[r]-e[r]))return t;return 0},r.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+d(this[this.t-1]^this.s&this.DM)},r.prototype.mod=function(e){var t=i();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(r.ZERO)>0&&e.subTo(t,t),t},r.prototype.modPowInt=function(e,t){var r;return r=e<256||t.isEven()?new h(t):new m(t),this.exp(e,r)},r.ZERO=c(0),r.ONE=c(1),S.prototype.convert=_,S.prototype.revert=_,S.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r)},S.prototype.sqrTo=function(e,t){e.squareTo(t)},E.prototype.convert=function(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=i();return e.copyTo(t),this.reduce(t),t},E.prototype.revert=function(e){return e},E.prototype.reduce=function(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)},E.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},E.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)};var $,I,A,M=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],R=(1<<26)/M[M.length-1];function T(){!function(e){I[A++]^=255&e,I[A++]^=e>>8&255,I[A++]^=e>>16&255,I[A++]^=e>>24&255,A>=U&&(A-=U)}((new Date).getTime())}if(r.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},r.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),s=c(r),o=i(),n=i(),a="";for(this.divRemTo(s,o,n);o.signum()>0;)a=(r+n.intValue()).toString(e).substr(1)+a,o.divRemTo(s,o,n);return n.intValue().toString(e)+a},r.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var i=this.chunkSize(t),s=Math.pow(t,i),o=!1,n=0,a=0,u=0;u<e.length;++u){var c=l(e,u);c<0?"-"==e.charAt(u)&&0==this.signum()&&(o=!0):(a=t*a+c,++n>=i&&(this.dMultiply(s),this.dAddOffset(a,0),n=0,a=0))}n>0&&(this.dMultiply(Math.pow(t,n)),this.dAddOffset(a,0)),o&&r.ZERO.subTo(this,this)},r.prototype.fromNumber=function(e,t,i){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,i),this.testBit(e-1)||this.bitwiseTo(r.ONE.shiftLeft(e-1),f,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(r.ONE.shiftLeft(e-1),this);else{var s=new Array,o=7&e;s.length=1+(e>>3),t.nextBytes(s),o>0?s[0]&=(1<<o)-1:s[0]=0,this.fromString(s,256)}},r.prototype.bitwiseTo=function(e,t,r){var i,s,o=Math.min(e.t,this.t);for(i=0;i<o;++i)r[i]=t(this[i],e[i]);if(e.t<this.t){for(s=e.s&this.DM,i=o;i<this.t;++i)r[i]=t(this[i],s);r.t=this.t}else{for(s=this.s&this.DM,i=o;i<e.t;++i)r[i]=t(s,e[i]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()},r.prototype.changeBit=function(e,t){var i=r.ONE.shiftLeft(e);return this.bitwiseTo(i,t,i),i},r.prototype.addTo=function(e,t){for(var r=0,i=0,s=Math.min(e.t,this.t);r<s;)i+=this[r]+e[r],t[r++]=i&this.DM,i>>=this.DB;if(e.t<this.t){for(i+=e.s;r<this.t;)i+=this[r],t[r++]=i&this.DM,i>>=this.DB;i+=this.s}else{for(i+=this.s;r<e.t;)i+=e[r],t[r++]=i&this.DM,i>>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[r++]=i:i<-1&&(t[r++]=this.DV+i),t.t=r,t.clamp()},r.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},r.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},r.prototype.multiplyLowerTo=function(e,t,r){var i,s=Math.min(this.t+e.t,t);for(r.s=0,r.t=s;s>0;)r[--s]=0;for(i=r.t-this.t;s<i;++s)r[s+this.t]=this.am(0,e[s],r,s,0,this.t);for(i=Math.min(e.t,t);s<i;++s)this.am(0,e[s],r,s,0,t-s);r.clamp()},r.prototype.multiplyUpperTo=function(e,t,r){--t;var i=r.t=this.t+e.t-t;for(r.s=0;--i>=0;)r[i]=0;for(i=Math.max(t-this.t,0);i<e.t;++i)r[this.t+i-t]=this.am(t-i,e[i],r,0,0,this.t+i-t);r.clamp(),r.drShiftTo(1,r)},r.prototype.modInt=function(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(0==t)r=this[0]%e;else for(var i=this.t-1;i>=0;--i)r=(t*r+this[i])%e;return r},r.prototype.millerRabin=function(e){var t=this.subtract(r.ONE),s=t.getLowestSetBit();if(s<=0)return!1;var o=t.shiftRight(s);(e=e+1>>1)>M.length&&(e=M.length);for(var n=i(),a=0;a<e;++a){n.fromInt(M[Math.floor(Math.random()*M.length)]);var u=n.modPow(o,this);if(0!=u.compareTo(r.ONE)&&0!=u.compareTo(t)){for(var l=1;l++<s&&0!=u.compareTo(t);)if(0==(u=u.modPowInt(2,this)).compareTo(r.ONE))return!1;if(0!=u.compareTo(t))return!1}}return!0},r.prototype.clone=function(){var e=i();return this.copyTo(e),e},r.prototype.intValue=function(){if(this.s<0){if(1==this.t)return this[0]-this.DV;if(0==this.t)return-1}else{if(1==this.t)return this[0];if(0==this.t)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},r.prototype.byteValue=function(){return 0==this.t?this.s:this[0]<<24>>24},r.prototype.shortValue=function(){return 0==this.t?this.s:this[0]<<16>>16},r.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},r.prototype.toByteArray=function(){var e=this.t,t=new Array;t[0]=this.s;var r,i=this.DB-e*this.DB%8,s=0;if(e-- >0)for(i<this.DB&&(r=this[e]>>i)!=(this.s&this.DM)>>i&&(t[s++]=r|this.s<<this.DB-i);e>=0;)i<8?(r=(this[e]&(1<<i)-1)<<8-i,r|=this[--e]>>(i+=this.DB-8)):(r=this[e]>>(i-=8)&255,i<=0&&(i+=this.DB,--e)),0!=(128&r)&&(r|=-256),0==s&&(128&this.s)!=(128&r)&&++s,(s>0||r!=this.s)&&(t[s++]=r);return t},r.prototype.equals=function(e){return 0==this.compareTo(e)},r.prototype.min=function(e){return this.compareTo(e)<0?this:e},r.prototype.max=function(e){return this.compareTo(e)>0?this:e},r.prototype.and=function(e){var t=i();return this.bitwiseTo(e,p,t),t},r.prototype.or=function(e){var t=i();return this.bitwiseTo(e,f,t),t},r.prototype.xor=function(e){var t=i();return this.bitwiseTo(e,g,t),t},r.prototype.andNot=function(e){var t=i();return this.bitwiseTo(e,v,t),t},r.prototype.not=function(){for(var e=i(),t=0;t<this.t;++t)e[t]=this.DM&~this[t];return e.t=this.t,e.s=~this.s,e},r.prototype.shiftLeft=function(e){var t=i();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t},r.prototype.shiftRight=function(e){var t=i();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t},r.prototype.getLowestSetBit=function(){for(var e=0;e<this.t;++e)if(0!=this[e])return e*this.DB+y(this[e]);return this.s<0?this.t*this.DB:-1},r.prototype.bitCount=function(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=b(this[r]^t);return e},r.prototype.testBit=function(e){var t=Math.floor(e/this.DB);return t>=this.t?0!=this.s:0!=(this[t]&1<<e%this.DB)},r.prototype.setBit=function(e){return this.changeBit(e,f)},r.prototype.clearBit=function(e){return this.changeBit(e,v)},r.prototype.flipBit=function(e){return this.changeBit(e,g)},r.prototype.add=function(e){var t=i();return this.addTo(e,t),t},r.prototype.subtract=function(e){var t=i();return this.subTo(e,t),t},r.prototype.multiply=function(e){var t=i();return this.multiplyTo(e,t),t},r.prototype.divide=function(e){var t=i();return this.divRemTo(e,t,null),t},r.prototype.remainder=function(e){var t=i();return this.divRemTo(e,null,t),t},r.prototype.divideAndRemainder=function(e){var t=i(),r=i();return this.divRemTo(e,t,r),new Array(t,r)},r.prototype.modPow=function(e,t){var r,s,o=e.bitLength(),n=c(1);if(o<=0)return n;r=o<18?1:o<48?3:o<144?4:o<768?5:6,s=o<8?new h(t):t.isEven()?new E(t):new m(t);var a=new Array,u=3,l=r-1,p=(1<<r)-1;if(a[1]=s.convert(this),r>1){var f=i();for(s.sqrTo(a[1],f);u<=p;)a[u]=i(),s.mulTo(f,a[u-2],a[u]),u+=2}var g,v,y=e.t-1,b=!0,S=i();for(o=d(e[y])-1;y>=0;){for(o>=l?g=e[y]>>o-l&p:(g=(e[y]&(1<<o+1)-1)<<l-o,y>0&&(g|=e[y-1]>>this.DB+o-l)),u=r;0==(1&g);)g>>=1,--u;if((o-=u)<0&&(o+=this.DB,--y),b)a[g].copyTo(n),b=!1;else{for(;u>1;)s.sqrTo(n,S),s.sqrTo(S,n),u-=2;u>0?s.sqrTo(n,S):(v=n,n=S,S=v),s.mulTo(S,a[g],n)}for(;y>=0&&0==(e[y]&1<<o);)s.sqrTo(n,S),v=n,n=S,S=v,--o<0&&(o=this.DB-1,--y)}return s.revert(n)},r.prototype.modInverse=function(e){var t=e.isEven();if(this.isEven()&&t||0==e.signum())return r.ZERO;for(var i=e.clone(),s=this.clone(),o=c(1),n=c(0),a=c(0),u=c(1);0!=i.signum();){for(;i.isEven();)i.rShiftTo(1,i),t?(o.isEven()&&n.isEven()||(o.addTo(this,o),n.subTo(e,n)),o.rShiftTo(1,o)):n.isEven()||n.subTo(e,n),n.rShiftTo(1,n);for(;s.isEven();)s.rShiftTo(1,s),t?(a.isEven()&&u.isEven()||(a.addTo(this,a),u.subTo(e,u)),a.rShiftTo(1,a)):u.isEven()||u.subTo(e,u),u.rShiftTo(1,u);i.compareTo(s)>=0?(i.subTo(s,i),t&&o.subTo(a,o),n.subTo(u,n)):(s.subTo(i,s),t&&a.subTo(o,a),u.subTo(n,u))}return 0!=s.compareTo(r.ONE)?r.ZERO:u.compareTo(e)>=0?u.subtract(e):u.signum()<0?(u.addTo(e,u),u.signum()<0?u.add(e):u):u},r.prototype.pow=function(e){return this.exp(e,new S)},r.prototype.gcd=function(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var i=t;t=r,r=i}var s=t.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return t;for(s<o&&(o=s),o>0&&(t.rShiftTo(o,t),r.rShiftTo(o,r));t.signum()>0;)(s=t.getLowestSetBit())>0&&t.rShiftTo(s,t),(s=r.getLowestSetBit())>0&&r.rShiftTo(s,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},r.prototype.isProbablePrime=function(e){var t,r=this.abs();if(1==r.t&&r[0]<=M[M.length-1]){for(t=0;t<M.length;++t)if(r[0]==M[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<M.length;){for(var i=M[t],s=t+1;s<M.length&&i<R;)i*=M[s++];for(i=r.modInt(i);t<s;)if(i%M[t++]==0)return!1}return r.millerRabin(e)},r.prototype.square=function(){var e=i();return this.squareTo(e),e},r.prototype.Barrett=E,null==I){var O;if(I=new Array,A=0,"undefined"!=typeof window&&window.crypto)if(window.crypto.getRandomValues){var C=new Uint8Array(32);for(window.crypto.getRandomValues(C),O=0;O<32;++O)I[A++]=C[O]}else if("Netscape"==navigator.appName&&navigator.appVersion<"5"){var w=window.crypto.random(32);for(O=0;O<w.length;++O)I[A++]=255&w.charCodeAt(O)}for(;A<U;)O=Math.floor(65536*Math.random()),I[A++]=O>>>8,I[A++]=255&O;A=0,T()}function B(){if(null==$){for(T(),($=new L).init(I),A=0;A<I.length;++A)I[A]=0;A=0}return $.next()}function P(){}function L(){this.i=0,this.j=0,this.S=new Array}P.prototype.nextBytes=function(e){var t;for(t=0;t<e.length;++t)e[t]=B()},L.prototype.init=function(e){var t,r,i;for(t=0;t<256;++t)this.S[t]=t;for(r=0,t=0;t<256;++t)r=r+this.S[t]+e[t%e.length]&255,i=this.S[t],this.S[t]=this.S[r],this.S[r]=i;this.i=0,this.j=0},L.prototype.next=function(){var e;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,e=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=e,this.S[e+this.S[this.i]&255]};var U=256;e.exports={default:r,BigInteger:r,SecureRandom:P}}).call(commonjsGlobal)}(jsbn);var i=jsbn.exports.BigInteger.prototype.Barrett;function o$2(e,t){this.x=t,this.q=e}function u$1(e,t,r,i){this.curve=e,this.x=t,this.y=r,this.z=null==i?jsbn.exports.BigInteger.ONE:i,this.zinv=null}function s$1(e,t,r){this.q=e,this.a=this.fromBigInteger(t),this.b=this.fromBigInteger(r),this.infinity=new u$1(this,null,null),this.reducer=new i(this.q)}o$2.prototype.equals=function(e){return e==this||this.q.equals(e.q)&&this.x.equals(e.x)},o$2.prototype.toBigInteger=function(){return this.x},o$2.prototype.negate=function(){return new o$2(this.q,this.x.negate().mod(this.q))},o$2.prototype.add=function(e){return new o$2(this.q,this.x.add(e.toBigInteger()).mod(this.q))},o$2.prototype.subtract=function(e){return new o$2(this.q,this.x.subtract(e.toBigInteger()).mod(this.q))},o$2.prototype.multiply=function(e){return new o$2(this.q,this.x.multiply(e.toBigInteger()).mod(this.q))},o$2.prototype.square=function(){return new o$2(this.q,this.x.square().mod(this.q))},o$2.prototype.divide=function(e){return new o$2(this.q,this.x.multiply(e.toBigInteger().modInverse(this.q)).mod(this.q))},u$1.prototype.getX=function(){null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q));var e=this.x.toBigInteger().multiply(this.zinv);return this.curve.reduce(e),this.curve.fromBigInteger(e)},u$1.prototype.getY=function(){null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q));var e=this.y.toBigInteger().multiply(this.zinv);return this.curve.reduce(e),this.curve.fromBigInteger(e)},u$1.prototype.equals=function(e){return e==this||(this.isInfinity()?e.isInfinity():e.isInfinity()?this.isInfinity():!!e.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(e.z)).mod(this.curve.q).equals(jsbn.exports.BigInteger.ZERO)&&e.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(e.z)).mod(this.curve.q).equals(jsbn.exports.BigInteger.ZERO))},u$1.prototype.isInfinity=function(){return null==this.x&&null==this.y||this.z.equals(jsbn.exports.BigInteger.ZERO)&&!this.y.toBigInteger().equals(jsbn.exports.BigInteger.ZERO)},u$1.prototype.negate=function(){return new u$1(this.curve,this.x,this.y.negate(),this.z)},u$1.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(e.z)).mod(this.curve.q),r=e.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(e.z)).mod(this.curve.q);if(jsbn.exports.BigInteger.ZERO.equals(r))return jsbn.exports.BigInteger.ZERO.equals(t)?this.twice():this.curve.getInfinity();var i=new jsbn.exports.BigInteger("3"),s=this.x.toBigInteger(),o=this.y.toBigInteger(),n=(e.x.toBigInteger(),e.y.toBigInteger(),r.square()),a=n.multiply(r),u=s.multiply(n),l=t.square().multiply(this.z),c=l.subtract(u.shiftLeft(1)).multiply(e.z).subtract(a).multiply(r).mod(this.curve.q),d=u.multiply(i).multiply(t).subtract(o.multiply(a)).subtract(l.multiply(t)).multiply(e.z).add(t.multiply(a)).mod(this.curve.q),h=a.multiply(this.z).multiply(e.z).mod(this.curve.q);return new u$1(this.curve,this.curve.fromBigInteger(c),this.curve.fromBigInteger(d),h)},u$1.prototype.twice=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var e=new jsbn.exports.BigInteger("3"),t=this.x.toBigInteger(),r=this.y.toBigInteger(),i=r.multiply(this.z),s=i.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),n=t.square().multiply(e);jsbn.exports.BigInteger.ZERO.equals(o)||(n=n.add(this.z.square().multiply(o)));var a=(n=n.mod(this.curve.q)).square().subtract(t.shiftLeft(3).multiply(s)).shiftLeft(1).multiply(i).mod(this.curve.q),u=n.multiply(e).multiply(t).subtract(s.shiftLeft(1)).shiftLeft(2).multiply(s).subtract(n.square().multiply(n)).mod(this.curve.q),l=i.square().multiply(i).shiftLeft(3).mod(this.curve.q);return new u$1(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),l)},u$1.prototype.multiply=function(e){if(this.isInfinity())return this;if(0==e.signum())return this.curve.getInfinity();var t,r=e,i=r.multiply(new jsbn.exports.BigInteger("3")),s=this.negate(),o=this;for(t=i.bitLength()-2;t>0;--t){o=o.twice();var n=i.testBit(t);n!=r.testBit(t)&&(o=o.add(n?this:s))}return o},u$1.prototype.multiplyTwo=function(e,t,r){var i;i=e.bitLength()>r.bitLength()?e.bitLength()-1:r.bitLength()-1;for(var s=this.curve.getInfinity(),o=this.add(t);i>=0;)s=s.twice(),e.testBit(i)?s=r.testBit(i)?s.add(o):s.add(this):r.testBit(i)&&(s=s.add(t)),--i;return s},s$1.prototype.getQ=function(){return this.q},s$1.prototype.getA=function(){return this.a},s$1.prototype.getB=function(){return this.b},s$1.prototype.equals=function(e){return e==this||this.q.equals(e.q)&&this.a.equals(e.a)&&this.b.equals(e.b)},s$1.prototype.getInfinity=function(){return this.infinity},s$1.prototype.fromBigInteger=function(e){return new o$2(this.q,e)},s$1.prototype.reduce=function(e){this.reducer.reduce(e)},s$1.prototype.decodePointHex=function(e){switch(parseInt(e.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:default:return null;case 4:case 6:case 7:var t=(e.length-2)/2,r=e.substr(2,t),i=e.substr(t+2,t);return new u$1(this,this.fromBigInteger(new jsbn.exports.BigInteger(r,16)),this.fromBigInteger(new jsbn.exports.BigInteger(i,16)))}},s$1.prototype.encodePointHex=function(e){if(e.isInfinity())return"00";var t=e.getX().toBigInteger().toString(16),r=e.getY().toBigInteger().toString(16),i=this.getQ().toString(16).length;for(i%2!=0&&i++;t.length<i;)t="0"+t;for(;r.length<i;)r="0"+r;return"04"+t+r};var f$2=function(e,t){return e<<(t%=32)|e>>>32-t},a$2=function(e,t){var r=t-e.length;return(r>0?"0".repeat(r):"")+e},h$1=function(e){return e<16?2043430169:2055708042},l$1=function(e,t,r,i){return i<16?e^t^r:e&t|e&r|t&r},c$2=function(e,t,r,i){return i<16?e^t^r:e&t|~e&r},g$1=function(e,t,r){for(var i,s,o,n,a,u=function(e){var t,r=new Array(132);e.forEach((function(e,t){r[t]=e}));for(var i=16;i<68;i++)r[i]=(t=r[i-16]^r[i-9]^f$2(r[i-3],15))^f$2(t,15)^f$2(t,23)^f$2(r[i-13],7)^r[i-6];for(var s=0;s<64;s++)r[s+68]=r[s]^r[s+4];return r}(t),l=e[0],c=e[1],d=e[2],h=e[3],m=e[4],p=e[5],f=e[6],g=e[7],v=0;v<64;v++)s=(i=f$2(f$2(l,12)+m+f$2(h$1(v),v),7))^f$2(l,12),o=l$1(l,c,d,v)+h+s+u[v+68],n=c$2(m,p,f,v)+g+i+u[v],h=d,d=f$2(c,9),c=l,l=o,g=f,f=f$2(p,19),p=m,m=(a=n)^f$2(a,9)^f$2(a,17);return[l^e[0],c^e[1],d^e[2],h^e[3],m^e[4],p^e[5],f^e[6],g^e[7]]},p$2=function(e,t,r){if("string"==typeof e?e=require$$0$1.Buffer.from(e,t||"utf8"):e instanceof ArrayBuffer&&(e=require$$0$1.Buffer.from(e)),!require$$0$1.Buffer.isBuffer(e))throw new TypeError('Expected "string" | "Buffer" | "ArrayBuffer" but received "'+Object.prototype.toString.call(e)+'"');var i,s,o,n,a,u;i=e,s=require$$0$1.Buffer.alloc(1,128),n=require$$0$1.Buffer.alloc(o=(o=i.length%64)>=56?64-o%56-1:56-o-1,0),a=require$$0$1.Buffer.alloc(8),u=8*i.length,a.writeUInt32BE(Math.floor(u/Math.pow(2,32)),0),a.writeUInt32BE(u%Math.pow(2,32),4);for(var l=(e=require$$0$1.Buffer.concat([i,s,n,a],i.length+1+o+8)).length/64,c=new Array(l),d=0;d<l;d++){c[d]=new Array(16);for(var h=0;h<16;h++)c[d][h]=e.readUInt32BE(64*d+4*h)}var m=new Array(l);m[0]=[1937774191,1226093241,388252375,3666478592,2842636476,372324522,3817729613,2969243214];for(var p=0;p<l;p++)m[p+1]=g$1(m[p],c[p]);var f=require$$0$1.Buffer.alloc(32);return m[l].forEach((function(e,t){return f.writeInt32BE(e,4*t)})),r?f.toString(r):toArraybuffer(f)},F$1={__proto__:null,digest:p$2},y$2=new jsbn.exports.SecureRandom,d$2=function(){var e=new s$1(new jsbn.exports.BigInteger("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF",16),new jsbn.exports.BigInteger("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC",16),new jsbn.exports.BigInteger("28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93",16)),t=e.decodePointHex("0432C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0");return{curve:e,G:t,n:new jsbn.exports.BigInteger("FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123",16)}}(),v$1=d$2.curve,B$1=d$2.G,m$1=d$2.n;function I$2(e,t){for(var r=[],i=Math.ceil(t/32),s=t%32,o=1;o<=i;o++){var n=require$$0$1.Buffer.allocUnsafe(4);n.writeUInt32BE(o);var a=p$2(require$$0$1.Buffer.concat([e,n]));r.push(o===i&&s?require$$0$1.Buffer.from(a).slice(0,s):require$$0$1.Buffer.from(a))}return require$$0$1.Buffer.concat(r,t)}var E$2={__proto__:null,constants:{C1C2C3:0,C1C3C2:1,PC:"04"},generateKeyPair:function(){var e=new jsbn.exports.BigInteger(m$1.bitLength(),y$2).mod(m$1.subtract(new jsbn.exports.BigInteger("2"))).add(jsbn.exports.BigInteger.ONE),t=a$2(e.toString(16),64),r=B$1.multiply(e);return{privateKey:t,publicKey:"04"+a$2(r.getX().toBigInteger().toString(16),64)+a$2(r.getY().toBigInteger().toString(16),64)}},encrypt:function(e,t,r){var i=r||{},s=i.mode,o=void 0===s?1:s,n=i.outputEncoding,a=i.pc;if("string"==typeof e?e=require$$0$1.Buffer.from(e,i.inputEncoding||"utf8"):e instanceof ArrayBuffer&&(e=require$$0$1.Buffer.from(e)),!require$$0$1.Buffer.isBuffer(e))throw new TypeError('Expected "string" | "Buffer" | "ArrayBuffer" but received "'+Object.prototype.toString.call(e)+'"');var u=new jsbn.exports.BigInteger(m$1.bitLength(),y$2).mod(m$1.subtract(jsbn.exports.BigInteger.ONE)).add(jsbn.exports.BigInteger.ONE),l=B$1.multiply(u),c=a$2(l.getX().toBigInteger().toString(16),64)+a$2(l.getY().toBigInteger().toString(16),64),d=v$1.decodePointHex(t).multiply(u),h=a$2(d.getX().toBigInteger().toString(16),64),m=a$2(d.getY().toBigInteger().toString(16),64),p=I$2(require$$0$1.Buffer.from(h+m,"hex"),e.length),f=a$2(new jsbn.exports.BigInteger(e.toString("hex"),16).xor(new jsbn.exports.BigInteger(p.toString("hex"),16)).toString(16),2*e.length),g=p$2(h+e.toString("hex")+m,"hex","hex"),v=require$$0$1.Buffer.from((a?"04":"")+(0===o?c+f+g:c+g+f),"hex");return n?v.toString(n):toArraybuffer(v)},decrypt:function(e,t,r){var i=r||{},s=i.mode,o=void 0===s?1:s,n=i.outputEncoding,a=i.pc;if("string"==typeof e?e=require$$0$1.Buffer.from(e,i.inputEncoding):e instanceof ArrayBuffer&&(e=require$$0$1.Buffer.from(e)),!require$$0$1.Buffer.isBuffer(e))throw new TypeError('Expected "string" | "Buffer" | "ArrayBuffer" but received "'+Object.prototype.toString.call(e)+'"');var u=(e=a?e.slice(1):e).slice(0,32).toString("hex"),l=e.slice(32,64).toString("hex"),c=v$1.decodePointHex("04"+u+l).multiply(new jsbn.exports.BigInteger(t,16)),d=a$2(c.getX().toBigInteger().toString(16),64),h=a$2(c.getY().toBigInteger().toString(16),64),m=e.slice(64,96),p=e.slice(96);0===o&&(m=e.slice(e.length-32),p=e.slice(64,e.length-32));var f=I$2(require$$0$1.Buffer.from(d+h,"hex"),p.length),g=new jsbn.exports.BigInteger(p.toString("hex"),16).xor(new jsbn.exports.BigInteger(f.toString("hex"),16)).toString(16),v=p$2(d+g+h,"hex","hex")===m.toString("hex")?require$$0$1.Buffer.from(g,"hex"):require$$0$1.Buffer.alloc(0);return n?v.toString(n):toArraybuffer(v)}},w$1=[[214,144,233,254,204,225,61,183,22,182,20,194,40,251,44,5],[43,103,154,118,42,190,4,195,170,68,19,38,73,134,6,153],[156,66,80,244,145,239,152,122,51,84,11,67,237,207,172,98],[228,179,28,169,201,8,232,149,128,223,148,250,117,143,63,166],[71,7,167,252,243,115,23,186,131,89,60,25,230,133,79,168],[104,107,129,178,113,100,218,139,248,235,15,75,112,86,157,53],[30,36,14,94,99,88,209,162,37,34,124,59,1,33,120,135],[212,0,70,87,159,211,39,82,76,54,2,231,160,196,200,158],[234,191,138,210,64,199,56,181,163,247,242,206,249,97,21,161],[224,174,93,164,155,52,26,85,173,147,50,48,245,140,177,227],[29,246,226,46,130,102,202,96,192,41,35,171,13,83,78,111],[213,219,55,69,222,253,142,47,3,255,106,114,109,108,91,81],[141,27,175,146,187,221,188,127,17,217,92,65,31,16,90,216],[10,193,49,136,165,205,123,189,45,116,208,18,184,229,180,176],[137,105,151,74,12,150,119,126,101,185,241,9,197,110,198,132],[24,240,125,236,58,220,77,32,121,238,95,62,215,203,57,72]],q$1=[2746333894,1453994832,1736282519,2993693404],x$2=[462357,472066609,943670861,1415275113,1886879365,2358483617,2830087869,3301692121,3773296373,4228057617,404694573,876298825,1347903077,1819507329,2291111581,2762715833,3234320085,3705924337,4177462797,337322537,808926789,1280531041,1752135293,2223739545,2695343797,3166948049,3638552301,4110090761,269950501,741554753,1213159005,1684763257],b$2=/^[0-9a-f]{32}$/i,S$2=function(e){return w$1[(4026531840&e)>>>28][(251658240&e)>>>24]<<24|w$1[(15728640&e)>>>20][(983040&e)>>>16]<<16|w$1[(61440&e)>>>12][(3840&e)>>>8]<<8|w$1[(240&e)>>>4][(15&e)>>>0]<<0},A$1=function(e){return(t=S$2(e))^f$2(t,2)^f$2(t,10)^f$2(t,18)^f$2(t,24);var t},z=function(e){var t,r=new Array(36);r[0]=e[0]^q$1[0],r[1]=e[1]^q$1[1],r[2]=e[2]^q$1[2],r[3]=e[3]^q$1[3];for(var i=new Array(32),s=0;s<32;s++)r[s+4]=r[s]^(t=S$2(r[s+1]^r[s+2]^r[s+3]^x$2[s]))^f$2(t,13)^f$2(t,23),i[s]=r[s+4];return i},C$2=function(e,t){for(var r=z(t),i=0;i<32;i++)e[i+4]=e[i]^A$1(e[i+1]^e[i+2]^e[i+3]^r[i]);return[e[35],e[34],e[33],e[32]]},O$1=function(e,t){for(var r=z(t).reverse(),i=0;i<32;i++)e[i+4]=e[i]^A$1(e[i+1]^e[i+2]^e[i+3]^r[i]);return[e[35],e[34],e[33],e[32]]},L$1=function(e){return[e.readInt32BE(0),e.readInt32BE(4),e.readInt32BE(8),e.readInt32BE(12)]},_$1=function(e){for(var t=require$$0$1.Buffer.alloc(16),r=0;r<4;r++)t.writeInt32BE(e[r],4*r);return t},D$1={__proto__:null,constants:{ECB:1,CBC:2},encrypt:function(e,t,r){var i=r||{},s=i.mode,o=i.iv,n=i.outputEncoding;if("string"==typeof e?e=require$$0$1.Buffer.from(e,i.inputEncoding||"utf8"):e instanceof ArrayBuffer&&(e=require$$0$1.Buffer.from(e)),!require$$0$1.Buffer.isBuffer(e))throw new TypeError('Expected "string" | "Buffer" | "ArrayBuffer" but received "'+Object.prototype.toString.call(e)+'"');if(!b$2.test(t))throw new TypeError("Invalid value of cipher `key`");if(t=require$$0$1.Buffer.from(t,"hex"),2===s&&!b$2.test(o))throw new TypeError("Invalid value of `iv` option");return function(e,t,r,i){r&&(r=L$1(r)),t=L$1(t);for(var s=[],o=(e=function(e){var t=16-e.length%16,r=require$$0$1.Buffer.alloc(t,t);return require$$0$1.Buffer.concat([e,r],e.length+t)}(e)).length/16,n=0;n<o;n++)if(r){var a=16*n,u=[r[0]^e.readInt32BE(a),r[1]^e.readInt32BE(a+4),r[2]^e.readInt32BE(a+8),r[3]^e.readInt32BE(a+12)],l=C$2(u,t);s.push(_$1(l)),r=l.slice(0)}else{var c=16*n,d=[e.readInt32BE(c),e.readInt32BE(c+4),e.readInt32BE(c+8),e.readInt32BE(c+12)],h=C$2(d,t);s.push(_$1(h))}var m=require$$0$1.Buffer.concat(s,e.length);return i?m.toString(i):toArraybuffer(m)}(e,t,o=2===s?require$$0$1.Buffer.from(o,"hex"):null,n)},decrypt:function(e,t,r){var i=r||{},s=i.mode,o=i.iv,n=i.outputEncoding;if("string"==typeof e?e=require$$0$1.Buffer.from(e,i.inputEncoding):e instanceof ArrayBuffer&&(e=require$$0$1.Buffer.from(e)),!require$$0$1.Buffer.isBuffer(e))throw new TypeError('Expected "string" | "Buffer" | "ArrayBuffer" but received "'+Object.prototype.toString.call(e)+'"');if(!b$2.test(t))throw new TypeError("Invalid value of cipher `key`");if(t=require$$0$1.Buffer.from(t,"hex"),2===s&&!b$2.test(o))throw new TypeError("Invalid value of `iv` option");return function(e,t,r,i){r&&(r=L$1(r)),t=L$1(t);var s=[],o=e.length/16;if(r)for(var n=o-1;n>=0;n--){var a,u=16*n;a=n>0?[e.readInt32BE(u-16),e.readInt32BE(u-16+4),e.readInt32BE(u-16+8),e.readInt32BE(u-16+12)]:r;var l=[e.readInt32BE(u),e.readInt32BE(u+4),e.readInt32BE(u+8),e.readInt32BE(u+12)],c=O$1(l,t);s.unshift(_$1([c[0]^a[0],c[1]^a[1],c[2]^a[2],c[3]^a[3]]))}else for(var d=0;d<o;d++){var h=16*d,m=[e.readInt32BE(h),e.readInt32BE(h+4),e.readInt32BE(h+8),e.readInt32BE(h+12)],p=O$1(m,t);s.push(_$1(p))}var f=require$$0$1.Buffer.concat(s,e.length-s[s.length-1][15]);return i?f.toString(i):toArraybuffer(f)}(e,t,o=2===s?require$$0$1.Buffer.from(o,"hex"):null,n)}},index_esm=Object.freeze({__proto__:null,SM2:E$2,SM3:F$1,SM4:D$1}),require$$0=getAugmentedNamespace(index_esm);let getRandomValues;const rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&(getRandomValues="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!getRandomValues))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}var REGEX=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function validate(e){return"string"==typeof e&®EX.test(e)}const byteToHex=[];for(let e=0;e<256;++e)byteToHex.push((e+256).toString(16).slice(1));function unsafeStringify(e,t=0){return byteToHex[e[t+0]]+byteToHex[e[t+1]]+byteToHex[e[t+2]]+byteToHex[e[t+3]]+"-"+byteToHex[e[t+4]]+byteToHex[e[t+5]]+"-"+byteToHex[e[t+6]]+byteToHex[e[t+7]]+"-"+byteToHex[e[t+8]]+byteToHex[e[t+9]]+"-"+byteToHex[e[t+10]]+byteToHex[e[t+11]]+byteToHex[e[t+12]]+byteToHex[e[t+13]]+byteToHex[e[t+14]]+byteToHex[e[t+15]]}function stringify(e,t=0){const r=unsafeStringify(e,t);if(!validate(r))throw TypeError("Stringified UUID is invalid");return r}let _nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1(e,t,r){let i=t&&r||0;const s=t||new Array(16);let o=(e=e||{}).node||_nodeId,n=void 0!==e.clockseq?e.clockseq:_clockseq;if(null==o||null==n){const t=e.random||(e.rng||rng)();null==o&&(o=_nodeId=[1|t[0],t[1],t[2],t[3],t[4],t[5]]),null==n&&(n=_clockseq=16383&(t[6]<<8|t[7]))}let a=void 0!==e.msecs?e.msecs:Date.now(),u=void 0!==e.nsecs?e.nsecs:_lastNSecs+1;const l=a-_lastMSecs+(u-_lastNSecs)/1e4;if(l<0&&void 0===e.clockseq&&(n=n+1&16383),(l<0||a>_lastMSecs)&&void 0===e.nsecs&&(u=0),u>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=a,_lastNSecs=u,_clockseq=n,a+=122192928e5;const c=(1e4*(268435455&a)+u)%4294967296;s[i++]=c>>>24&255,s[i++]=c>>>16&255,s[i++]=c>>>8&255,s[i++]=255&c;const d=a/4294967296*1e4&268435455;s[i++]=d>>>8&255,s[i++]=255&d,s[i++]=d>>>24&15|16,s[i++]=d>>>16&255,s[i++]=n>>>8|128,s[i++]=255&n;for(let e=0;e<6;++e)s[i+e]=o[e];return t||unsafeStringify(s)}function parse(e){if(!validate(e))throw TypeError("Invalid UUID");let t;const r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=255&t,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=255&t,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=255&t,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=255&t,r}function stringToBytes(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}const DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function v35(e,t,r){function i(e,i,s,o){var n;if("string"==typeof e&&(e=stringToBytes(e)),"string"==typeof i&&(i=parse(i)),16!==(null===(n=i)||void 0===n?void 0:n.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let a=new Uint8Array(16+e.length);if(a.set(i),a.set(e,i.length),a=r(a),a[6]=15&a[6]|t,a[8]=63&a[8]|128,s){o=o||0;for(let e=0;e<16;++e)s[o+e]=a[e];return s}return unsafeStringify(a)}try{i.name=e}catch(e){}return i.DNS=DNS,i.URL=URL,i}function md5$1(e){if("string"==typeof e){const t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(let r=0;r<t.length;++r)e[r]=t.charCodeAt(r)}return md5ToHexEncodedArray(wordsToMd5(bytesToWords(e),8*e.length))}function md5ToHexEncodedArray(e){const t=[],r=32*e.length,i="0123456789abcdef";for(let s=0;s<r;s+=8){const r=e[s>>5]>>>s%32&255,o=parseInt(i.charAt(r>>>4&15)+i.charAt(15&r),16);t.push(o)}return t}function getOutputLength(e){return 14+(e+64>>>9<<4)+1}function wordsToMd5(e,t){e[t>>5]|=128<<t%32,e[getOutputLength(t)-1]=t;let r=1732584193,i=-271733879,s=-1732584194,o=271733878;for(let t=0;t<e.length;t+=16){const n=r,a=i,u=s,l=o;r=md5ff(r,i,s,o,e[t],7,-680876936),o=md5ff(o,r,i,s,e[t+1],12,-389564586),s=md5ff(s,o,r,i,e[t+2],17,606105819),i=md5ff(i,s,o,r,e[t+3],22,-1044525330),r=md5ff(r,i,s,o,e[t+4],7,-176418897),o=md5ff(o,r,i,s,e[t+5],12,1200080426),s=md5ff(s,o,r,i,e[t+6],17,-1473231341),i=md5ff(i,s,o,r,e[t+7],22,-45705983),r=md5ff(r,i,s,o,e[t+8],7,1770035416),o=md5ff(o,r,i,s,e[t+9],12,-1958414417),s=md5ff(s,o,r,i,e[t+10],17,-42063),i=md5ff(i,s,o,r,e[t+11],22,-1990404162),r=md5ff(r,i,s,o,e[t+12],7,1804603682),o=md5ff(o,r,i,s,e[t+13],12,-40341101),s=md5ff(s,o,r,i,e[t+14],17,-1502002290),i=md5ff(i,s,o,r,e[t+15],22,1236535329),r=md5gg(r,i,s,o,e[t+1],5,-165796510),o=md5gg(o,r,i,s,e[t+6],9,-1069501632),s=md5gg(s,o,r,i,e[t+11],14,643717713),i=md5gg(i,s,o,r,e[t],20,-373897302),r=md5gg(r,i,s,o,e[t+5],5,-701558691),o=md5gg(o,r,i,s,e[t+10],9,38016083),s=md5gg(s,o,r,i,e[t+15],14,-660478335),i=md5gg(i,s,o,r,e[t+4],20,-405537848),r=md5gg(r,i,s,o,e[t+9],5,568446438),o=md5gg(o,r,i,s,e[t+14],9,-1019803690),s=md5gg(s,o,r,i,e[t+3],14,-187363961),i=md5gg(i,s,o,r,e[t+8],20,1163531501),r=md5gg(r,i,s,o,e[t+13],5,-1444681467),o=md5gg(o,r,i,s,e[t+2],9,-51403784),s=md5gg(s,o,r,i,e[t+7],14,1735328473),i=md5gg(i,s,o,r,e[t+12],20,-1926607734),r=md5hh(r,i,s,o,e[t+5],4,-378558),o=md5hh(o,r,i,s,e[t+8],11,-2022574463),s=md5hh(s,o,r,i,e[t+11],16,1839030562),i=md5hh(i,s,o,r,e[t+14],23,-35309556),r=md5hh(r,i,s,o,e[t+1],4,-1530992060),o=md5hh(o,r,i,s,e[t+4],11,1272893353),s=md5hh(s,o,r,i,e[t+7],16,-155497632),i=md5hh(i,s,o,r,e[t+10],23,-1094730640),r=md5hh(r,i,s,o,e[t+13],4,681279174),o=md5hh(o,r,i,s,e[t],11,-358537222),s=md5hh(s,o,r,i,e[t+3],16,-722521979),i=md5hh(i,s,o,r,e[t+6],23,76029189),r=md5hh(r,i,s,o,e[t+9],4,-640364487),o=md5hh(o,r,i,s,e[t+12],11,-421815835),s=md5hh(s,o,r,i,e[t+15],16,530742520),i=md5hh(i,s,o,r,e[t+2],23,-995338651),r=md5ii(r,i,s,o,e[t],6,-198630844),o=md5ii(o,r,i,s,e[t+7],10,1126891415),s=md5ii(s,o,r,i,e[t+14],15,-1416354905),i=md5ii(i,s,o,r,e[t+5],21,-57434055),r=md5ii(r,i,s,o,e[t+12],6,1700485571),o=md5ii(o,r,i,s,e[t+3],10,-1894986606),s=md5ii(s,o,r,i,e[t+10],15,-1051523),i=md5ii(i,s,o,r,e[t+1],21,-2054922799),r=md5ii(r,i,s,o,e[t+8],6,1873313359),o=md5ii(o,r,i,s,e[t+15],10,-30611744),s=md5ii(s,o,r,i,e[t+6],15,-1560198380),i=md5ii(i,s,o,r,e[t+13],21,1309151649),r=md5ii(r,i,s,o,e[t+4],6,-145523070),o=md5ii(o,r,i,s,e[t+11],10,-1120210379),s=md5ii(s,o,r,i,e[t+2],15,718787259),i=md5ii(i,s,o,r,e[t+9],21,-343485551),r=safeAdd(r,n),i=safeAdd(i,a),s=safeAdd(s,u),o=safeAdd(o,l)}return[r,i,s,o]}function bytesToWords(e){if(0===e.length)return[];const t=8*e.length,r=new Uint32Array(getOutputLength(t));for(let i=0;i<t;i+=8)r[i>>5]|=(255&e[i/8])<<i%32;return r}function safeAdd(e,t){const r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r}function bitRotateLeft(e,t){return e<<t|e>>>32-t}function md5cmn(e,t,r,i,s,o){return safeAdd(bitRotateLeft(safeAdd(safeAdd(t,e),safeAdd(i,o)),s),r)}function md5ff(e,t,r,i,s,o,n){return md5cmn(t&r|~t&i,e,t,s,o,n)}function md5gg(e,t,r,i,s,o,n){return md5cmn(t&i|r&~i,e,t,s,o,n)}function md5hh(e,t,r,i,s,o,n){return md5cmn(t^r^i,e,t,s,o,n)}function md5ii(e,t,r,i,s,o,n){return md5cmn(r^(t|~i),e,t,s,o,n)}const v3=v35("v3",48,md5$1);var v3$1=v3;const randomUUID="undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto);var native={randomUUID:randomUUID};function v4(e,t,r){if(native.randomUUID&&!t&&!e)return native.randomUUID();const i=(e=e||{}).random||(e.rng||rng)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,t){r=r||0;for(let e=0;e<16;++e)t[r+e]=i[e];return t}return unsafeStringify(i)}function f$1(e,t,r,i){switch(e){case 0:return t&r^~t&i;case 1:case 3:return t^r^i;case 2:return t&r^t&i^r&i}}function ROTL(e,t){return e<<t|e>>>32-t}function sha1(e){const t=[1518500249,1859775393,2400959708,3395469782],r=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){const t=unescape(encodeURIComponent(e));e=[];for(let r=0;r<t.length;++r)e.push(t.charCodeAt(r))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);const i=e.length/4+2,s=Math.ceil(i/16),o=new Array(s);for(let t=0;t<s;++t){const r=new Uint32Array(16);for(let i=0;i<16;++i)r[i]=e[64*t+4*i]<<24|e[64*t+4*i+1]<<16|e[64*t+4*i+2]<<8|e[64*t+4*i+3];o[t]=r}o[s-1][14]=8*(e.length-1)/Math.pow(2,32),o[s-1][14]=Math.floor(o[s-1][14]),o[s-1][15]=8*(e.length-1)&4294967295;for(let e=0;e<s;++e){const i=new Uint32Array(80);for(let t=0;t<16;++t)i[t]=o[e][t];for(let e=16;e<80;++e)i[e]=ROTL(i[e-3]^i[e-8]^i[e-14]^i[e-16],1);let s=r[0],n=r[1],a=r[2],u=r[3],l=r[4];for(let e=0;e<80;++e){const r=Math.floor(e/20),o=ROTL(s,5)+f$1(r,n,a,u)+l+t[r]+i[e]>>>0;l=u,u=a,a=ROTL(n,30)>>>0,n=s,s=o}r[0]=r[0]+s>>>0,r[1]=r[1]+n>>>0,r[2]=r[2]+a>>>0,r[3]=r[3]+u>>>0,r[4]=r[4]+l>>>0}return[r[0]>>24&255,r[0]>>16&255,r[0]>>8&255,255&r[0],r[1]>>24&255,r[1]>>16&255,r[1]>>8&255,255&r[1],r[2]>>24&255,r[2]>>16&255,r[2]>>8&255,255&r[2],r[3]>>24&255,r[3]>>16&255,r[3]>>8&255,255&r[3],r[4]>>24&255,r[4]>>16&255,r[4]>>8&255,255&r[4]]}const v5=v35("v5",80,sha1);var v5$1=v5,nil="00000000-0000-0000-0000-000000000000";function version$1(e){if(!validate(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)}var esmBrowser=Object.freeze({__proto__:null,v1:v1,v3:v3$1,v4:v4,v5:v5$1,NIL:nil,version:version$1,validate:validate,stringify:stringify,parse:parse}),require$$1=getAugmentedNamespace(esmBrowser),m=Object.defineProperty,f=Object.getOwnPropertyDescriptor,K$1=Object.getOwnPropertyNames,h=Object.prototype.hasOwnProperty,C$1=(e,t)=>{for(var r in t)m(e,r,{get:t[r],enumerable:!0})},P$1=(e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of K$1(t))!h.call(e,s)&&s!==r&&m(e,s,{get:()=>t[s],enumerable:!(i=f(t,s))||i.enumerable});return e},b$1=e=>P$1(m({},"__esModule",{value:!0}),e),E$1={};C$1(E$1,{default:()=>I$1});var dist$3=b$1(E$1),o$1=require$$0,S$1=require$$1,l=require$$0__default.default;function x$1(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r="";for(let i=0;i<e;i++){let e=Math.floor(Math.random()*t.length);r+=t.charAt(e)}return r}function c$1(e){return l.Buffer.from(e).toString("hex")}var y$1="boom",u="zdnb",d$1="20231023",s=class{generateClientId(){return(0,S$1.v4)()}setSm2KeyPair(e){this.sm2KeyPair=e}generateSm4KeyPairs(){let e=x$1(16),t=o$1.SM3.digest(e,"utf8","hex").slice(0,16);return console.log("clientRandom",e,t),{enKey:e,deKey:t}}encryptSm2(e){return o$1.SM2.encrypt(e,this.sm2KeyPair,{inputEncoding:"utf8",mode:o$1.SM2.constants.C1C2C3,outputEncoding:"base64"})}encryptSm4(e,t,r){return o$1.SM4.encrypt(e,c$1(t),{mode:o$1.SM4.constants.CBC,iv:c$1(null!=r?r:`${y$1}${u}${d$1}`),inputEncoding:"utf8",outputEncoding:"hex"})}decryptSm4(e,t,r){return o$1.SM4.decrypt(e,c$1(t),{mode:o$1.SM4.constants.CBC,iv:c$1(null!=r?r:`${y$1}${u}${d$1}`),inputEncoding:"hex",outputEncoding:"utf8"})}},g="client-id",p$1="pair-key",a$1=class e{constructor(){if(e.instance)return e.instance;this.boomCrypto=new s,e.instance=this}getClientId(e){let t=localStorage.getItem(g);if(e||!t){let e=this.boomCrypto.generateClientId();localStorage.setItem(g,e)}return localStorage.getItem(g)}setSm2KeyPair(e){return this.boomCrypto.setSm2KeyPair(e)}getPairKey(e){let t=localStorage.getItem(p$1);if(e||!t){let e=this.boomCrypto.generateSm4KeyPairs();localStorage.setItem(p$1,JSON.stringify(e))}return JSON.parse(localStorage.getItem(p$1))}encryptSm2(e){return this.boomCrypto.encryptSm2(e)}encryptSm4(e,t,r){return this.boomCrypto.encryptSm4(e,t,r)}decryptSm4(e,t,r){return this.boomCrypto.decryptSm4(e,t,r)}},I$1=a$1,dist$2={exports:{}},freeGlobal="object"==typeof global$1&&global$1&&global$1.Object===Object&&global$1,freeGlobal$1=freeGlobal,freeSelf="object"==typeof self&&self&&self.Object===Object&&self,root=freeGlobal$1||freeSelf||Function("return this")(),root$1=root,Symbol$1=root$1.Symbol,Symbol$2=Symbol$1,objectProto$s=Object.prototype,hasOwnProperty$o=objectProto$s.hasOwnProperty,nativeObjectToString$3=objectProto$s.toString,symToStringTag$1=Symbol$2?Symbol$2.toStringTag:void 0;function getRawTag(e){var t=hasOwnProperty$o.call(e,symToStringTag$1),r=e[symToStringTag$1];try{e[symToStringTag$1]=void 0;var i=!0}catch(e){}var s=nativeObjectToString$3.call(e);return i&&(t?e[symToStringTag$1]=r:delete e[symToStringTag$1]),s}var objectProto$r=Object.prototype,nativeObjectToString$2=objectProto$r.toString;function objectToString(e){return nativeObjectToString$2.call(e)}var nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol$2?Symbol$2.toStringTag:void 0;function baseGetTag(e){return null==e?void 0===e?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(e)?getRawTag(e):objectToString(e)}function isObjectLike(e){return null!=e&&"object"==typeof e}var symbolTag$3="[object Symbol]";function isSymbol(e){return"symbol"==typeof e||isObjectLike(e)&&baseGetTag(e)==symbolTag$3}var NAN$2=NaN;function baseToNumber(e){return"number"==typeof e?e:isSymbol(e)?NAN$2:+e}function arrayMap(e,t){for(var r=-1,i=null==e?0:e.length,s=Array(i);++r<i;)s[r]=t(e[r],r,e);return s}var isArray=Array.isArray,isArray$1=isArray,INFINITY$5=1/0,symbolProto$2=Symbol$2?Symbol$2.prototype:void 0,symbolToString=symbolProto$2?symbolProto$2.toString:void 0;function baseToString(e){if("string"==typeof e)return e;if(isArray$1(e))return arrayMap(e,baseToString)+"";if(isSymbol(e))return symbolToString?symbolToString.call(e):"";var t=e+"";return"0"==t&&1/e==-INFINITY$5?"-0":t}function createMathOperation(e,t){return function(r,i){var s;if(void 0===r&&void 0===i)return t;if(void 0!==r&&(s=r),void 0!==i){if(void 0===s)return i;"string"==typeof r||"string"==typeof i?(r=baseToString(r),i=baseToString(i)):(r=baseToNumber(r),i=baseToNumber(i)),s=e(r,i)}return s}}var add=createMathOperation((function(e,t){return e+t}),0),add$1=add,reWhitespace=/\s/;function trimmedEndIndex(e){for(var t=e.length;t--&&reWhitespace.test(e.charAt(t)););return t}var reTrimStart$2=/^\s+/;function baseTrim(e){return e?e.slice(0,trimmedEndIndex(e)+1).replace(reTrimStart$2,""):e}function isObject(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}var NAN$1=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;function toNumber(e){if("number"==typeof e)return e;if(isSymbol(e))return NAN$1;if(isObject(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=isObject(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=baseTrim(e);var r=reIsBinary.test(e);return r||reIsOctal.test(e)?freeParseInt(e.slice(2),r?2:8):reIsBadHex.test(e)?NAN$1:+e}var INFINITY$4=1/0,MAX_INTEGER=17976931348623157e292;function toFinite(e){return e?(e=toNumber(e))===INFINITY$4||e===-INFINITY$4?(e<0?-1:1)*MAX_INTEGER:e==e?e:0:0===e?e:0}function toInteger(e){var t=toFinite(e),r=t%1;return t==t?r?t-r:t:0}var FUNC_ERROR_TEXT$b="Expected a function";function after(e,t){if("function"!=typeof t)throw new TypeError(FUNC_ERROR_TEXT$b);return e=toInteger(e),function(){if(--e<1)return t.apply(this,arguments)}}function identity$1(e){return e}var asyncTag="[object AsyncFunction]",funcTag$2="[object Function]",genTag$1="[object GeneratorFunction]",proxyTag="[object Proxy]";function isFunction$1(e){if(!isObject(e))return!1;var t=baseGetTag(e);return t==funcTag$2||t==genTag$1||t==asyncTag||t==proxyTag}var coreJsData=root$1["__core-js_shared__"],coreJsData$1=coreJsData,maskSrcKey=(uid=/[^.]+$/.exec(coreJsData$1&&coreJsData$1.keys&&coreJsData$1.keys.IE_PROTO||""),uid?"Symbol(src)_1."+uid:""),uid;function isMasked(e){return!!maskSrcKey&&maskSrcKey in e}var funcProto$2=Function.prototype,funcToString$2=funcProto$2.toString;function toSource(e){if(null!=e){try{return funcToString$2.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var reRegExpChar$1=/[\\^$.*+?()[\]{}|]/g,reIsHostCtor=/^\[object .+?Constructor\]$/,funcProto$1=Function.prototype,objectProto$q=Object.prototype,funcToString$1=funcProto$1.toString,hasOwnProperty$n=objectProto$q.hasOwnProperty,reIsNative=RegExp("^"+funcToString$1.call(hasOwnProperty$n).replace(reRegExpChar$1,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function baseIsNative(e){return!(!isObject(e)||isMasked(e))&&(isFunction$1(e)?reIsNative:reIsHostCtor).test(toSource(e))}function getValue(e,t){return null==e?void 0:e[t]}function getNative(e,t){var r=getValue(e,t);return baseIsNative(r)?r:void 0}var WeakMap=getNative(root$1,"WeakMap"),WeakMap$1=WeakMap,metaMap=WeakMap$1&&new WeakMap$1,metaMap$1=metaMap,baseSetData=metaMap$1?function(e,t){return metaMap$1.set(e,t),e}:identity$1,baseSetData$1=baseSetData,objectCreate=Object.create,baseCreate=function(){function e(){}return function(t){if(!isObject(t))return{};if(objectCreate)return objectCreate(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}(),baseCreate$1=baseCreate;function createCtor(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var r=baseCreate$1(e.prototype),i=e.apply(r,t);return isObject(i)?i:r}}var WRAP_BIND_FLAG$8=1;function createBind(e,t,r){var i=t&WRAP_BIND_FLAG$8,s=createCtor(e);return function t(){var o=this&&this!==root$1&&this instanceof t?s:e;return o.apply(i?r:this,arguments)}}function apply(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var nativeMax$g=Math.max;function composeArgs(e,t,r,i){for(var s=-1,o=e.length,n=r.length,a=-1,u=t.length,l=nativeMax$g(o-n,0),c=Array(u+l),d=!i;++a<u;)c[a]=t[a];for(;++s<n;)(d||s<o)&&(c[r[s]]=e[s]);for(;l--;)c[a++]=e[s++];return c}var nativeMax$f=Math.max;function composeArgsRight(e,t,r,i){for(var s=-1,o=e.length,n=-1,a=r.length,u=-1,l=t.length,c=nativeMax$f(o-a,0),d=Array(c+l),h=!i;++s<c;)d[s]=e[s];for(var m=s;++u<l;)d[m+u]=t[u];for(;++n<a;)(h||s<o)&&(d[m+r[n]]=e[s++]);return d}function countHolders(e,t){for(var r=e.length,i=0;r--;)e[r]===t&&++i;return i}function baseLodash(){}var MAX_ARRAY_LENGTH$6=4294967295;function LazyWrapper(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=MAX_ARRAY_LENGTH$6,this.__views__=[]}function noop$1(){}LazyWrapper.prototype=baseCreate$1(baseLodash.prototype),LazyWrapper.prototype.constructor=LazyWrapper;var getData=metaMap$1?function(e){return metaMap$1.get(e)}:noop$1,getData$1=getData,realNames={},realNames$1=realNames,objectProto$p=Object.prototype,hasOwnProperty$m=objectProto$p.hasOwnProperty;function getFuncName(e){for(var t=e.name+"",r=realNames$1[t],i=hasOwnProperty$m.call(realNames$1,t)?r.length:0;i--;){var s=r[i],o=s.func;if(null==o||o==e)return s.name}return t}function LodashWrapper(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function copyArray(e,t){var r=-1,i=e.length;for(t||(t=Array(i));++r<i;)t[r]=e[r];return t}function wrapperClone(e){if(e instanceof LazyWrapper)return e.clone();var t=new LodashWrapper(e.__wrapped__,e.__chain__);return t.__actions__=copyArray(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}LodashWrapper.prototype=baseCreate$1(baseLodash.prototype),LodashWrapper.prototype.constructor=LodashWrapper;var objectProto$o=Object.prototype,hasOwnProperty$l=objectProto$o.hasOwnProperty;function lodash$1(e){if(isObjectLike(e)&&!isArray$1(e)&&!(e instanceof LazyWrapper)){if(e instanceof LodashWrapper)return e;if(hasOwnProperty$l.call(e,"__wrapped__"))return wrapperClone(e)}return new LodashWrapper(e)}function isLaziable(e){var t=getFuncName(e),r=lodash$1[t];if("function"!=typeof r||!(t in LazyWrapper.prototype))return!1;if(e===r)return!0;var i=getData$1(r);return!!i&&e===i[0]}lodash$1.prototype=baseLodash.prototype,lodash$1.prototype.constructor=lodash$1;var HOT_COUNT=800,HOT_SPAN=16,nativeNow=Date.now;function shortOut(e){var t=0,r=0;return function(){var i=nativeNow(),s=HOT_SPAN-(i-r);if(r=i,s>0){if(++t>=HOT_COUNT)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var setData=shortOut(baseSetData$1),setData$1=setData,reWrapDetails=/\{\n\/\* \[wrapped with (.+)\] \*/,reSplitDetails=/,? & /;function getWrapDetails(e){var t=e.match(reWrapDetails);return t?t[1].split(reSplitDetails):[]}var reWrapComment=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function insertWrapDetails(e,t){var r=t.length;if(!r)return e;var i=r-1;return t[i]=(r>1?"& ":"")+t[i],t=t.join(r>2?", ":" "),e.replace(reWrapComment,"{\n/* [wrapped with "+t+"] */\n")}function constant(e){return function(){return e}}var defineProperty=function(){try{var e=getNative(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),defineProperty$1=defineProperty,baseSetToString=defineProperty$1?function(e,t){return defineProperty$1(e,"toString",{configurable:!0,enumerable:!1,value:constant(t),writable:!0})}:identity$1,baseSetToString$1=baseSetToString,setToString=shortOut(baseSetToString$1),setToString$1=setToString;function arrayEach(e,t){for(var r=-1,i=null==e?0:e.length;++r<i&&!1!==t(e[r],r,e););return e}function baseFindIndex(e,t,r,i){for(var s=e.length,o=r+(i?1:-1);i?o--:++o<s;)if(t(e[o],o,e))return o;return-1}function baseIsNaN(e){return e!=e}function strictIndexOf(e,t,r){for(var i=r-1,s=e.length;++i<s;)if(e[i]===t)return i;return-1}function baseIndexOf(e,t,r){return t==t?strictIndexOf(e,t,r):baseFindIndex(e,baseIsNaN,r)}function arrayIncludes(e,t){return!!(null==e?0:e.length)&&baseIndexOf(e,t,0)>-1}var WRAP_BIND_FLAG$7=1,WRAP_BIND_KEY_FLAG$6=2,WRAP_CURRY_FLAG$6=8,WRAP_CURRY_RIGHT_FLAG$3=16,WRAP_PARTIAL_FLAG$6=32,WRAP_PARTIAL_RIGHT_FLAG$3=64,WRAP_ARY_FLAG$4=128,WRAP_REARG_FLAG$3=256,WRAP_FLIP_FLAG$2=512,wrapFlags=[["ary",WRAP_ARY_FLAG$4],["bind",WRAP_BIND_FLAG$7],["bindKey",WRAP_BIND_KEY_FLAG$6],["curry",WRAP_CURRY_FLAG$6],["curryRight",WRAP_CURRY_RIGHT_FLAG$3],["flip",WRAP_FLIP_FLAG$2],["partial",WRAP_PARTIAL_FLAG$6],["partialRight",WRAP_PARTIAL_RIGHT_FLAG$3],["rearg",WRAP_REARG_FLAG$3]];function updateWrapDetails(e,t){return arrayEach(wrapFlags,(function(r){var i="_."+r[0];t&r[1]&&!arrayIncludes(e,i)&&e.push(i)})),e.sort()}function setWrapToString(e,t,r){var i=t+"";return setToString$1(e,insertWrapDetails(i,updateWrapDetails(getWrapDetails(i),r)))}var WRAP_BIND_FLAG$6=1,WRAP_BIND_KEY_FLAG$5=2,WRAP_CURRY_BOUND_FLAG$1=4,WRAP_CURRY_FLAG$5=8,WRAP_PARTIAL_FLAG$5=32,WRAP_PARTIAL_RIGHT_FLAG$2=64;function createRecurry(e,t,r,i,s,o,n,a,u,l){var c=t&WRAP_CURRY_FLAG$5;t|=c?WRAP_PARTIAL_FLAG$5:WRAP_PARTIAL_RIGHT_FLAG$2,(t&=~(c?WRAP_PARTIAL_RIGHT_FLAG$2:WRAP_PARTIAL_FLAG$5))&WRAP_CURRY_BOUND_FLAG$1||(t&=~(WRAP_BIND_FLAG$6|WRAP_BIND_KEY_FLAG$5));var d=[e,t,s,c?o:void 0,c?n:void 0,c?void 0:o,c?void 0:n,a,u,l],h=r.apply(void 0,d);return isLaziable(e)&&setData$1(h,d),h.placeholder=i,setWrapToString(h,e,t)}function getHolder(e){return e.placeholder}var MAX_SAFE_INTEGER$5=9007199254740991,reIsUint=/^(?:0|[1-9]\d*)$/;function isIndex(e,t){var r=typeof e;return!!(t=null==t?MAX_SAFE_INTEGER$5:t)&&("number"==r||"symbol"!=r&&reIsUint.test(e))&&e>-1&&e%1==0&&e<t}var nativeMin$e=Math.min;function reorder(e,t){for(var r=e.length,i=nativeMin$e(t.length,r),s=copyArray(e);i--;){var o=t[i];e[i]=isIndex(o,r)?s[o]:void 0}return e}var PLACEHOLDER$1="__lodash_placeholder__";function replaceHolders(e,t){for(var r=-1,i=e.length,s=0,o=[];++r<i;){var n=e[r];n!==t&&n!==PLACEHOLDER$1||(e[r]=PLACEHOLDER$1,o[s++]=r)}return o}var WRAP_BIND_FLAG$5=1,WRAP_BIND_KEY_FLAG$4=2,WRAP_CURRY_FLAG$4=8,WRAP_CURRY_RIGHT_FLAG$2=16,WRAP_ARY_FLAG$3=128,WRAP_FLIP_FLAG$1=512;function createHybrid(e,t,r,i,s,o,n,a,u,l){var c=t&WRAP_ARY_FLAG$3,d=t&WRAP_BIND_FLAG$5,h=t&WRAP_BIND_KEY_FLAG$4,m=t&(WRAP_CURRY_FLAG$4|WRAP_CURRY_RIGHT_FLAG$2),p=t&WRAP_FLIP_FLAG$1,f=h?void 0:createCtor(e);return function g(){for(var v=arguments.length,y=Array(v),b=v;b--;)y[b]=arguments[b];if(m)var S=getHolder(g),_=countHolders(y,S);if(i&&(y=composeArgs(y,i,s,m)),o&&(y=composeArgsRight(y,o,n,m)),v-=_,m&&v<l){var E=replaceHolders(y,S);return createRecurry(e,t,createHybrid,g.placeholder,r,y,E,a,u,l-v)}var $=d?r:this,I=h?$[e]:e;return v=y.length,a?y=reorder(y,a):p&&v>1&&y.reverse(),c&&u<v&&(y.length=u),this&&this!==root$1&&this instanceof g&&(I=f||createCtor(I)),I.apply($,y)}}function createCurry(e,t,r){var i=createCtor(e);return function s(){for(var o=arguments.length,n=Array(o),a=o,u=getHolder(s);a--;)n[a]=arguments[a];var l=o<3&&n[0]!==u&&n[o-1]!==u?[]:replaceHolders(n,u);if((o-=l.length)<r)return createRecurry(e,t,createHybrid,s.placeholder,void 0,n,l,void 0,void 0,r-o);var c=this&&this!==root$1&&this instanceof s?i:e;return apply(c,this,n)}}var WRAP_BIND_FLAG$4=1;function createPartial(e,t,r,i){var s=t&WRAP_BIND_FLAG$4,o=createCtor(e);return function t(){for(var n=-1,a=arguments.length,u=-1,l=i.length,c=Array(l+a),d=this&&this!==root$1&&this instanceof t?o:e;++u<l;)c[u]=i[u];for(;a--;)c[u++]=arguments[++n];return apply(d,s?r:this,c)}}var PLACEHOLDER="__lodash_placeholder__",WRAP_BIND_FLAG$3=1,WRAP_BIND_KEY_FLAG$3=2,WRAP_CURRY_BOUND_FLAG=4,WRAP_CURRY_FLAG$3=8,WRAP_ARY_FLAG$2=128,WRAP_REARG_FLAG$2=256,nativeMin$d=Math.min;function mergeData(e,t){var r=e[1],i=t[1],s=r|i,o=s<(WRAP_BIND_FLAG$3|WRAP_BIND_KEY_FLAG$3|WRAP_ARY_FLAG$2),n=i==WRAP_ARY_FLAG$2&&r==WRAP_CURRY_FLAG$3||i==WRAP_ARY_FLAG$2&&r==WRAP_REARG_FLAG$2&&e[7].length<=t[8]||i==(WRAP_ARY_FLAG$2|WRAP_REARG_FLAG$2)&&t[7].length<=t[8]&&r==WRAP_CURRY_FLAG$3;if(!o&&!n)return e;i&WRAP_BIND_FLAG$3&&(e[2]=t[2],s|=r&WRAP_BIND_FLAG$3?0:WRAP_CURRY_BOUND_FLAG);var a=t[3];if(a){var u=e[3];e[3]=u?composeArgs(u,a,t[4]):a,e[4]=u?replaceHolders(e[3],PLACEHOLDER):t[4]}return(a=t[5])&&(u=e[5],e[5]=u?composeArgsRight(u,a,t[6]):a,e[6]=u?replaceHolders(e[5],PLACEHOLDER):t[6]),(a=t[7])&&(e[7]=a),i&WRAP_ARY_FLAG$2&&(e[8]=null==e[8]?t[8]:nativeMin$d(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=s,e}var FUNC_ERROR_TEXT$a="Expected a function",WRAP_BIND_FLAG$2=1,WRAP_BIND_KEY_FLAG$2=2,WRAP_CURRY_FLAG$2=8,WRAP_CURRY_RIGHT_FLAG$1=16,WRAP_PARTIAL_FLAG$4=32,WRAP_PARTIAL_RIGHT_FLAG$1=64,nativeMax$e=Math.max;function createWrap(e,t,r,i,s,o,n,a){var u=t&WRAP_BIND_KEY_FLAG$2;if(!u&&"function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT$a);var l=i?i.length:0;if(l||(t&=~(WRAP_PARTIAL_FLAG$4|WRAP_PARTIAL_RIGHT_FLAG$1),i=s=void 0),n=void 0===n?n:nativeMax$e(toInteger(n),0),a=void 0===a?a:toInteger(a),l-=s?s.length:0,t&WRAP_PARTIAL_RIGHT_FLAG$1){var c=i,d=s;i=s=void 0}var h=u?void 0:getData$1(e),m=[e,t,r,i,s,c,d,o,n,a];if(h&&mergeData(m,h),e=m[0],t=m[1],r=m[2],i=m[3],s=m[4],!(a=m[9]=void 0===m[9]?u?0:e.length:nativeMax$e(m[9]-l,0))&&t&(WRAP_CURRY_FLAG$2|WRAP_CURRY_RIGHT_FLAG$1)&&(t&=~(WRAP_CURRY_FLAG$2|WRAP_CURRY_RIGHT_FLAG$1)),t&&t!=WRAP_BIND_FLAG$2)p=t==WRAP_CURRY_FLAG$2||t==WRAP_CURRY_RIGHT_FLAG$1?createCurry(e,t,a):t!=WRAP_PARTIAL_FLAG$4&&t!=(WRAP_BIND_FLAG$2|WRAP_PARTIAL_FLAG$4)||s.length?createHybrid.apply(void 0,m):createPartial(e,t,r,i);else var p=createBind(e,t,r);return setWrapToString((h?baseSetData$1:setData$1)(p,m),e,t)}var WRAP_ARY_FLAG$1=128;function ary(e,t,r){return t=r?void 0:t,t=e&&null==t?e.length:t,createWrap(e,WRAP_ARY_FLAG$1,void 0,void 0,void 0,void 0,t)}function baseAssignValue(e,t,r){"__proto__"==t&&defineProperty$1?defineProperty$1(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}function eq(e,t){return e===t||e!=e&&t!=t}var objectProto$n=Object.prototype,hasOwnProperty$k=objectProto$n.hasOwnProperty;function assignValue(e,t,r){var i=e[t];hasOwnProperty$k.call(e,t)&&eq(i,r)&&(void 0!==r||t in e)||baseAssignValue(e,t,r)}function copyObject(e,t,r,i){var s=!r;r||(r={});for(var o=-1,n=t.length;++o<n;){var a=t[o],u=i?i(r[a],e[a],a,r,e):void 0;void 0===u&&(u=e[a]),s?baseAssignValue(r,a,u):assignValue(r,a,u)}return r}var nativeMax$d=Math.max;function overRest(e,t,r){return t=nativeMax$d(void 0===t?e.length-1:t,0),function(){for(var i=arguments,s=-1,o=nativeMax$d(i.length-t,0),n=Array(o);++s<o;)n[s]=i[t+s];s=-1;for(var a=Array(t+1);++s<t;)a[s]=i[s];return a[t]=r(n),apply(e,this,a)}}function baseRest(e,t){return setToString$1(overRest(e,t,identity$1),e+"")}var MAX_SAFE_INTEGER$4=9007199254740991;function isLength(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=MAX_SAFE_INTEGER$4}function isArrayLike(e){return null!=e&&isLength(e.length)&&!isFunction$1(e)}function isIterateeCall(e,t,r){if(!isObject(r))return!1;var i=typeof t;return!!("number"==i?isArrayLike(r)&&isIndex(t,r.length):"string"==i&&t in r)&&eq(r[t],e)}function createAssigner(e){return baseRest((function(t,r){var i=-1,s=r.length,o=s>1?r[s-1]:void 0,n=s>2?r[2]:void 0;for(o=e.length>3&&"function"==typeof o?(s--,o):void 0,n&&isIterateeCall(r[0],r[1],n)&&(o=s<3?void 0:o,s=1),t=Object(t);++i<s;){var a=r[i];a&&e(t,a,i,o)}return t}))}var objectProto$m=Object.prototype;function isPrototype(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||objectProto$m)}function baseTimes(e,t){for(var r=-1,i=Array(e);++r<e;)i[r]=t(r);return i}var argsTag$3="[object Arguments]";function baseIsArguments(e){return isObjectLike(e)&&baseGetTag(e)==argsTag$3}var objectProto$l=Object.prototype,hasOwnProperty$j=objectProto$l.hasOwnProperty,propertyIsEnumerable$1=objectProto$l.propertyIsEnumerable,isArguments=baseIsArguments(function(){return arguments}())?baseIsArguments:function(e){return isObjectLike(e)&&hasOwnProperty$j.call(e,"callee")&&!propertyIsEnumerable$1.call(e,"callee")},isArguments$1=isArguments;function stubFalse(){return!1}var freeExports$2="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule$2=freeExports$2&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports$2=freeModule$2&&freeModule$2.exports===freeExports$2,Buffer$1=moduleExports$2?root$1.Buffer:void 0,nativeIsBuffer=Buffer$1?Buffer$1.isBuffer:void 0,isBuffer=nativeIsBuffer||stubFalse,isBuffer$1=isBuffer,argsTag$2="[object Arguments]",arrayTag$2="[object Array]",boolTag$4="[object Boolean]",dateTag$4="[object Date]",errorTag$3="[object Error]",funcTag$1="[object Function]",mapTag$9="[object Map]",numberTag$4="[object Number]",objectTag$4="[object Object]",regexpTag$4="[object RegExp]",setTag$9="[object Set]",stringTag$4="[object String]",weakMapTag$3="[object WeakMap]",arrayBufferTag$4="[object ArrayBuffer]",dataViewTag$4="[object DataView]",float32Tag$2="[object Float32Array]",float64Tag$2="[object Float64Array]",int8Tag$2="[object Int8Array]",int16Tag$2="[object Int16Array]",int32Tag$2="[object Int32Array]",uint8Tag$2="[object Uint8Array]",uint8ClampedTag$2="[object Uint8ClampedArray]",uint16Tag$2="[object Uint16Array]",uint32Tag$2="[object Uint32Array]",typedArrayTags={};function baseIsTypedArray(e){return isObjectLike(e)&&isLength(e.length)&&!!typedArrayTags[baseGetTag(e)]}function baseUnary(e){return function(t){return e(t)}}typedArrayTags[float32Tag$2]=typedArrayTags[float64Tag$2]=typedArrayTags[int8Tag$2]=typedArrayTags[int16Tag$2]=typedArrayTags[int32Tag$2]=typedArrayTags[uint8Tag$2]=typedArrayTags[uint8ClampedTag$2]=typedArrayTags[uint16Tag$2]=typedArrayTags[uint32Tag$2]=!0,typedArrayTags[argsTag$2]=typedArrayTags[arrayTag$2]=typedArrayTags[arrayBufferTag$4]=typedArrayTags[boolTag$4]=typedArrayTags[dataViewTag$4]=typedArrayTags[dateTag$4]=typedArrayTags[errorTag$3]=typedArrayTags[funcTag$1]=typedArrayTags[mapTag$9]=typedArrayTags[numberTag$4]=typedArrayTags[objectTag$4]=typedArrayTags[regexpTag$4]=typedArrayTags[setTag$9]=typedArrayTags[stringTag$4]=typedArrayTags[weakMapTag$3]=!1;var freeExports$1="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule$1=freeExports$1&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports$1=freeModule$1&&freeModule$1.exports===freeExports$1,freeProcess=moduleExports$1&&freeGlobal$1.process,nodeUtil=function(){try{var e=freeModule$1&&freeModule$1.require&&freeModule$1.require("util").types;return e||freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}}(),nodeUtil$1=nodeUtil,nodeIsTypedArray=nodeUtil$1&&nodeUtil$1.isTypedArray,isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray,isTypedArray$1=isTypedArray,objectProto$k=Object.prototype,hasOwnProperty$i=objectProto$k.hasOwnProperty;function arrayLikeKeys(e,t){var r=isArray$1(e),i=!r&&isArguments$1(e),s=!r&&!i&&isBuffer$1(e),o=!r&&!i&&!s&&isTypedArray$1(e),n=r||i||s||o,a=n?baseTimes(e.length,String):[],u=a.length;for(var l in e)!t&&!hasOwnProperty$i.call(e,l)||n&&("length"==l||s&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||isIndex(l,u))||a.push(l);return a}function overArg(e,t){return function(r){return e(t(r))}}var nativeKeys=overArg(Object.keys,Object),nativeKeys$1=nativeKeys,objectProto$j=Object.prototype,hasOwnProperty$h=objectProto$j.hasOwnProperty;function baseKeys(e){if(!isPrototype(e))return nativeKeys$1(e);var t=[];for(var r in Object(e))hasOwnProperty$h.call(e,r)&&"constructor"!=r&&t.push(r);return t}function keys(e){return isArrayLike(e)?arrayLikeKeys(e):baseKeys(e)}var objectProto$i=Object.prototype,hasOwnProperty$g=objectProto$i.hasOwnProperty,assign=createAssigner((function(e,t){if(isPrototype(t)||isArrayLike(t))copyObject(t,keys(t),e);else for(var r in t)hasOwnProperty$g.call(t,r)&&assignValue(e,r,t[r])})),assign$1=assign;function nativeKeysIn(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}var objectProto$h=Object.prototype,hasOwnProperty$f=objectProto$h.hasOwnProperty;function baseKeysIn(e){if(!isObject(e))return nativeKeysIn(e);var t=isPrototype(e),r=[];for(var i in e)("constructor"!=i||!t&&hasOwnProperty$f.call(e,i))&&r.push(i);return r}function keysIn(e){return isArrayLike(e)?arrayLikeKeys(e,!0):baseKeysIn(e)}var assignIn=createAssigner((function(e,t){copyObject(t,keysIn(t),e)})),extend=assignIn,assignInWith=createAssigner((function(e,t,r,i){copyObject(t,keysIn(t),e,i)})),extendWith=assignInWith,assignWith=createAssigner((function(e,t,r,i){copyObject(t,keys(t),e,i)})),assignWith$1=assignWith,reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/;function isKey(e,t){if(isArray$1(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!isSymbol(e))||(reIsPlainProp.test(e)||!reIsDeepProp.test(e)||null!=t&&e in Object(t))}var nativeCreate=getNative(Object,"create"),nativeCreate$1=nativeCreate;function hashClear(){this.__data__=nativeCreate$1?nativeCreate$1(null):{},this.size=0}function hashDelete(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var HASH_UNDEFINED$2="__lodash_hash_undefined__",objectProto$g=Object.prototype,hasOwnProperty$e=objectProto$g.hasOwnProperty;function hashGet(e){var t=this.__data__;if(nativeCreate$1){var r=t[e];return r===HASH_UNDEFINED$2?void 0:r}return hasOwnProperty$e.call(t,e)?t[e]:void 0}var objectProto$f=Object.prototype,hasOwnProperty$d=objectProto$f.hasOwnProperty;function hashHas(e){var t=this.__data__;return nativeCreate$1?void 0!==t[e]:hasOwnProperty$d.call(t,e)}var HASH_UNDEFINED$1="__lodash_hash_undefined__";function hashSet(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=nativeCreate$1&&void 0===t?HASH_UNDEFINED$1:t,this}function Hash(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}function listCacheClear(){this.__data__=[],this.size=0}function assocIndexOf(e,t){for(var r=e.length;r--;)if(eq(e[r][0],t))return r;return-1}Hash.prototype.clear=hashClear,Hash.prototype.delete=hashDelete,Hash.prototype.get=hashGet,Hash.prototype.has=hashHas,Hash.prototype.set=hashSet;var arrayProto$5=Array.prototype,splice$2=arrayProto$5.splice;function listCacheDelete(e){var t=this.__data__,r=assocIndexOf(t,e);return!(r<0)&&(r==t.length-1?t.pop():splice$2.call(t,r,1),--this.size,!0)}function listCacheGet(e){var t=this.__data__,r=assocIndexOf(t,e);return r<0?void 0:t[r][1]}function listCacheHas(e){return assocIndexOf(this.__data__,e)>-1}function listCacheSet(e,t){var r=this.__data__,i=assocIndexOf(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}function ListCache(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ListCache.prototype.clear=listCacheClear,ListCache.prototype.delete=listCacheDelete,ListCache.prototype.get=listCacheGet,ListCache.prototype.has=listCacheHas,ListCache.prototype.set=listCacheSet;var Map$1=getNative(root$1,"Map"),Map$2=Map$1;function mapCacheClear(){this.size=0,this.__data__={hash:new Hash,map:new(Map$2||ListCache),string:new Hash}}function isKeyable(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}function getMapData(e,t){var r=e.__data__;return isKeyable(t)?r["string"==typeof t?"string":"hash"]:r.map}function mapCacheDelete(e){var t=getMapData(this,e).delete(e);return this.size-=t?1:0,t}function mapCacheGet(e){return getMapData(this,e).get(e)}function mapCacheHas(e){return getMapData(this,e).has(e)}function mapCacheSet(e,t){var r=getMapData(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}function MapCache(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}MapCache.prototype.clear=mapCacheClear,MapCache.prototype.delete=mapCacheDelete,MapCache.prototype.get=mapCacheGet,MapCache.prototype.has=mapCacheHas,MapCache.prototype.set=mapCacheSet;var FUNC_ERROR_TEXT$9="Expected a function";function memoize(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(FUNC_ERROR_TEXT$9);var r=function(){var i=arguments,s=t?t.apply(this,i):i[0],o=r.cache;if(o.has(s))return o.get(s);var n=e.apply(this,i);return r.cache=o.set(s,n)||o,n};return r.cache=new(memoize.Cache||MapCache),r}memoize.Cache=MapCache;var MAX_MEMOIZE_SIZE=500;function memoizeCapped(e){var t=memoize(e,(function(e){return r.size===MAX_MEMOIZE_SIZE&&r.clear(),e})),r=t.cache;return t}var rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=memoizeCapped((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(rePropName,(function(e,r,i,s){t.push(i?s.replace(reEscapeChar,"$1"):r||e)})),t})),stringToPath$1=stringToPath;function toString$1(e){return null==e?"":baseToString(e)}function castPath(e,t){return isArray$1(e)?e:isKey(e,t)?[e]:stringToPath$1(toString$1(e))}var INFINITY$3=1/0;function toKey(e){if("string"==typeof e||isSymbol(e))return e;var t=e+"";return"0"==t&&1/e==-INFINITY$3?"-0":t}function baseGet(e,t){for(var r=0,i=(t=castPath(t,e)).length;null!=e&&r<i;)e=e[toKey(t[r++])];return r&&r==i?e:void 0}function get(e,t,r){var i=null==e?void 0:baseGet(e,t);return void 0===i?r:i}function baseAt(e,t){for(var r=-1,i=t.length,s=Array(i),o=null==e;++r<i;)s[r]=o?void 0:get(e,t[r]);return s}function arrayPush(e,t){for(var r=-1,i=t.length,s=e.length;++r<i;)e[s+r]=t[r];return e}var spreadableSymbol=Symbol$2?Symbol$2.isConcatSpreadable:void 0;function isFlattenable(e){return isArray$1(e)||isArguments$1(e)||!!(spreadableSymbol&&e&&e[spreadableSymbol])}function baseFlatten(e,t,r,i,s){var o=-1,n=e.length;for(r||(r=isFlattenable),s||(s=[]);++o<n;){var a=e[o];t>0&&r(a)?t>1?baseFlatten(a,t-1,r,i,s):arrayPush(s,a):i||(s[s.length]=a)}return s}function flatten(e){return(null==e?0:e.length)?baseFlatten(e,1):[]}function flatRest(e){return setToString$1(overRest(e,void 0,flatten),e+"")}var at$1=flatRest(baseAt),at$2=at$1,getPrototype=overArg(Object.getPrototypeOf,Object),getPrototype$1=getPrototype,objectTag$3="[object Object]",funcProto=Function.prototype,objectProto$e=Object.prototype,funcToString=funcProto.toString,hasOwnProperty$c=objectProto$e.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject(e){if(!isObjectLike(e)||baseGetTag(e)!=objectTag$3)return!1;var t=getPrototype$1(e);if(null===t)return!0;var r=hasOwnProperty$c.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&funcToString.call(r)==objectCtorString}var domExcTag="[object DOMException]",errorTag$2="[object Error]";function isError(e){if(!isObjectLike(e))return!1;var t=baseGetTag(e);return t==errorTag$2||t==domExcTag||"string"==typeof e.message&&"string"==typeof e.name&&!isPlainObject(e)}var attempt=baseRest((function(e,t){try{return apply(e,void 0,t)}catch(e){return isError(e)?e:new Error(e)}})),attempt$1=attempt,FUNC_ERROR_TEXT$8="Expected a function";function before(e,t){var r;if("function"!=typeof t)throw new TypeError(FUNC_ERROR_TEXT$8);return e=toInteger(e),function(){return--e>0&&(r=t.apply(this,arguments)),e<=1&&(t=void 0),r}}var WRAP_BIND_FLAG$1=1,WRAP_PARTIAL_FLAG$3=32,bind$1=baseRest((function(e,t,r){var i=WRAP_BIND_FLAG$1;if(r.length){var s=replaceHolders(r,getHolder(bind$1));i|=WRAP_PARTIAL_FLAG$3}return createWrap(e,i,t,r,s)}));bind$1.placeholder={};var bind$2=bind$1,bindAll=flatRest((function(e,t){return arrayEach(t,(function(t){t=toKey(t),baseAssignValue(e,t,bind$2(e[t],e))})),e})),bindAll$1=bindAll,WRAP_BIND_FLAG=1,WRAP_BIND_KEY_FLAG$1=2,WRAP_PARTIAL_FLAG$2=32,bindKey=baseRest((function(e,t,r){var i=WRAP_BIND_FLAG|WRAP_BIND_KEY_FLAG$1;if(r.length){var s=replaceHolders(r,getHolder(bindKey));i|=WRAP_PARTIAL_FLAG$2}return createWrap(t,i,e,r,s)}));bindKey.placeholder={};var bindKey$1=bindKey;function baseSlice(e,t,r){var i=-1,s=e.length;t<0&&(t=-t>s?0:s+t),(r=r>s?s:r)<0&&(r+=s),s=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(s);++i<s;)o[i]=e[i+t];return o}function castSlice(e,t,r){var i=e.length;return r=void 0===r?i:r,!t&&r>=i?e:baseSlice(e,t,r)}var rsAstralRange$3="\\ud800-\\udfff",rsComboMarksRange$4="\\u0300-\\u036f",reComboHalfMarksRange$4="\\ufe20-\\ufe2f",rsComboSymbolsRange$4="\\u20d0-\\u20ff",rsComboRange$4=rsComboMarksRange$4+reComboHalfMarksRange$4+rsComboSymbolsRange$4,rsVarRange$3="\\ufe0e\\ufe0f",rsZWJ$3="\\u200d",reHasUnicode=RegExp("["+rsZWJ$3+rsAstralRange$3+rsComboRange$4+rsVarRange$3+"]");function hasUnicode(e){return reHasUnicode.test(e)}function asciiToArray(e){return e.split("")}var rsAstralRange$2="\\ud800-\\udfff",rsComboMarksRange$3="\\u0300-\\u036f",reComboHalfMarksRange$3="\\ufe20-\\ufe2f",rsComboSymbolsRange$3="\\u20d0-\\u20ff",rsComboRange$3=rsComboMarksRange$3+reComboHalfMarksRange$3+rsComboSymbolsRange$3,rsVarRange$2="\\ufe0e\\ufe0f",rsAstral$1="["+rsAstralRange$2+"]",rsCombo$3="["+rsComboRange$3+"]",rsFitz$2="\\ud83c[\\udffb-\\udfff]",rsModifier$2="(?:"+rsCombo$3+"|"+rsFitz$2+")",rsNonAstral$2="[^"+rsAstralRange$2+"]",rsRegional$2="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair$2="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ$2="\\u200d",reOptMod$2=rsModifier$2+"?",rsOptVar$2="["+rsVarRange$2+"]?",rsOptJoin$2="(?:"+rsZWJ$2+"(?:"+[rsNonAstral$2,rsRegional$2,rsSurrPair$2].join("|")+")"+rsOptVar$2+reOptMod$2+")*",rsSeq$2=rsOptVar$2+reOptMod$2+rsOptJoin$2,rsSymbol$1="(?:"+[rsNonAstral$2+rsCombo$3+"?",rsCombo$3,rsRegional$2,rsSurrPair$2,rsAstral$1].join("|")+")",reUnicode$1=RegExp(rsFitz$2+"(?="+rsFitz$2+")|"+rsSymbol$1+rsSeq$2,"g");function unicodeToArray(e){return e.match(reUnicode$1)||[]}function stringToArray(e){return hasUnicode(e)?unicodeToArray(e):asciiToArray(e)}function createCaseFirst(e){return function(t){var r=hasUnicode(t=toString$1(t))?stringToArray(t):void 0,i=r?r[0]:t.charAt(0),s=r?castSlice(r,1).join(""):t.slice(1);return i[e]()+s}}var upperFirst=createCaseFirst("toUpperCase"),upperFirst$1=upperFirst;function capitalize(e){return upperFirst$1(toString$1(e).toLowerCase())}function arrayReduce(e,t,r,i){var s=-1,o=null==e?0:e.length;for(i&&o&&(r=e[++s]);++s<o;)r=t(r,e[s],s,e);return r}function basePropertyOf(e){return function(t){return null==e?void 0:e[t]}}var deburredLetters={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},deburrLetter=basePropertyOf(deburredLetters),deburrLetter$1=deburrLetter,reLatin=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,rsComboMarksRange$2="\\u0300-\\u036f",reComboHalfMarksRange$2="\\ufe20-\\ufe2f",rsComboSymbolsRange$2="\\u20d0-\\u20ff",rsComboRange$2=rsComboMarksRange$2+reComboHalfMarksRange$2+rsComboSymbolsRange$2,rsCombo$2="["+rsComboRange$2+"]",reComboMark=RegExp(rsCombo$2,"g");function deburr(e){return(e=toString$1(e))&&e.replace(reLatin,deburrLetter$1).replace(reComboMark,"")}var reAsciiWord=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function asciiWords(e){return e.match(reAsciiWord)||[]}var reHasUnicodeWord=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function hasUnicodeWord(e){return reHasUnicodeWord.test(e)}var rsAstralRange$1="\\ud800-\\udfff",rsComboMarksRange$1="\\u0300-\\u036f",reComboHalfMarksRange$1="\\ufe20-\\ufe2f",rsComboSymbolsRange$1="\\u20d0-\\u20ff",rsComboRange$1=rsComboMarksRange$1+reComboHalfMarksRange$1+rsComboSymbolsRange$1,rsDingbatRange="\\u2700-\\u27bf",rsLowerRange="a-z\\xdf-\\xf6\\xf8-\\xff",rsMathOpRange="\\xac\\xb1\\xd7\\xf7",rsNonCharRange="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",rsPunctuationRange="\\u2000-\\u206f",rsSpaceRange=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",rsUpperRange="A-Z\\xc0-\\xd6\\xd8-\\xde",rsVarRange$1="\\ufe0e\\ufe0f",rsBreakRange=rsMathOpRange+rsNonCharRange+rsPunctuationRange+rsSpaceRange,rsApos$1="['’]",rsBreak="["+rsBreakRange+"]",rsCombo$1="["+rsComboRange$1+"]",rsDigits="\\d+",rsDingbat="["+rsDingbatRange+"]",rsLower="["+rsLowerRange+"]",rsMisc="[^"+rsAstralRange$1+rsBreakRange+rsDigits+rsDingbatRange+rsLowerRange+rsUpperRange+"]",rsFitz$1="\\ud83c[\\udffb-\\udfff]",rsModifier$1="(?:"+rsCombo$1+"|"+rsFitz$1+")",rsNonAstral$1="[^"+rsAstralRange$1+"]",rsRegional$1="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair$1="[\\ud800-\\udbff][\\udc00-\\udfff]",rsUpper="["+rsUpperRange+"]",rsZWJ$1="\\u200d",rsMiscLower="(?:"+rsLower+"|"+rsMisc+")",rsMiscUpper="(?:"+rsUpper+"|"+rsMisc+")",rsOptContrLower="(?:"+rsApos$1+"(?:d|ll|m|re|s|t|ve))?",rsOptContrUpper="(?:"+rsApos$1+"(?:D|LL|M|RE|S|T|VE))?",reOptMod$1=rsModifier$1+"?",rsOptVar$1="["+rsVarRange$1+"]?",rsOptJoin$1="(?:"+rsZWJ$1+"(?:"+[rsNonAstral$1,rsRegional$1,rsSurrPair$1].join("|")+")"+rsOptVar$1+reOptMod$1+")*",rsOrdLower="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",rsOrdUpper="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",rsSeq$1=rsOptVar$1+reOptMod$1+rsOptJoin$1,rsEmoji="(?:"+[rsDingbat,rsRegional$1,rsSurrPair$1].join("|")+")"+rsSeq$1,reUnicodeWord=RegExp([rsUpper+"?"+rsLower+"+"+rsOptContrLower+"(?="+[rsBreak,rsUpper,"$"].join("|")+")",rsMiscUpper+"+"+rsOptContrUpper+"(?="+[rsBreak,rsUpper+rsMiscLower,"$"].join("|")+")",rsUpper+"?"+rsMiscLower+"+"+rsOptContrLower,rsUpper+"+"+rsOptContrUpper,rsOrdUpper,rsOrdLower,rsDigits,rsEmoji].join("|"),"g");function unicodeWords(e){return e.match(reUnicodeWord)||[]}function words(e,t,r){return e=toString$1(e),void 0===(t=r?void 0:t)?hasUnicodeWord(e)?unicodeWords(e):asciiWords(e):e.match(t)||[]}var rsApos="['’]",reApos=RegExp(rsApos,"g");function createCompounder(e){return function(t){return arrayReduce(words(deburr(t).replace(reApos,"")),e,"")}}var camelCase=createCompounder((function(e,t,r){return t=t.toLowerCase(),e+(r?capitalize(t):t)})),camelCase$1=camelCase;function castArray(){if(!arguments.length)return[];var e=arguments[0];return isArray$1(e)?e:[e]}var nativeIsFinite$1=root$1.isFinite,nativeMin$c=Math.min;function createRound(e){var t=Math[e];return function(e,r){if(e=toNumber(e),(r=null==r?0:nativeMin$c(toInteger(r),292))&&nativeIsFinite$1(e)){var i=(toString$1(e)+"e").split("e");return+((i=(toString$1(t(i[0]+"e"+(+i[1]+r)))+"e").split("e"))[0]+"e"+(+i[1]-r))}return t(e)}}var ceil=createRound("ceil"),ceil$1=ceil;function chain(e){var t=lodash$1(e);return t.__chain__=!0,t}var nativeCeil$3=Math.ceil,nativeMax$c=Math.max;function chunk(e,t,r){t=(r?isIterateeCall(e,t,r):void 0===t)?1:nativeMax$c(toInteger(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var s=0,o=0,n=Array(nativeCeil$3(i/t));s<i;)n[o++]=baseSlice(e,s,s+=t);return n}function baseClamp(e,t,r){return e==e&&(void 0!==r&&(e=e<=r?e:r),void 0!==t&&(e=e>=t?e:t)),e}function clamp(e,t,r){return void 0===r&&(r=t,t=void 0),void 0!==r&&(r=(r=toNumber(r))==r?r:0),void 0!==t&&(t=(t=toNumber(t))==t?t:0),baseClamp(toNumber(e),t,r)}function stackClear(){this.__data__=new ListCache,this.size=0}function stackDelete(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}function stackGet(e){return this.__data__.get(e)}function stackHas(e){return this.__data__.has(e)}var LARGE_ARRAY_SIZE$2=200;function stackSet(e,t){var r=this.__data__;if(r instanceof ListCache){var i=r.__data__;if(!Map$2||i.length<LARGE_ARRAY_SIZE$2-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new MapCache(i)}return r.set(e,t),this.size=r.size,this}function Stack(e){var t=this.__data__=new ListCache(e);this.size=t.size}function baseAssign(e,t){return e&©Object(t,keys(t),e)}function baseAssignIn(e,t){return e&©Object(t,keysIn(t),e)}Stack.prototype.clear=stackClear,Stack.prototype.delete=stackDelete,Stack.prototype.get=stackGet,Stack.prototype.has=stackHas,Stack.prototype.set=stackSet;var freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports,freeModule=freeExports&&"object"==typeof module&&module&&!module.nodeType&&module,moduleExports=freeModule&&freeModule.exports===freeExports,Buffer=moduleExports?root$1.Buffer:void 0,allocUnsafe=Buffer?Buffer.allocUnsafe:void 0;function cloneBuffer(e,t){if(t)return e.slice();var r=e.length,i=allocUnsafe?allocUnsafe(r):new e.constructor(r);return e.copy(i),i}function arrayFilter(e,t){for(var r=-1,i=null==e?0:e.length,s=0,o=[];++r<i;){var n=e[r];t(n,r,e)&&(o[s++]=n)}return o}function stubArray(){return[]}var objectProto$d=Object.prototype,propertyIsEnumerable=objectProto$d.propertyIsEnumerable,nativeGetSymbols$1=Object.getOwnPropertySymbols,getSymbols=nativeGetSymbols$1?function(e){return null==e?[]:(e=Object(e),arrayFilter(nativeGetSymbols$1(e),(function(t){return propertyIsEnumerable.call(e,t)})))}:stubArray,getSymbols$1=getSymbols;function copySymbols(e,t){return copyObject(e,getSymbols$1(e),t)}var nativeGetSymbols=Object.getOwnPropertySymbols,getSymbolsIn=nativeGetSymbols?function(e){for(var t=[];e;)arrayPush(t,getSymbols$1(e)),e=getPrototype$1(e);return t}:stubArray,getSymbolsIn$1=getSymbolsIn;function copySymbolsIn(e,t){return copyObject(e,getSymbolsIn$1(e),t)}function baseGetAllKeys(e,t,r){var i=t(e);return isArray$1(e)?i:arrayPush(i,r(e))}function getAllKeys(e){return baseGetAllKeys(e,keys,getSymbols$1)}function getAllKeysIn(e){return baseGetAllKeys(e,keysIn,getSymbolsIn$1)}var DataView=getNative(root$1,"DataView"),DataView$1=DataView,Promise$1=getNative(root$1,"Promise"),Promise$2=Promise$1,Set$1=getNative(root$1,"Set"),Set$2=Set$1,mapTag$8="[object Map]",objectTag$2="[object Object]",promiseTag="[object Promise]",setTag$8="[object Set]",weakMapTag$2="[object WeakMap]",dataViewTag$3="[object DataView]",dataViewCtorString=toSource(DataView$1),mapCtorString=toSource(Map$2),promiseCtorString=toSource(Promise$2),setCtorString=toSource(Set$2),weakMapCtorString=toSource(WeakMap$1),getTag=baseGetTag;(DataView$1&&getTag(new DataView$1(new ArrayBuffer(1)))!=dataViewTag$3||Map$2&&getTag(new Map$2)!=mapTag$8||Promise$2&&getTag(Promise$2.resolve())!=promiseTag||Set$2&&getTag(new Set$2)!=setTag$8||WeakMap$1&&getTag(new WeakMap$1)!=weakMapTag$2)&&(getTag=function(e){var t=baseGetTag(e),r=t==objectTag$2?e.constructor:void 0,i=r?toSource(r):"";if(i)switch(i){case dataViewCtorString:return dataViewTag$3;case mapCtorString:return mapTag$8;case promiseCtorString:return promiseTag;case setCtorString:return setTag$8;case weakMapCtorString:return weakMapTag$2}return t});var getTag$1=getTag,objectProto$c=Object.prototype,hasOwnProperty$b=objectProto$c.hasOwnProperty;function initCloneArray(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&hasOwnProperty$b.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var Uint8Array$1=root$1.Uint8Array,Uint8Array$2=Uint8Array$1;function cloneArrayBuffer(e){var t=new e.constructor(e.byteLength);return new Uint8Array$2(t).set(new Uint8Array$2(e)),t}function cloneDataView(e,t){var r=t?cloneArrayBuffer(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var reFlags$1=/\w*$/;function cloneRegExp(e){var t=new e.constructor(e.source,reFlags$1.exec(e));return t.lastIndex=e.lastIndex,t}var symbolProto$1=Symbol$2?Symbol$2.prototype:void 0,symbolValueOf$1=symbolProto$1?symbolProto$1.valueOf:void 0;function cloneSymbol(e){return symbolValueOf$1?Object(symbolValueOf$1.call(e)):{}}function cloneTypedArray(e,t){var r=t?cloneArrayBuffer(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var boolTag$3="[object Boolean]",dateTag$3="[object Date]",mapTag$7="[object Map]",numberTag$3="[object Number]",regexpTag$3="[object RegExp]",setTag$7="[object Set]",stringTag$3="[object String]",symbolTag$2="[object Symbol]",arrayBufferTag$3="[object ArrayBuffer]",dataViewTag$2="[object DataView]",float32Tag$1="[object Float32Array]",float64Tag$1="[object Float64Array]",int8Tag$1="[object Int8Array]",int16Tag$1="[object Int16Array]",int32Tag$1="[object Int32Array]",uint8Tag$1="[object Uint8Array]",uint8ClampedTag$1="[object Uint8ClampedArray]",uint16Tag$1="[object Uint16Array]",uint32Tag$1="[object Uint32Array]";function initCloneByTag(e,t,r){var i=e.constructor;switch(t){case arrayBufferTag$3:return cloneArrayBuffer(e);case boolTag$3:case dateTag$3:return new i(+e);case dataViewTag$2:return cloneDataView(e,r);case float32Tag$1:case float64Tag$1:case int8Tag$1:case int16Tag$1:case int32Tag$1:case uint8Tag$1:case uint8ClampedTag$1:case uint16Tag$1:case uint32Tag$1:return cloneTypedArray(e,r);case mapTag$7:return new i;case numberTag$3:case stringTag$3:return new i(e);case regexpTag$3:return cloneRegExp(e);case setTag$7:return new i;case symbolTag$2:return cloneSymbol(e)}}function initCloneObject(e){return"function"!=typeof e.constructor||isPrototype(e)?{}:baseCreate$1(getPrototype$1(e))}var mapTag$6="[object Map]";function baseIsMap(e){return isObjectLike(e)&&getTag$1(e)==mapTag$6}var nodeIsMap=nodeUtil$1&&nodeUtil$1.isMap,isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap,isMap$1=isMap,setTag$6="[object Set]";function baseIsSet(e){return isObjectLike(e)&&getTag$1(e)==setTag$6}var nodeIsSet=nodeUtil$1&&nodeUtil$1.isSet,isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet,isSet$1=isSet,CLONE_DEEP_FLAG$7=1,CLONE_FLAT_FLAG$1=2,CLONE_SYMBOLS_FLAG$5=4,argsTag$1="[object Arguments]",arrayTag$1="[object Array]",boolTag$2="[object Boolean]",dateTag$2="[object Date]",errorTag$1="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag$5="[object Map]",numberTag$2="[object Number]",objectTag$1="[object Object]",regexpTag$2="[object RegExp]",setTag$5="[object Set]",stringTag$2="[object String]",symbolTag$1="[object Symbol]",weakMapTag$1="[object WeakMap]",arrayBufferTag$2="[object ArrayBuffer]",dataViewTag$1="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",cloneableTags={};function baseClone(e,t,r,i,s,o){var n,a=t&CLONE_DEEP_FLAG$7,u=t&CLONE_FLAT_FLAG$1,l=t&CLONE_SYMBOLS_FLAG$5;if(r&&(n=s?r(e,i,s,o):r(e)),void 0!==n)return n;if(!isObject(e))return e;var c=isArray$1(e);if(c){if(n=initCloneArray(e),!a)return copyArray(e,n)}else{var d=getTag$1(e),h=d==funcTag||d==genTag;if(isBuffer$1(e))return cloneBuffer(e,a);if(d==objectTag$1||d==argsTag$1||h&&!s){if(n=u||h?{}:initCloneObject(e),!a)return u?copySymbolsIn(e,baseAssignIn(n,e)):copySymbols(e,baseAssign(n,e))}else{if(!cloneableTags[d])return s?e:{};n=initCloneByTag(e,d,a)}}o||(o=new Stack);var m=o.get(e);if(m)return m;o.set(e,n),isSet$1(e)?e.forEach((function(i){n.add(baseClone(i,t,r,i,e,o))})):isMap$1(e)&&e.forEach((function(i,s){n.set(s,baseClone(i,t,r,s,e,o))}));var p=c?void 0:(l?u?getAllKeysIn:getAllKeys:u?keysIn:keys)(e);return arrayEach(p||e,(function(i,s){p&&(i=e[s=i]),assignValue(n,s,baseClone(i,t,r,s,e,o))})),n}cloneableTags[argsTag$1]=cloneableTags[arrayTag$1]=cloneableTags[arrayBufferTag$2]=cloneableTags[dataViewTag$1]=cloneableTags[boolTag$2]=cloneableTags[dateTag$2]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag$5]=cloneableTags[numberTag$2]=cloneableTags[objectTag$1]=cloneableTags[regexpTag$2]=cloneableTags[setTag$5]=cloneableTags[stringTag$2]=cloneableTags[symbolTag$1]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag$1]=cloneableTags[funcTag]=cloneableTags[weakMapTag$1]=!1;var CLONE_SYMBOLS_FLAG$4=4;function clone(e){return baseClone(e,CLONE_SYMBOLS_FLAG$4)}var CLONE_DEEP_FLAG$6=1,CLONE_SYMBOLS_FLAG$3=4;function cloneDeep(e){return baseClone(e,CLONE_DEEP_FLAG$6|CLONE_SYMBOLS_FLAG$3)}var CLONE_DEEP_FLAG$5=1,CLONE_SYMBOLS_FLAG$2=4;function cloneDeepWith(e,t){return baseClone(e,CLONE_DEEP_FLAG$5|CLONE_SYMBOLS_FLAG$2,t="function"==typeof t?t:void 0)}var CLONE_SYMBOLS_FLAG$1=4;function cloneWith(e,t){return baseClone(e,CLONE_SYMBOLS_FLAG$1,t="function"==typeof t?t:void 0)}function wrapperCommit(){return new LodashWrapper(this.value(),this.__chain__)}function compact(e){for(var t=-1,r=null==e?0:e.length,i=0,s=[];++t<r;){var o=e[t];o&&(s[i++]=o)}return s}function concat(){var e=arguments.length;if(!e)return[];for(var t=Array(e-1),r=arguments[0],i=e;i--;)t[i-1]=arguments[i];return arrayPush(isArray$1(r)?copyArray(r):[r],baseFlatten(t,1))}var HASH_UNDEFINED="__lodash_hash_undefined__";function setCacheAdd(e){return this.__data__.set(e,HASH_UNDEFINED),this}function setCacheHas(e){return this.__data__.has(e)}function SetCache(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new MapCache;++t<r;)this.add(e[t])}function arraySome(e,t){for(var r=-1,i=null==e?0:e.length;++r<i;)if(t(e[r],r,e))return!0;return!1}function cacheHas(e,t){return e.has(t)}SetCache.prototype.add=SetCache.prototype.push=setCacheAdd,SetCache.prototype.has=setCacheHas;var COMPARE_PARTIAL_FLAG$5=1,COMPARE_UNORDERED_FLAG$3=2;function equalArrays(e,t,r,i,s,o){var n=r&COMPARE_PARTIAL_FLAG$5,a=e.length,u=t.length;if(a!=u&&!(n&&u>a))return!1;var l=o.get(e),c=o.get(t);if(l&&c)return l==t&&c==e;var d=-1,h=!0,m=r&COMPARE_UNORDERED_FLAG$3?new SetCache:void 0;for(o.set(e,t),o.set(t,e);++d<a;){var p=e[d],f=t[d];if(i)var g=n?i(f,p,d,t,e,o):i(p,f,d,e,t,o);if(void 0!==g){if(g)continue;h=!1;break}if(m){if(!arraySome(t,(function(e,t){if(!cacheHas(m,t)&&(p===e||s(p,e,r,i,o)))return m.push(t)}))){h=!1;break}}else if(p!==f&&!s(p,f,r,i,o)){h=!1;break}}return o.delete(e),o.delete(t),h}function mapToArray(e){var t=-1,r=Array(e.size);return e.forEach((function(e,i){r[++t]=[i,e]})),r}function setToArray(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}var COMPARE_PARTIAL_FLAG$4=1,COMPARE_UNORDERED_FLAG$2=2,boolTag$1="[object Boolean]",dateTag$1="[object Date]",errorTag="[object Error]",mapTag$4="[object Map]",numberTag$1="[object Number]",regexpTag$1="[object RegExp]",setTag$4="[object Set]",stringTag$1="[object String]",symbolTag="[object Symbol]",arrayBufferTag$1="[object ArrayBuffer]",dataViewTag="[object DataView]",symbolProto=Symbol$2?Symbol$2.prototype:void 0,symbolValueOf=symbolProto?symbolProto.valueOf:void 0;function equalByTag(e,t,r,i,s,o,n){switch(r){case dataViewTag:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case arrayBufferTag$1:return!(e.byteLength!=t.byteLength||!o(new Uint8Array$2(e),new Uint8Array$2(t)));case boolTag$1:case dateTag$1:case numberTag$1:return eq(+e,+t);case errorTag:return e.name==t.name&&e.message==t.message;case regexpTag$1:case stringTag$1:return e==t+"";case mapTag$4:var a=mapToArray;case setTag$4:var u=i&COMPARE_PARTIAL_FLAG$4;if(a||(a=setToArray),e.size!=t.size&&!u)return!1;var l=n.get(e);if(l)return l==t;i|=COMPARE_UNORDERED_FLAG$2,n.set(e,t);var c=equalArrays(a(e),a(t),i,s,o,n);return n.delete(e),c;case symbolTag:if(symbolValueOf)return symbolValueOf.call(e)==symbolValueOf.call(t)}return!1}var COMPARE_PARTIAL_FLAG$3=1,objectProto$b=Object.prototype,hasOwnProperty$a=objectProto$b.hasOwnProperty;function equalObjects(e,t,r,i,s,o){var n=r&COMPARE_PARTIAL_FLAG$3,a=getAllKeys(e),u=a.length;if(u!=getAllKeys(t).length&&!n)return!1;for(var l=u;l--;){var c=a[l];if(!(n?c in t:hasOwnProperty$a.call(t,c)))return!1}var d=o.get(e),h=o.get(t);if(d&&h)return d==t&&h==e;var m=!0;o.set(e,t),o.set(t,e);for(var p=n;++l<u;){var f=e[c=a[l]],g=t[c];if(i)var v=n?i(g,f,c,t,e,o):i(f,g,c,e,t,o);if(!(void 0===v?f===g||s(f,g,r,i,o):v)){m=!1;break}p||(p="constructor"==c)}if(m&&!p){var y=e.constructor,b=t.constructor;y==b||!("constructor"in e)||!("constructor"in t)||"function"==typeof y&&y instanceof y&&"function"==typeof b&&b instanceof b||(m=!1)}return o.delete(e),o.delete(t),m}var COMPARE_PARTIAL_FLAG$2=1,argsTag="[object Arguments]",arrayTag="[object Array]",objectTag="[object Object]",objectProto$a=Object.prototype,hasOwnProperty$9=objectProto$a.hasOwnProperty;function baseIsEqualDeep(e,t,r,i,s,o){var n=isArray$1(e),a=isArray$1(t),u=n?arrayTag:getTag$1(e),l=a?arrayTag:getTag$1(t),c=(u=u==argsTag?objectTag:u)==objectTag,d=(l=l==argsTag?objectTag:l)==objectTag,h=u==l;if(h&&isBuffer$1(e)){if(!isBuffer$1(t))return!1;n=!0,c=!1}if(h&&!c)return o||(o=new Stack),n||isTypedArray$1(e)?equalArrays(e,t,r,i,s,o):equalByTag(e,t,u,r,i,s,o);if(!(r&COMPARE_PARTIAL_FLAG$2)){var m=c&&hasOwnProperty$9.call(e,"__wrapped__"),p=d&&hasOwnProperty$9.call(t,"__wrapped__");if(m||p){var f=m?e.value():e,g=p?t.value():t;return o||(o=new Stack),s(f,g,r,i,o)}}return!!h&&(o||(o=new Stack),equalObjects(e,t,r,i,s,o))}function baseIsEqual(e,t,r,i,s){return e===t||(null==e||null==t||!isObjectLike(e)&&!isObjectLike(t)?e!=e&&t!=t:baseIsEqualDeep(e,t,r,i,baseIsEqual,s))}var COMPARE_PARTIAL_FLAG$1=1,COMPARE_UNORDERED_FLAG$1=2;function baseIsMatch(e,t,r,i){var s=r.length,o=s,n=!i;if(null==e)return!o;for(e=Object(e);s--;){var a=r[s];if(n&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++s<o;){var u=(a=r[s])[0],l=e[u],c=a[1];if(n&&a[2]){if(void 0===l&&!(u in e))return!1}else{var d=new Stack;if(i)var h=i(l,c,u,e,t,d);if(!(void 0===h?baseIsEqual(c,l,COMPARE_PARTIAL_FLAG$1|COMPARE_UNORDERED_FLAG$1,i,d):h))return!1}}return!0}function isStrictComparable(e){return e==e&&!isObject(e)}function getMatchData(e){for(var t=keys(e),r=t.length;r--;){var i=t[r],s=e[i];t[r]=[i,s,isStrictComparable(s)]}return t}function matchesStrictComparable(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}function baseMatches(e){var t=getMatchData(e);return 1==t.length&&t[0][2]?matchesStrictComparable(t[0][0],t[0][1]):function(r){return r===e||baseIsMatch(r,e,t)}}function baseHasIn(e,t){return null!=e&&t in Object(e)}function hasPath(e,t,r){for(var i=-1,s=(t=castPath(t,e)).length,o=!1;++i<s;){var n=toKey(t[i]);if(!(o=null!=e&&r(e,n)))break;e=e[n]}return o||++i!=s?o:!!(s=null==e?0:e.length)&&isLength(s)&&isIndex(n,s)&&(isArray$1(e)||isArguments$1(e))}function hasIn(e,t){return null!=e&&hasPath(e,t,baseHasIn)}var COMPARE_PARTIAL_FLAG=1,COMPARE_UNORDERED_FLAG=2;function baseMatchesProperty(e,t){return isKey(e)&&isStrictComparable(t)?matchesStrictComparable(toKey(e),t):function(r){var i=get(r,e);return void 0===i&&i===t?hasIn(r,e):baseIsEqual(t,i,COMPARE_PARTIAL_FLAG|COMPARE_UNORDERED_FLAG)}}function baseProperty(e){return function(t){return null==t?void 0:t[e]}}function basePropertyDeep(e){return function(t){return baseGet(t,e)}}function property(e){return isKey(e)?baseProperty(toKey(e)):basePropertyDeep(e)}function baseIteratee(e){return"function"==typeof e?e:null==e?identity$1:"object"==typeof e?isArray$1(e)?baseMatchesProperty(e[0],e[1]):baseMatches(e):property(e)}var FUNC_ERROR_TEXT$7="Expected a function";function cond(e){var t=null==e?0:e.length,r=baseIteratee;return e=t?arrayMap(e,(function(e){if("function"!=typeof e[1])throw new TypeError(FUNC_ERROR_TEXT$7);return[r(e[0]),e[1]]})):[],baseRest((function(r){for(var i=-1;++i<t;){var s=e[i];if(apply(s[0],this,r))return apply(s[1],this,r)}}))}function baseConformsTo(e,t,r){var i=r.length;if(null==e)return!i;for(e=Object(e);i--;){var s=r[i],o=t[s],n=e[s];if(void 0===n&&!(s in e)||!o(n))return!1}return!0}function baseConforms(e){var t=keys(e);return function(r){return baseConformsTo(r,e,t)}}var CLONE_DEEP_FLAG$4=1;function conforms(e){return baseConforms(baseClone(e,CLONE_DEEP_FLAG$4))}function conformsTo(e,t){return null==t||baseConformsTo(e,t,keys(t))}function arrayAggregator(e,t,r,i){for(var s=-1,o=null==e?0:e.length;++s<o;){var n=e[s];t(i,n,r(n),e)}return i}function createBaseFor(e){return function(t,r,i){for(var s=-1,o=Object(t),n=i(t),a=n.length;a--;){var u=n[e?a:++s];if(!1===r(o[u],u,o))break}return t}}var baseFor=createBaseFor(),baseFor$1=baseFor;function baseForOwn(e,t){return e&&baseFor$1(e,t,keys)}function createBaseEach(e,t){return function(r,i){if(null==r)return r;if(!isArrayLike(r))return e(r,i);for(var s=r.length,o=t?s:-1,n=Object(r);(t?o--:++o<s)&&!1!==i(n[o],o,n););return r}}var baseEach=createBaseEach(baseForOwn),baseEach$1=baseEach;function baseAggregator(e,t,r,i){return baseEach$1(e,(function(e,s,o){t(i,e,r(e),o)})),i}function createAggregator(e,t){return function(r,i){var s=isArray$1(r)?arrayAggregator:baseAggregator,o=t?t():{};return s(r,e,baseIteratee(i),o)}}var objectProto$9=Object.prototype,hasOwnProperty$8=objectProto$9.hasOwnProperty,countBy=createAggregator((function(e,t,r){hasOwnProperty$8.call(e,r)?++e[r]:baseAssignValue(e,r,1)})),countBy$1=countBy;function create(e,t){var r=baseCreate$1(e);return null==t?r:baseAssign(r,t)}var WRAP_CURRY_FLAG$1=8;function curry(e,t,r){var i=createWrap(e,WRAP_CURRY_FLAG$1,void 0,void 0,void 0,void 0,void 0,t=r?void 0:t);return i.placeholder=curry.placeholder,i}curry.placeholder={};var WRAP_CURRY_RIGHT_FLAG=16;function curryRight(e,t,r){var i=createWrap(e,WRAP_CURRY_RIGHT_FLAG,void 0,void 0,void 0,void 0,void 0,t=r?void 0:t);return i.placeholder=curryRight.placeholder,i}curryRight.placeholder={};var now=function(){return root$1.Date.now()},now$1=now,FUNC_ERROR_TEXT$6="Expected a function",nativeMax$b=Math.max,nativeMin$b=Math.min;function debounce(e,t,r){var i,s,o,n,a,u,l=0,c=!1,d=!1,h=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT$6);function m(t){var r=i,o=s;return i=s=void 0,l=t,n=e.apply(o,r)}function p(e){return l=e,a=setTimeout(g,t),c?m(e):n}function f(e){var r=e-u;return void 0===u||r>=t||r<0||d&&e-l>=o}function g(){var e=now$1();if(f(e))return v(e);a=setTimeout(g,function(e){var r=t-(e-u);return d?nativeMin$b(r,o-(e-l)):r}(e))}function v(e){return a=void 0,h&&i?m(e):(i=s=void 0,n)}function y(){var e=now$1(),r=f(e);if(i=arguments,s=this,u=e,r){if(void 0===a)return p(u);if(d)return clearTimeout(a),a=setTimeout(g,t),m(u)}return void 0===a&&(a=setTimeout(g,t)),n}return t=toNumber(t)||0,isObject(r)&&(c=!!r.leading,o=(d="maxWait"in r)?nativeMax$b(toNumber(r.maxWait)||0,t):o,h="trailing"in r?!!r.trailing:h),y.cancel=function(){void 0!==a&&clearTimeout(a),l=0,i=u=s=a=void 0},y.flush=function(){return void 0===a?n:v(now$1())},y}function defaultTo(e,t){return null==e||e!=e?t:e}var objectProto$8=Object.prototype,hasOwnProperty$7=objectProto$8.hasOwnProperty,defaults=baseRest((function(e,t){e=Object(e);var r=-1,i=t.length,s=i>2?t[2]:void 0;for(s&&isIterateeCall(t[0],t[1],s)&&(i=1);++r<i;)for(var o=t[r],n=keysIn(o),a=-1,u=n.length;++a<u;){var l=n[a],c=e[l];(void 0===c||eq(c,objectProto$8[l])&&!hasOwnProperty$7.call(e,l))&&(e[l]=o[l])}return e})),defaults$1=defaults;function assignMergeValue(e,t,r){(void 0!==r&&!eq(e[t],r)||void 0===r&&!(t in e))&&baseAssignValue(e,t,r)}function isArrayLikeObject(e){return isObjectLike(e)&&isArrayLike(e)}function safeGet(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}function toPlainObject(e){return copyObject(e,keysIn(e))}function baseMergeDeep(e,t,r,i,s,o,n){var a=safeGet(e,r),u=safeGet(t,r),l=n.get(u);if(l)assignMergeValue(e,r,l);else{var c=o?o(a,u,r+"",e,t,n):void 0,d=void 0===c;if(d){var h=isArray$1(u),m=!h&&isBuffer$1(u),p=!h&&!m&&isTypedArray$1(u);c=u,h||m||p?isArray$1(a)?c=a:isArrayLikeObject(a)?c=copyArray(a):m?(d=!1,c=cloneBuffer(u,!0)):p?(d=!1,c=cloneTypedArray(u,!0)):c=[]:isPlainObject(u)||isArguments$1(u)?(c=a,isArguments$1(a)?c=toPlainObject(a):isObject(a)&&!isFunction$1(a)||(c=initCloneObject(u))):d=!1}d&&(n.set(u,c),s(c,u,i,o,n),n.delete(u)),assignMergeValue(e,r,c)}}function baseMerge(e,t,r,i,s){e!==t&&baseFor$1(t,(function(o,n){if(s||(s=new Stack),isObject(o))baseMergeDeep(e,t,n,r,baseMerge,i,s);else{var a=i?i(safeGet(e,n),o,n+"",e,t,s):void 0;void 0===a&&(a=o),assignMergeValue(e,n,a)}}),keysIn)}function customDefaultsMerge(e,t,r,i,s,o){return isObject(e)&&isObject(t)&&(o.set(t,e),baseMerge(e,t,void 0,customDefaultsMerge,o),o.delete(t)),e}var mergeWith=createAssigner((function(e,t,r,i){baseMerge(e,t,r,i)})),mergeWith$1=mergeWith,defaultsDeep=baseRest((function(e){return e.push(void 0,customDefaultsMerge),apply(mergeWith$1,void 0,e)})),defaultsDeep$1=defaultsDeep,FUNC_ERROR_TEXT$5="Expected a function";function baseDelay(e,t,r){if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT$5);return setTimeout((function(){e.apply(void 0,r)}),t)}var defer=baseRest((function(e,t){return baseDelay(e,1,t)})),defer$1=defer,delay=baseRest((function(e,t,r){return baseDelay(e,toNumber(t)||0,r)})),delay$1=delay;function arrayIncludesWith(e,t,r){for(var i=-1,s=null==e?0:e.length;++i<s;)if(r(t,e[i]))return!0;return!1}var LARGE_ARRAY_SIZE$1=200;function baseDifference(e,t,r,i){var s=-1,o=arrayIncludes,n=!0,a=e.length,u=[],l=t.length;if(!a)return u;r&&(t=arrayMap(t,baseUnary(r))),i?(o=arrayIncludesWith,n=!1):t.length>=LARGE_ARRAY_SIZE$1&&(o=cacheHas,n=!1,t=new SetCache(t));e:for(;++s<a;){var c=e[s],d=null==r?c:r(c);if(c=i||0!==c?c:0,n&&d==d){for(var h=l;h--;)if(t[h]===d)continue e;u.push(c)}else o(t,d,i)||u.push(c)}return u}var difference=baseRest((function(e,t){return isArrayLikeObject(e)?baseDifference(e,baseFlatten(t,1,isArrayLikeObject,!0)):[]})),difference$1=difference;function last(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}var differenceBy=baseRest((function(e,t){var r=last(t);return isArrayLikeObject(r)&&(r=void 0),isArrayLikeObject(e)?baseDifference(e,baseFlatten(t,1,isArrayLikeObject,!0),baseIteratee(r)):[]})),differenceBy$1=differenceBy,differenceWith=baseRest((function(e,t){var r=last(t);return isArrayLikeObject(r)&&(r=void 0),isArrayLikeObject(e)?baseDifference(e,baseFlatten(t,1,isArrayLikeObject,!0),void 0,r):[]})),differenceWith$1=differenceWith,divide=createMathOperation((function(e,t){return e/t}),1),divide$1=divide;function drop(e,t,r){var i=null==e?0:e.length;return i?baseSlice(e,(t=r||void 0===t?1:toInteger(t))<0?0:t,i):[]}function dropRight(e,t,r){var i=null==e?0:e.length;return i?baseSlice(e,0,(t=i-(t=r||void 0===t?1:toInteger(t)))<0?0:t):[]}function baseWhile(e,t,r,i){for(var s=e.length,o=i?s:-1;(i?o--:++o<s)&&t(e[o],o,e););return r?baseSlice(e,i?0:o,i?o+1:s):baseSlice(e,i?o+1:0,i?s:o)}function dropRightWhile(e,t){return e&&e.length?baseWhile(e,baseIteratee(t),!0,!0):[]}function dropWhile(e,t){return e&&e.length?baseWhile(e,baseIteratee(t),!0):[]}function castFunction(e){return"function"==typeof e?e:identity$1}function forEach(e,t){return(isArray$1(e)?arrayEach:baseEach$1)(e,castFunction(t))}function arrayEachRight(e,t){for(var r=null==e?0:e.length;r--&&!1!==t(e[r],r,e););return e}var baseForRight=createBaseFor(!0),baseForRight$1=baseForRight;function baseForOwnRight(e,t){return e&&baseForRight$1(e,t,keys)}var baseEachRight=createBaseEach(baseForOwnRight,!0),baseEachRight$1=baseEachRight;function forEachRight(e,t){return(isArray$1(e)?arrayEachRight:baseEachRight$1)(e,castFunction(t))}function endsWith(e,t,r){e=toString$1(e),t=baseToString(t);var i=e.length,s=r=void 0===r?i:baseClamp(toInteger(r),0,i);return(r-=t.length)>=0&&e.slice(r,s)==t}function baseToPairs(e,t){return arrayMap(t,(function(t){return[t,e[t]]}))}function setToPairs(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=[e,e]})),r}var mapTag$3="[object Map]",setTag$3="[object Set]";function createToPairs(e){return function(t){var r=getTag$1(t);return r==mapTag$3?mapToArray(t):r==setTag$3?setToPairs(t):baseToPairs(t,e(t))}}var toPairs=createToPairs(keys),toPairs$1=toPairs,toPairsIn=createToPairs(keysIn),toPairsIn$1=toPairsIn,htmlEscapes={"&":"&","<":"<",">":">",'"':""","'":"'"},escapeHtmlChar=basePropertyOf(htmlEscapes),escapeHtmlChar$1=escapeHtmlChar,reUnescapedHtml=/[&<>"']/g,reHasUnescapedHtml=RegExp(reUnescapedHtml.source);function escape(e){return(e=toString$1(e))&&reHasUnescapedHtml.test(e)?e.replace(reUnescapedHtml,escapeHtmlChar$1):e}var reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reHasRegExpChar=RegExp(reRegExpChar.source);function escapeRegExp(e){return(e=toString$1(e))&&reHasRegExpChar.test(e)?e.replace(reRegExpChar,"\\$&"):e}function arrayEvery(e,t){for(var r=-1,i=null==e?0:e.length;++r<i;)if(!t(e[r],r,e))return!1;return!0}function baseEvery(e,t){var r=!0;return baseEach$1(e,(function(e,i,s){return r=!!t(e,i,s)})),r}function every(e,t,r){var i=isArray$1(e)?arrayEvery:baseEvery;return r&&isIterateeCall(e,t,r)&&(t=void 0),i(e,baseIteratee(t))}var MAX_ARRAY_LENGTH$5=4294967295;function toLength(e){return e?baseClamp(toInteger(e),0,MAX_ARRAY_LENGTH$5):0}function baseFill(e,t,r,i){var s=e.length;for((r=toInteger(r))<0&&(r=-r>s?0:s+r),(i=void 0===i||i>s?s:toInteger(i))<0&&(i+=s),i=r>i?0:toLength(i);r<i;)e[r++]=t;return e}function fill(e,t,r,i){var s=null==e?0:e.length;return s?(r&&"number"!=typeof r&&isIterateeCall(e,t,r)&&(r=0,i=s),baseFill(e,t,r,i)):[]}function baseFilter(e,t){var r=[];return baseEach$1(e,(function(e,i,s){t(e,i,s)&&r.push(e)})),r}function filter(e,t){return(isArray$1(e)?arrayFilter:baseFilter)(e,baseIteratee(t))}function createFind(e){return function(t,r,i){var s=Object(t);if(!isArrayLike(t)){var o=baseIteratee(r);t=keys(t),r=function(e){return o(s[e],e,s)}}var n=e(t,r,i);return n>-1?s[o?t[n]:n]:void 0}}var nativeMax$a=Math.max;function findIndex(e,t,r){var i=null==e?0:e.length;if(!i)return-1;var s=null==r?0:toInteger(r);return s<0&&(s=nativeMax$a(i+s,0)),baseFindIndex(e,baseIteratee(t),s)}var find=createFind(findIndex),find$1=find;function baseFindKey(e,t,r){var i;return r(e,(function(e,r,s){if(t(e,r,s))return i=r,!1})),i}function findKey(e,t){return baseFindKey(e,baseIteratee(t),baseForOwn)}var nativeMax$9=Math.max,nativeMin$a=Math.min;function findLastIndex(e,t,r){var i=null==e?0:e.length;if(!i)return-1;var s=i-1;return void 0!==r&&(s=toInteger(r),s=r<0?nativeMax$9(i+s,0):nativeMin$a(s,i-1)),baseFindIndex(e,baseIteratee(t),s,!0)}var findLast=createFind(findLastIndex),findLast$1=findLast;function findLastKey(e,t){return baseFindKey(e,baseIteratee(t),baseForOwnRight)}function head(e){return e&&e.length?e[0]:void 0}function baseMap(e,t){var r=-1,i=isArrayLike(e)?Array(e.length):[];return baseEach$1(e,(function(e,s,o){i[++r]=t(e,s,o)})),i}function map(e,t){return(isArray$1(e)?arrayMap:baseMap)(e,baseIteratee(t))}function flatMap(e,t){return baseFlatten(map(e,t),1)}var INFINITY$2=1/0;function flatMapDeep(e,t){return baseFlatten(map(e,t),INFINITY$2)}function flatMapDepth(e,t,r){return r=void 0===r?1:toInteger(r),baseFlatten(map(e,t),r)}var INFINITY$1=1/0;function flattenDeep(e){return(null==e?0:e.length)?baseFlatten(e,INFINITY$1):[]}function flattenDepth(e,t){return(null==e?0:e.length)?baseFlatten(e,t=void 0===t?1:toInteger(t)):[]}var WRAP_FLIP_FLAG=512;function flip(e){return createWrap(e,WRAP_FLIP_FLAG)}var floor=createRound("floor"),floor$1=floor,FUNC_ERROR_TEXT$4="Expected a function",WRAP_CURRY_FLAG=8,WRAP_PARTIAL_FLAG$1=32,WRAP_ARY_FLAG=128,WRAP_REARG_FLAG$1=256;function createFlow(e){return flatRest((function(t){var r=t.length,i=r,s=LodashWrapper.prototype.thru;for(e&&t.reverse();i--;){var o=t[i];if("function"!=typeof o)throw new TypeError(FUNC_ERROR_TEXT$4);if(s&&!n&&"wrapper"==getFuncName(o))var n=new LodashWrapper([],!0)}for(i=n?i:r;++i<r;){var a=getFuncName(o=t[i]),u="wrapper"==a?getData$1(o):void 0;n=u&&isLaziable(u[0])&&u[1]==(WRAP_ARY_FLAG|WRAP_CURRY_FLAG|WRAP_PARTIAL_FLAG$1|WRAP_REARG_FLAG$1)&&!u[4].length&&1==u[9]?n[getFuncName(u[0])].apply(n,u[3]):1==o.length&&isLaziable(o)?n[a]():n.thru(o)}return function(){var e=arguments,i=e[0];if(n&&1==e.length&&isArray$1(i))return n.plant(i).value();for(var s=0,o=r?t[s].apply(this,e):i;++s<r;)o=t[s].call(this,o);return o}}))}var flow=createFlow(),flow$1=flow,flowRight=createFlow(!0),flowRight$1=flowRight;function forIn(e,t){return null==e?e:baseFor$1(e,castFunction(t),keysIn)}function forInRight(e,t){return null==e?e:baseForRight$1(e,castFunction(t),keysIn)}function forOwn(e,t){return e&&baseForOwn(e,castFunction(t))}function forOwnRight(e,t){return e&&baseForOwnRight(e,castFunction(t))}function fromPairs(e){for(var t=-1,r=null==e?0:e.length,i={};++t<r;){var s=e[t];i[s[0]]=s[1]}return i}function baseFunctions(e,t){return arrayFilter(t,(function(t){return isFunction$1(e[t])}))}function functions(e){return null==e?[]:baseFunctions(e,keys(e))}function functionsIn(e){return null==e?[]:baseFunctions(e,keysIn(e))}var objectProto$7=Object.prototype,hasOwnProperty$6=objectProto$7.hasOwnProperty,groupBy=createAggregator((function(e,t,r){hasOwnProperty$6.call(e,r)?e[r].push(t):baseAssignValue(e,r,[t])})),groupBy$1=groupBy;function baseGt(e,t){return e>t}function createRelationalOperation(e){return function(t,r){return"string"==typeof t&&"string"==typeof r||(t=toNumber(t),r=toNumber(r)),e(t,r)}}var gt=createRelationalOperation(baseGt),gt$1=gt,gte=createRelationalOperation((function(e,t){return e>=t})),gte$1=gte,objectProto$6=Object.prototype,hasOwnProperty$5=objectProto$6.hasOwnProperty;function baseHas(e,t){return null!=e&&hasOwnProperty$5.call(e,t)}function has$1(e,t){return null!=e&&hasPath(e,t,baseHas)}var nativeMax$8=Math.max,nativeMin$9=Math.min;function baseInRange(e,t,r){return e>=nativeMin$9(t,r)&&e<nativeMax$8(t,r)}function inRange(e,t,r){return t=toFinite(t),void 0===r?(r=t,t=0):r=toFinite(r),baseInRange(e=toNumber(e),t,r)}var stringTag="[object String]";function isString(e){return"string"==typeof e||!isArray$1(e)&&isObjectLike(e)&&baseGetTag(e)==stringTag}function baseValues(e,t){return arrayMap(t,(function(t){return e[t]}))}function values(e){return null==e?[]:baseValues(e,keys(e))}var nativeMax$7=Math.max;function includes(e,t,r,i){e=isArrayLike(e)?e:values(e),r=r&&!i?toInteger(r):0;var s=e.length;return r<0&&(r=nativeMax$7(s+r,0)),isString(e)?r<=s&&e.indexOf(t,r)>-1:!!s&&baseIndexOf(e,t,r)>-1}var nativeMax$6=Math.max;function indexOf$2(e,t,r){var i=null==e?0:e.length;if(!i)return-1;var s=null==r?0:toInteger(r);return s<0&&(s=nativeMax$6(i+s,0)),baseIndexOf(e,t,s)}function initial(e){return(null==e?0:e.length)?baseSlice(e,0,-1):[]}var nativeMin$8=Math.min;function baseIntersection(e,t,r){for(var i=r?arrayIncludesWith:arrayIncludes,s=e[0].length,o=e.length,n=o,a=Array(o),u=1/0,l=[];n--;){var c=e[n];n&&t&&(c=arrayMap(c,baseUnary(t))),u=nativeMin$8(c.length,u),a[n]=!r&&(t||s>=120&&c.length>=120)?new SetCache(n&&c):void 0}c=e[0];var d=-1,h=a[0];e:for(;++d<s&&l.length<u;){var m=c[d],p=t?t(m):m;if(m=r||0!==m?m:0,!(h?cacheHas(h,p):i(l,p,r))){for(n=o;--n;){var f=a[n];if(!(f?cacheHas(f,p):i(e[n],p,r)))continue e}h&&h.push(p),l.push(m)}}return l}function castArrayLikeObject(e){return isArrayLikeObject(e)?e:[]}var intersection=baseRest((function(e){var t=arrayMap(e,castArrayLikeObject);return t.length&&t[0]===e[0]?baseIntersection(t):[]})),intersection$1=intersection,intersectionBy=baseRest((function(e){var t=last(e),r=arrayMap(e,castArrayLikeObject);return t===last(r)?t=void 0:r.pop(),r.length&&r[0]===e[0]?baseIntersection(r,baseIteratee(t)):[]})),intersectionBy$1=intersectionBy,intersectionWith=baseRest((function(e){var t=last(e),r=arrayMap(e,castArrayLikeObject);return(t="function"==typeof t?t:void 0)&&r.pop(),r.length&&r[0]===e[0]?baseIntersection(r,void 0,t):[]})),intersectionWith$1=intersectionWith;function baseInverter(e,t,r,i){return baseForOwn(e,(function(e,s,o){t(i,r(e),s,o)})),i}function createInverter(e,t){return function(r,i){return baseInverter(r,e,t(i),{})}}var objectProto$5=Object.prototype,nativeObjectToString$1=objectProto$5.toString,invert=createInverter((function(e,t,r){null!=t&&"function"!=typeof t.toString&&(t=nativeObjectToString$1.call(t)),e[t]=r}),constant(identity$1)),invert$1=invert,objectProto$4=Object.prototype,hasOwnProperty$4=objectProto$4.hasOwnProperty,nativeObjectToString=objectProto$4.toString,invertBy=createInverter((function(e,t,r){null!=t&&"function"!=typeof t.toString&&(t=nativeObjectToString.call(t)),hasOwnProperty$4.call(e,t)?e[t].push(r):e[t]=[r]}),baseIteratee),invertBy$1=invertBy;function parent(e,t){return t.length<2?e:baseGet(e,baseSlice(t,0,-1))}function baseInvoke(e,t,r){var i=null==(e=parent(e,t=castPath(t,e)))?e:e[toKey(last(t))];return null==i?void 0:apply(i,e,r)}var invoke=baseRest(baseInvoke),invoke$1=invoke,invokeMap=baseRest((function(e,t,r){var i=-1,s="function"==typeof t,o=isArrayLike(e)?Array(e.length):[];return baseEach$1(e,(function(e){o[++i]=s?apply(t,e,r):baseInvoke(e,t,r)})),o})),invokeMap$1=invokeMap,arrayBufferTag="[object ArrayBuffer]";function baseIsArrayBuffer(e){return isObjectLike(e)&&baseGetTag(e)==arrayBufferTag}var nodeIsArrayBuffer=nodeUtil$1&&nodeUtil$1.isArrayBuffer,isArrayBuffer=nodeIsArrayBuffer?baseUnary(nodeIsArrayBuffer):baseIsArrayBuffer,isArrayBuffer$1=isArrayBuffer,boolTag="[object Boolean]";function isBoolean(e){return!0===e||!1===e||isObjectLike(e)&&baseGetTag(e)==boolTag}var dateTag="[object Date]";function baseIsDate(e){return isObjectLike(e)&&baseGetTag(e)==dateTag}var nodeIsDate=nodeUtil$1&&nodeUtil$1.isDate,isDate=nodeIsDate?baseUnary(nodeIsDate):baseIsDate,isDate$1=isDate;function isElement(e){return isObjectLike(e)&&1===e.nodeType&&!isPlainObject(e)}var mapTag$2="[object Map]",setTag$2="[object Set]",objectProto$3=Object.prototype,hasOwnProperty$3=objectProto$3.hasOwnProperty;function isEmpty(e){if(null==e)return!0;if(isArrayLike(e)&&(isArray$1(e)||"string"==typeof e||"function"==typeof e.splice||isBuffer$1(e)||isTypedArray$1(e)||isArguments$1(e)))return!e.length;var t=getTag$1(e);if(t==mapTag$2||t==setTag$2)return!e.size;if(isPrototype(e))return!baseKeys(e).length;for(var r in e)if(hasOwnProperty$3.call(e,r))return!1;return!0}function isEqual(e,t){return baseIsEqual(e,t)}function isEqualWith(e,t,r){var i=(r="function"==typeof r?r:void 0)?r(e,t):void 0;return void 0===i?baseIsEqual(e,t,void 0,r):!!i}var nativeIsFinite=root$1.isFinite;function isFinite$1(e){return"number"==typeof e&&nativeIsFinite(e)}function isInteger(e){return"number"==typeof e&&e==toInteger(e)}function isMatch(e,t){return e===t||baseIsMatch(e,t,getMatchData(t))}function isMatchWith(e,t,r){return r="function"==typeof r?r:void 0,baseIsMatch(e,t,getMatchData(t),r)}var numberTag="[object Number]";function isNumber(e){return"number"==typeof e||isObjectLike(e)&&baseGetTag(e)==numberTag}function isNaN$1(e){return isNumber(e)&&e!=+e}var isMaskable=coreJsData$1?isFunction$1:stubFalse,isMaskable$1=isMaskable,CORE_ERROR_TEXT="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.";function isNative$1(e){if(isMaskable$1(e))throw new Error(CORE_ERROR_TEXT);return baseIsNative(e)}function isNil(e){return null==e}function isNull(e){return null===e}var regexpTag="[object RegExp]";function baseIsRegExp(e){return isObjectLike(e)&&baseGetTag(e)==regexpTag}var nodeIsRegExp=nodeUtil$1&&nodeUtil$1.isRegExp,isRegExp=nodeIsRegExp?baseUnary(nodeIsRegExp):baseIsRegExp,isRegExp$1=isRegExp,MAX_SAFE_INTEGER$3=9007199254740991;function isSafeInteger(e){return isInteger(e)&&e>=-MAX_SAFE_INTEGER$3&&e<=MAX_SAFE_INTEGER$3}function isUndefined(e){return void 0===e}var weakMapTag="[object WeakMap]";function isWeakMap(e){return isObjectLike(e)&&getTag$1(e)==weakMapTag}var weakSetTag="[object WeakSet]";function isWeakSet(e){return isObjectLike(e)&&baseGetTag(e)==weakSetTag}var CLONE_DEEP_FLAG$3=1;function iteratee(e){return baseIteratee("function"==typeof e?e:baseClone(e,CLONE_DEEP_FLAG$3))}var arrayProto$4=Array.prototype,nativeJoin=arrayProto$4.join;function join(e,t){return null==e?"":nativeJoin.call(e,t)}var kebabCase=createCompounder((function(e,t,r){return e+(r?"-":"")+t.toLowerCase()})),kebabCase$1=kebabCase,keyBy=createAggregator((function(e,t,r){baseAssignValue(e,r,t)})),keyBy$1=keyBy;function strictLastIndexOf(e,t,r){for(var i=r+1;i--;)if(e[i]===t)return i;return i}var nativeMax$5=Math.max,nativeMin$7=Math.min;function lastIndexOf(e,t,r){var i=null==e?0:e.length;if(!i)return-1;var s=i;return void 0!==r&&(s=(s=toInteger(r))<0?nativeMax$5(i+s,0):nativeMin$7(s,i-1)),t==t?strictLastIndexOf(e,t,s):baseFindIndex(e,baseIsNaN,s,!0)}var lowerCase=createCompounder((function(e,t,r){return e+(r?" ":"")+t.toLowerCase()})),lowerCase$1=lowerCase,lowerFirst=createCaseFirst("toLowerCase"),lowerFirst$1=lowerFirst;function baseLt(e,t){return e<t}var lt=createRelationalOperation(baseLt),lt$1=lt,lte=createRelationalOperation((function(e,t){return e<=t})),lte$1=lte;function mapKeys(e,t){var r={};return t=baseIteratee(t),baseForOwn(e,(function(e,i,s){baseAssignValue(r,t(e,i,s),e)})),r}function mapValues(e,t){var r={};return t=baseIteratee(t),baseForOwn(e,(function(e,i,s){baseAssignValue(r,i,t(e,i,s))})),r}var CLONE_DEEP_FLAG$2=1;function matches(e){return baseMatches(baseClone(e,CLONE_DEEP_FLAG$2))}var CLONE_DEEP_FLAG$1=1;function matchesProperty(e,t){return baseMatchesProperty(e,baseClone(t,CLONE_DEEP_FLAG$1))}function baseExtremum(e,t,r){for(var i=-1,s=e.length;++i<s;){var o=e[i],n=t(o);if(null!=n&&(void 0===a?n==n&&!isSymbol(n):r(n,a)))var a=n,u=o}return u}function max(e){return e&&e.length?baseExtremum(e,identity$1,baseGt):void 0}function maxBy(e,t){return e&&e.length?baseExtremum(e,baseIteratee(t),baseGt):void 0}function baseSum(e,t){for(var r,i=-1,s=e.length;++i<s;){var o=t(e[i]);void 0!==o&&(r=void 0===r?o:r+o)}return r}var NAN=NaN;function baseMean(e,t){var r=null==e?0:e.length;return r?baseSum(e,t)/r:NAN}function mean(e){return baseMean(e,identity$1)}function meanBy(e,t){return baseMean(e,baseIteratee(t))}var merge=createAssigner((function(e,t,r){baseMerge(e,t,r)})),merge$1=merge,method=baseRest((function(e,t){return function(r){return baseInvoke(r,e,t)}})),method$1=method,methodOf=baseRest((function(e,t){return function(r){return baseInvoke(e,r,t)}})),methodOf$1=methodOf;function min(e){return e&&e.length?baseExtremum(e,identity$1,baseLt):void 0}function minBy(e,t){return e&&e.length?baseExtremum(e,baseIteratee(t),baseLt):void 0}function mixin$1(e,t,r){var i=keys(t),s=baseFunctions(t,i),o=!(isObject(r)&&"chain"in r&&!r.chain),n=isFunction$1(e);return arrayEach(s,(function(r){var i=t[r];e[r]=i,n&&(e.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=e(this.__wrapped__),s=r.__actions__=copyArray(this.__actions__);return s.push({func:i,args:arguments,thisArg:e}),r.__chain__=t,r}return i.apply(e,arrayPush([this.value()],arguments))})})),e}var multiply=createMathOperation((function(e,t){return e*t}),1),multiply$1=multiply,FUNC_ERROR_TEXT$3="Expected a function";function negate(e){if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT$3);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function iteratorToArray(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}var mapTag$1="[object Map]",setTag$1="[object Set]",symIterator$1=Symbol$2?Symbol$2.iterator:void 0;function toArray(e){if(!e)return[];if(isArrayLike(e))return isString(e)?stringToArray(e):copyArray(e);if(symIterator$1&&e[symIterator$1])return iteratorToArray(e[symIterator$1]());var t=getTag$1(e);return(t==mapTag$1?mapToArray:t==setTag$1?setToArray:values)(e)}function wrapperNext(){void 0===this.__values__&&(this.__values__=toArray(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}}function baseNth(e,t){var r=e.length;if(r)return isIndex(t+=t<0?r:0,r)?e[t]:void 0}function nth(e,t){return e&&e.length?baseNth(e,toInteger(t)):void 0}function nthArg(e){return e=toInteger(e),baseRest((function(t){return baseNth(t,e)}))}function baseUnset(e,t){return null==(e=parent(e,t=castPath(t,e)))||delete e[toKey(last(t))]}function customOmitClone(e){return isPlainObject(e)?void 0:e}var CLONE_DEEP_FLAG=1,CLONE_FLAT_FLAG=2,CLONE_SYMBOLS_FLAG=4,omit=flatRest((function(e,t){var r={};if(null==e)return r;var i=!1;t=arrayMap(t,(function(t){return t=castPath(t,e),i||(i=t.length>1),t})),copyObject(e,getAllKeysIn(e),r),i&&(r=baseClone(r,CLONE_DEEP_FLAG|CLONE_FLAT_FLAG|CLONE_SYMBOLS_FLAG,customOmitClone));for(var s=t.length;s--;)baseUnset(r,t[s]);return r})),omit$1=omit;function baseSet(e,t,r,i){if(!isObject(e))return e;for(var s=-1,o=(t=castPath(t,e)).length,n=o-1,a=e;null!=a&&++s<o;){var u=toKey(t[s]),l=r;if("__proto__"===u||"constructor"===u||"prototype"===u)return e;if(s!=n){var c=a[u];void 0===(l=i?i(c,u,a):void 0)&&(l=isObject(c)?c:isIndex(t[s+1])?[]:{})}assignValue(a,u,l),a=a[u]}return e}function basePickBy(e,t,r){for(var i=-1,s=t.length,o={};++i<s;){var n=t[i],a=baseGet(e,n);r(a,n)&&baseSet(o,castPath(n,e),a)}return o}function pickBy(e,t){if(null==e)return{};var r=arrayMap(getAllKeysIn(e),(function(e){return[e]}));return t=baseIteratee(t),basePickBy(e,r,(function(e,r){return t(e,r[0])}))}function omitBy(e,t){return pickBy(e,negate(baseIteratee(t)))}function once(e){return before(2,e)}function baseSortBy(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}function compareAscending(e,t){if(e!==t){var r=void 0!==e,i=null===e,s=e==e,o=isSymbol(e),n=void 0!==t,a=null===t,u=t==t,l=isSymbol(t);if(!a&&!l&&!o&&e>t||o&&n&&u&&!a&&!l||i&&n&&u||!r&&u||!s)return 1;if(!i&&!o&&!l&&e<t||l&&r&&s&&!i&&!o||a&&r&&s||!n&&s||!u)return-1}return 0}function compareMultiple(e,t,r){for(var i=-1,s=e.criteria,o=t.criteria,n=s.length,a=r.length;++i<n;){var u=compareAscending(s[i],o[i]);if(u)return i>=a?u:u*("desc"==r[i]?-1:1)}return e.index-t.index}function baseOrderBy(e,t,r){t=t.length?arrayMap(t,(function(e){return isArray$1(e)?function(t){return baseGet(t,1===e.length?e[0]:e)}:e})):[identity$1];var i=-1;t=arrayMap(t,baseUnary(baseIteratee));var s=baseMap(e,(function(e,r,s){var o=arrayMap(t,(function(t){return t(e)}));return{criteria:o,index:++i,value:e}}));return baseSortBy(s,(function(e,t){return compareMultiple(e,t,r)}))}function orderBy(e,t,r,i){return null==e?[]:(isArray$1(t)||(t=null==t?[]:[t]),isArray$1(r=i?void 0:r)||(r=null==r?[]:[r]),baseOrderBy(e,t,r))}function createOver(e){return flatRest((function(t){return t=arrayMap(t,baseUnary(baseIteratee)),baseRest((function(r){var i=this;return e(t,(function(e){return apply(e,i,r)}))}))}))}var over=createOver(arrayMap),over$1=over,castRest=baseRest,castRest$1=castRest,nativeMin$6=Math.min,overArgs=castRest$1((function(e,t){var r=(t=1==t.length&&isArray$1(t[0])?arrayMap(t[0],baseUnary(baseIteratee)):arrayMap(baseFlatten(t,1),baseUnary(baseIteratee))).length;return baseRest((function(i){for(var s=-1,o=nativeMin$6(i.length,r);++s<o;)i[s]=t[s].call(this,i[s]);return apply(e,this,i)}))})),overArgs$1=overArgs,overEvery=createOver(arrayEvery),overEvery$1=overEvery,overSome=createOver(arraySome),overSome$1=overSome,MAX_SAFE_INTEGER$2=9007199254740991,nativeFloor$3=Math.floor;function baseRepeat(e,t){var r="";if(!e||t<1||t>MAX_SAFE_INTEGER$2)return r;do{t%2&&(r+=e),(t=nativeFloor$3(t/2))&&(e+=e)}while(t);return r}var asciiSize=baseProperty("length"),asciiSize$1=asciiSize,rsAstralRange="\\ud800-\\udfff",rsComboMarksRange="\\u0300-\\u036f",reComboHalfMarksRange="\\ufe20-\\ufe2f",rsComboSymbolsRange="\\u20d0-\\u20ff",rsComboRange=rsComboMarksRange+reComboHalfMarksRange+rsComboSymbolsRange,rsVarRange="\\ufe0e\\ufe0f",rsAstral="["+rsAstralRange+"]",rsCombo="["+rsComboRange+"]",rsFitz="\\ud83c[\\udffb-\\udfff]",rsModifier="(?:"+rsCombo+"|"+rsFitz+")",rsNonAstral="[^"+rsAstralRange+"]",rsRegional="(?:\\ud83c[\\udde6-\\uddff]){2}",rsSurrPair="[\\ud800-\\udbff][\\udc00-\\udfff]",rsZWJ="\\u200d",reOptMod=rsModifier+"?",rsOptVar="["+rsVarRange+"]?",rsOptJoin="(?:"+rsZWJ+"(?:"+[rsNonAstral,rsRegional,rsSurrPair].join("|")+")"+rsOptVar+reOptMod+")*",rsSeq=rsOptVar+reOptMod+rsOptJoin,rsSymbol="(?:"+[rsNonAstral+rsCombo+"?",rsCombo,rsRegional,rsSurrPair,rsAstral].join("|")+")",reUnicode=RegExp(rsFitz+"(?="+rsFitz+")|"+rsSymbol+rsSeq,"g");function unicodeSize(e){for(var t=reUnicode.lastIndex=0;reUnicode.test(e);)++t;return t}function stringSize(e){return hasUnicode(e)?unicodeSize(e):asciiSize$1(e)}var nativeCeil$2=Math.ceil;function createPadding(e,t){var r=(t=void 0===t?" ":baseToString(t)).length;if(r<2)return r?baseRepeat(t,e):t;var i=baseRepeat(t,nativeCeil$2(e/stringSize(t)));return hasUnicode(t)?castSlice(stringToArray(i),0,e).join(""):i.slice(0,e)}var nativeCeil$1=Math.ceil,nativeFloor$2=Math.floor;function pad(e,t,r){e=toString$1(e);var i=(t=toInteger(t))?stringSize(e):0;if(!t||i>=t)return e;var s=(t-i)/2;return createPadding(nativeFloor$2(s),r)+e+createPadding(nativeCeil$1(s),r)}function padEnd(e,t,r){e=toString$1(e);var i=(t=toInteger(t))?stringSize(e):0;return t&&i<t?e+createPadding(t-i,r):e}function padStart(e,t,r){e=toString$1(e);var i=(t=toInteger(t))?stringSize(e):0;return t&&i<t?createPadding(t-i,r)+e:e}var reTrimStart$1=/^\s+/,nativeParseInt=root$1.parseInt;function parseInt$1(e,t,r){return r||null==t?t=0:t&&(t=+t),nativeParseInt(toString$1(e).replace(reTrimStart$1,""),t||0)}var WRAP_PARTIAL_FLAG=32,partial=baseRest((function(e,t){var r=replaceHolders(t,getHolder(partial));return createWrap(e,WRAP_PARTIAL_FLAG,void 0,t,r)}));partial.placeholder={};var partial$1=partial,WRAP_PARTIAL_RIGHT_FLAG=64,partialRight=baseRest((function(e,t){var r=replaceHolders(t,getHolder(partialRight));return createWrap(e,WRAP_PARTIAL_RIGHT_FLAG,void 0,t,r)}));partialRight.placeholder={};var partialRight$1=partialRight,partition=createAggregator((function(e,t,r){e[r?0:1].push(t)}),(function(){return[[],[]]})),partition$1=partition;function basePick(e,t){return basePickBy(e,t,(function(t,r){return hasIn(e,r)}))}var pick=flatRest((function(e,t){return null==e?{}:basePick(e,t)})),pick$1=pick;function wrapperPlant(e){for(var t,r=this;r instanceof baseLodash;){var i=wrapperClone(r);i.__index__=0,i.__values__=void 0,t?s.__wrapped__=i:t=i;var s=i;r=r.__wrapped__}return s.__wrapped__=e,t}function propertyOf(e){return function(t){return null==e?void 0:baseGet(e,t)}}function baseIndexOfWith(e,t,r,i){for(var s=r-1,o=e.length;++s<o;)if(i(e[s],t))return s;return-1}var arrayProto$3=Array.prototype,splice$1=arrayProto$3.splice;function basePullAll(e,t,r,i){var s=i?baseIndexOfWith:baseIndexOf,o=-1,n=t.length,a=e;for(e===t&&(t=copyArray(t)),r&&(a=arrayMap(e,baseUnary(r)));++o<n;)for(var u=0,l=t[o],c=r?r(l):l;(u=s(a,c,u,i))>-1;)a!==e&&splice$1.call(a,u,1),splice$1.call(e,u,1);return e}function pullAll(e,t){return e&&e.length&&t&&t.length?basePullAll(e,t):e}var pull=baseRest(pullAll),pull$1=pull;function pullAllBy(e,t,r){return e&&e.length&&t&&t.length?basePullAll(e,t,baseIteratee(r)):e}function pullAllWith(e,t,r){return e&&e.length&&t&&t.length?basePullAll(e,t,void 0,r):e}var arrayProto$2=Array.prototype,splice=arrayProto$2.splice;function basePullAt(e,t){for(var r=e?t.length:0,i=r-1;r--;){var s=t[r];if(r==i||s!==o){var o=s;isIndex(s)?splice.call(e,s,1):baseUnset(e,s)}}return e}var pullAt=flatRest((function(e,t){var r=null==e?0:e.length,i=baseAt(e,t);return basePullAt(e,arrayMap(t,(function(e){return isIndex(e,r)?+e:e})).sort(compareAscending)),i})),pullAt$1=pullAt,nativeFloor$1=Math.floor,nativeRandom$1=Math.random;function baseRandom(e,t){return e+nativeFloor$1(nativeRandom$1()*(t-e+1))}var freeParseFloat=parseFloat,nativeMin$5=Math.min,nativeRandom=Math.random;function random(e,t,r){if(r&&"boolean"!=typeof r&&isIterateeCall(e,t,r)&&(t=r=void 0),void 0===r&&("boolean"==typeof t?(r=t,t=void 0):"boolean"==typeof e&&(r=e,e=void 0)),void 0===e&&void 0===t?(e=0,t=1):(e=toFinite(e),void 0===t?(t=e,e=0):t=toFinite(t)),e>t){var i=e;e=t,t=i}if(r||e%1||t%1){var s=nativeRandom();return nativeMin$5(e+s*(t-e+freeParseFloat("1e-"+((s+"").length-1))),t)}return baseRandom(e,t)}var nativeCeil=Math.ceil,nativeMax$4=Math.max;function baseRange(e,t,r,i){for(var s=-1,o=nativeMax$4(nativeCeil((t-e)/(r||1)),0),n=Array(o);o--;)n[i?o:++s]=e,e+=r;return n}function createRange(e){return function(t,r,i){return i&&"number"!=typeof i&&isIterateeCall(t,r,i)&&(r=i=void 0),t=toFinite(t),void 0===r?(r=t,t=0):r=toFinite(r),baseRange(t,r,i=void 0===i?t<r?1:-1:toFinite(i),e)}}var range=createRange(),range$1=range,rangeRight=createRange(!0),rangeRight$1=rangeRight,WRAP_REARG_FLAG=256,rearg=flatRest((function(e,t){return createWrap(e,WRAP_REARG_FLAG,void 0,void 0,void 0,t)})),rearg$1=rearg;function baseReduce(e,t,r,i,s){return s(e,(function(e,s,o){r=i?(i=!1,e):t(r,e,s,o)})),r}function reduce(e,t,r){var i=isArray$1(e)?arrayReduce:baseReduce,s=arguments.length<3;return i(e,baseIteratee(t),r,s,baseEach$1)}function arrayReduceRight(e,t,r,i){var s=null==e?0:e.length;for(i&&s&&(r=e[--s]);s--;)r=t(r,e[s],s,e);return r}function reduceRight(e,t,r){var i=isArray$1(e)?arrayReduceRight:baseReduce,s=arguments.length<3;return i(e,baseIteratee(t),r,s,baseEachRight$1)}function reject$1(e,t){return(isArray$1(e)?arrayFilter:baseFilter)(e,negate(baseIteratee(t)))}function remove(e,t){var r=[];if(!e||!e.length)return r;var i=-1,s=[],o=e.length;for(t=baseIteratee(t);++i<o;){var n=e[i];t(n,i,e)&&(r.push(n),s.push(i))}return basePullAt(e,s),r}function repeat(e,t,r){return t=(r?isIterateeCall(e,t,r):void 0===t)?1:toInteger(t),baseRepeat(toString$1(e),t)}function replace(){var e=arguments,t=toString$1(e[0]);return e.length<3?t:t.replace(e[1],e[2])}var FUNC_ERROR_TEXT$2="Expected a function";function rest(e,t){if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT$2);return baseRest(e,t=void 0===t?t:toInteger(t))}function result(e,t,r){var i=-1,s=(t=castPath(t,e)).length;for(s||(s=1,e=void 0);++i<s;){var o=null==e?void 0:e[toKey(t[i])];void 0===o&&(i=s,o=r),e=isFunction$1(o)?o.call(e):o}return e}var arrayProto$1=Array.prototype,nativeReverse=arrayProto$1.reverse;function reverse(e){return null==e?e:nativeReverse.call(e)}var round=createRound("round"),round$1=round;function arraySample(e){var t=e.length;return t?e[baseRandom(0,t-1)]:void 0}function baseSample(e){return arraySample(values(e))}function sample(e){return(isArray$1(e)?arraySample:baseSample)(e)}function shuffleSelf(e,t){var r=-1,i=e.length,s=i-1;for(t=void 0===t?i:t;++r<t;){var o=baseRandom(r,s),n=e[o];e[o]=e[r],e[r]=n}return e.length=t,e}function arraySampleSize(e,t){return shuffleSelf(copyArray(e),baseClamp(t,0,e.length))}function baseSampleSize(e,t){var r=values(e);return shuffleSelf(r,baseClamp(t,0,r.length))}function sampleSize(e,t,r){return t=(r?isIterateeCall(e,t,r):void 0===t)?1:toInteger(t),(isArray$1(e)?arraySampleSize:baseSampleSize)(e,t)}function set(e,t,r){return null==e?e:baseSet(e,t,r)}function setWith(e,t,r,i){return i="function"==typeof i?i:void 0,null==e?e:baseSet(e,t,r,i)}function arrayShuffle(e){return shuffleSelf(copyArray(e))}function baseShuffle(e){return shuffleSelf(values(e))}function shuffle(e){return(isArray$1(e)?arrayShuffle:baseShuffle)(e)}var mapTag="[object Map]",setTag="[object Set]";function size(e){if(null==e)return 0;if(isArrayLike(e))return isString(e)?stringSize(e):e.length;var t=getTag$1(e);return t==mapTag||t==setTag?e.size:baseKeys(e).length}function slice(e,t,r){var i=null==e?0:e.length;return i?(r&&"number"!=typeof r&&isIterateeCall(e,t,r)?(t=0,r=i):(t=null==t?0:toInteger(t),r=void 0===r?i:toInteger(r)),baseSlice(e,t,r)):[]}var snakeCase=createCompounder((function(e,t,r){return e+(r?"_":"")+t.toLowerCase()})),snakeCase$1=snakeCase;function baseSome(e,t){var r;return baseEach$1(e,(function(e,i,s){return!(r=t(e,i,s))})),!!r}function some(e,t,r){var i=isArray$1(e)?arraySome:baseSome;return r&&isIterateeCall(e,t,r)&&(t=void 0),i(e,baseIteratee(t))}var sortBy=baseRest((function(e,t){if(null==e)return[];var r=t.length;return r>1&&isIterateeCall(e,t[0],t[1])?t=[]:r>2&&isIterateeCall(t[0],t[1],t[2])&&(t=[t[0]]),baseOrderBy(e,baseFlatten(t,1),[])})),sortBy$1=sortBy,MAX_ARRAY_LENGTH$4=4294967295,MAX_ARRAY_INDEX=MAX_ARRAY_LENGTH$4-1,nativeFloor=Math.floor,nativeMin$4=Math.min;function baseSortedIndexBy(e,t,r,i){var s=0,o=null==e?0:e.length;if(0===o)return 0;for(var n=(t=r(t))!=t,a=null===t,u=isSymbol(t),l=void 0===t;s<o;){var c=nativeFloor((s+o)/2),d=r(e[c]),h=void 0!==d,m=null===d,p=d==d,f=isSymbol(d);if(n)var g=i||p;else g=l?p&&(i||h):a?p&&h&&(i||!m):u?p&&h&&!m&&(i||!f):!m&&!f&&(i?d<=t:d<t);g?s=c+1:o=c}return nativeMin$4(o,MAX_ARRAY_INDEX)}var MAX_ARRAY_LENGTH$3=4294967295,HALF_MAX_ARRAY_LENGTH=MAX_ARRAY_LENGTH$3>>>1;function baseSortedIndex(e,t,r){var i=0,s=null==e?i:e.length;if("number"==typeof t&&t==t&&s<=HALF_MAX_ARRAY_LENGTH){for(;i<s;){var o=i+s>>>1,n=e[o];null!==n&&!isSymbol(n)&&(r?n<=t:n<t)?i=o+1:s=o}return s}return baseSortedIndexBy(e,t,identity$1,r)}function sortedIndex(e,t){return baseSortedIndex(e,t)}function sortedIndexBy(e,t,r){return baseSortedIndexBy(e,t,baseIteratee(r))}function sortedIndexOf(e,t){var r=null==e?0:e.length;if(r){var i=baseSortedIndex(e,t);if(i<r&&eq(e[i],t))return i}return-1}function sortedLastIndex(e,t){return baseSortedIndex(e,t,!0)}function sortedLastIndexBy(e,t,r){return baseSortedIndexBy(e,t,baseIteratee(r),!0)}function sortedLastIndexOf(e,t){if(null==e?0:e.length){var r=baseSortedIndex(e,t,!0)-1;if(eq(e[r],t))return r}return-1}function baseSortedUniq(e,t){for(var r=-1,i=e.length,s=0,o=[];++r<i;){var n=e[r],a=t?t(n):n;if(!r||!eq(a,u)){var u=a;o[s++]=0===n?0:n}}return o}function sortedUniq(e){return e&&e.length?baseSortedUniq(e):[]}function sortedUniqBy(e,t){return e&&e.length?baseSortedUniq(e,baseIteratee(t)):[]}var MAX_ARRAY_LENGTH$2=4294967295;function split(e,t,r){return r&&"number"!=typeof r&&isIterateeCall(e,t,r)&&(t=r=void 0),(r=void 0===r?MAX_ARRAY_LENGTH$2:r>>>0)?(e=toString$1(e))&&("string"==typeof t||null!=t&&!isRegExp$1(t))&&!(t=baseToString(t))&&hasUnicode(e)?castSlice(stringToArray(e),0,r):e.split(t,r):[]}var FUNC_ERROR_TEXT$1="Expected a function",nativeMax$3=Math.max;function spread(e,t){if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT$1);return t=null==t?0:nativeMax$3(toInteger(t),0),baseRest((function(r){var i=r[t],s=castSlice(r,0,t);return i&&arrayPush(s,i),apply(e,this,s)}))}var startCase=createCompounder((function(e,t,r){return e+(r?" ":"")+upperFirst$1(t)})),startCase$1=startCase;function startsWith(e,t,r){return e=toString$1(e),r=null==r?0:baseClamp(toInteger(r),0,e.length),t=baseToString(t),e.slice(r,r+t.length)==t}function stubObject(){return{}}function stubString(){return""}function stubTrue(){return!0}var subtract=createMathOperation((function(e,t){return e-t}),0),subtract$1=subtract;function sum(e){return e&&e.length?baseSum(e,identity$1):0}function sumBy(e,t){return e&&e.length?baseSum(e,baseIteratee(t)):0}function tail(e){var t=null==e?0:e.length;return t?baseSlice(e,1,t):[]}function take(e,t,r){return e&&e.length?baseSlice(e,0,(t=r||void 0===t?1:toInteger(t))<0?0:t):[]}function takeRight(e,t,r){var i=null==e?0:e.length;return i?baseSlice(e,(t=i-(t=r||void 0===t?1:toInteger(t)))<0?0:t,i):[]}function takeRightWhile(e,t){return e&&e.length?baseWhile(e,baseIteratee(t),!1,!0):[]}function takeWhile(e,t){return e&&e.length?baseWhile(e,baseIteratee(t)):[]}function tap(e,t){return t(e),e}var objectProto$2=Object.prototype,hasOwnProperty$2=objectProto$2.hasOwnProperty;function customDefaultsAssignIn(e,t,r,i){return void 0===e||eq(e,objectProto$2[r])&&!hasOwnProperty$2.call(i,r)?t:e}var stringEscapes={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};function escapeStringChar(e){return"\\"+stringEscapes[e]}var reInterpolate=/<%=([\s\S]+?)%>/g,reInterpolate$1=reInterpolate,reEscape=/<%-([\s\S]+?)%>/g,reEscape$1=reEscape,reEvaluate=/<%([\s\S]+?)%>/g,reEvaluate$1=reEvaluate,templateSettings={escape:reEscape$1,evaluate:reEvaluate$1,interpolate:reInterpolate$1,variable:"",imports:{_:{escape:escape}}},templateSettings$1=templateSettings,INVALID_TEMPL_VAR_ERROR_TEXT="Invalid `variable` option passed into `_.template`",reEmptyStringLeading=/\b__p \+= '';/g,reEmptyStringMiddle=/\b(__p \+=) '' \+/g,reEmptyStringTrailing=/(__e\(.*?\)|\b__t\)) \+\n'';/g,reForbiddenIdentifierChars=/[()=,{}\[\]\/\s]/,reEsTemplate=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,reNoMatch=/($^)/,reUnescapedString=/['\n\r\u2028\u2029\\]/g,objectProto$1=Object.prototype,hasOwnProperty$1=objectProto$1.hasOwnProperty;function template(e,t,r){var i=templateSettings$1.imports._.templateSettings||templateSettings$1;r&&isIterateeCall(e,t,r)&&(t=void 0),e=toString$1(e),t=extendWith({},t,i,customDefaultsAssignIn);var s,o,n=extendWith({},t.imports,i.imports,customDefaultsAssignIn),a=keys(n),u=baseValues(n,a),l=0,c=t.interpolate||reNoMatch,d="__p += '",h=RegExp((t.escape||reNoMatch).source+"|"+c.source+"|"+(c===reInterpolate$1?reEsTemplate:reNoMatch).source+"|"+(t.evaluate||reNoMatch).source+"|$","g"),m=hasOwnProperty$1.call(t,"sourceURL")?"//# sourceURL="+(t.sourceURL+"").replace(/\s/g," ")+"\n":"";e.replace(h,(function(t,r,i,n,a,u){return i||(i=n),d+=e.slice(l,u).replace(reUnescapedString,escapeStringChar),r&&(s=!0,d+="' +\n__e("+r+") +\n'"),a&&(o=!0,d+="';\n"+a+";\n__p += '"),i&&(d+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),l=u+t.length,t})),d+="';\n";var p=hasOwnProperty$1.call(t,"variable")&&t.variable;if(p){if(reForbiddenIdentifierChars.test(p))throw new Error(INVALID_TEMPL_VAR_ERROR_TEXT)}else d="with (obj) {\n"+d+"\n}\n";d=(o?d.replace(reEmptyStringLeading,""):d).replace(reEmptyStringMiddle,"$1").replace(reEmptyStringTrailing,"$1;"),d="function("+(p||"obj")+") {\n"+(p?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(s?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var f=attempt$1((function(){return Function(a,m+"return "+d).apply(void 0,u)}));if(f.source=d,isError(f))throw f;return f}var FUNC_ERROR_TEXT="Expected a function";function throttle(e,t,r){var i=!0,s=!0;if("function"!=typeof e)throw new TypeError(FUNC_ERROR_TEXT);return isObject(r)&&(i="leading"in r?!!r.leading:i,s="trailing"in r?!!r.trailing:s),debounce(e,t,{leading:i,maxWait:t,trailing:s})}function thru(e,t){return t(e)}var MAX_SAFE_INTEGER$1=9007199254740991,MAX_ARRAY_LENGTH$1=4294967295,nativeMin$3=Math.min;function times(e,t){if((e=toInteger(e))<1||e>MAX_SAFE_INTEGER$1)return[];var r=MAX_ARRAY_LENGTH$1,i=nativeMin$3(e,MAX_ARRAY_LENGTH$1);t=castFunction(t),e-=MAX_ARRAY_LENGTH$1;for(var s=baseTimes(i,t);++r<e;)t(r);return s}function wrapperToIterator(){return this}function baseWrapperValue(e,t){var r=e;return r instanceof LazyWrapper&&(r=r.value()),arrayReduce(t,(function(e,t){return t.func.apply(t.thisArg,arrayPush([e],t.args))}),r)}function wrapperValue(){return baseWrapperValue(this.__wrapped__,this.__actions__)}function toLower(e){return toString$1(e).toLowerCase()}function toPath(e){return isArray$1(e)?arrayMap(e,toKey):isSymbol(e)?[e]:copyArray(stringToPath$1(toString$1(e)))}var MAX_SAFE_INTEGER=9007199254740991;function toSafeInteger(e){return e?baseClamp(toInteger(e),-MAX_SAFE_INTEGER,MAX_SAFE_INTEGER):0===e?e:0}function toUpper(e){return toString$1(e).toUpperCase()}function transform(e,t,r){var i=isArray$1(e),s=i||isBuffer$1(e)||isTypedArray$1(e);if(t=baseIteratee(t),null==r){var o=e&&e.constructor;r=s?i?new o:[]:isObject(e)&&isFunction$1(o)?baseCreate$1(getPrototype$1(e)):{}}return(s?arrayEach:baseForOwn)(e,(function(e,i,s){return t(r,e,i,s)})),r}function charsEndIndex(e,t){for(var r=e.length;r--&&baseIndexOf(t,e[r],0)>-1;);return r}function charsStartIndex(e,t){for(var r=-1,i=e.length;++r<i&&baseIndexOf(t,e[r],0)>-1;);return r}function trim(e,t,r){if((e=toString$1(e))&&(r||void 0===t))return baseTrim(e);if(!e||!(t=baseToString(t)))return e;var i=stringToArray(e),s=stringToArray(t);return castSlice(i,charsStartIndex(i,s),charsEndIndex(i,s)+1).join("")}function trimEnd(e,t,r){if((e=toString$1(e))&&(r||void 0===t))return e.slice(0,trimmedEndIndex(e)+1);if(!e||!(t=baseToString(t)))return e;var i=stringToArray(e);return castSlice(i,0,charsEndIndex(i,stringToArray(t))+1).join("")}var reTrimStart=/^\s+/;function trimStart(e,t,r){if((e=toString$1(e))&&(r||void 0===t))return e.replace(reTrimStart,"");if(!e||!(t=baseToString(t)))return e;var i=stringToArray(e);return castSlice(i,charsStartIndex(i,stringToArray(t))).join("")}var DEFAULT_TRUNC_LENGTH=30,DEFAULT_TRUNC_OMISSION="...",reFlags=/\w*$/;function truncate(e,t){var r=DEFAULT_TRUNC_LENGTH,i=DEFAULT_TRUNC_OMISSION;if(isObject(t)){var s="separator"in t?t.separator:s;r="length"in t?toInteger(t.length):r,i="omission"in t?baseToString(t.omission):i}var o=(e=toString$1(e)).length;if(hasUnicode(e)){var n=stringToArray(e);o=n.length}if(r>=o)return e;var a=r-stringSize(i);if(a<1)return i;var u=n?castSlice(n,0,a).join(""):e.slice(0,a);if(void 0===s)return u+i;if(n&&(a+=u.length-a),isRegExp$1(s)){if(e.slice(a).search(s)){var l,c=u;for(s.global||(s=RegExp(s.source,toString$1(reFlags.exec(s))+"g")),s.lastIndex=0;l=s.exec(c);)var d=l.index;u=u.slice(0,void 0===d?a:d)}}else if(e.indexOf(baseToString(s),a)!=a){var h=u.lastIndexOf(s);h>-1&&(u=u.slice(0,h))}return u+i}function unary(e){return ary(e,1)}var htmlUnescapes={"&":"&","<":"<",">":">",""":'"',"'":"'"},unescapeHtmlChar=basePropertyOf(htmlUnescapes),unescapeHtmlChar$1=unescapeHtmlChar,reEscapedHtml=/&(?:amp|lt|gt|quot|#39);/g,reHasEscapedHtml=RegExp(reEscapedHtml.source);function unescape$1(e){return(e=toString$1(e))&&reHasEscapedHtml.test(e)?e.replace(reEscapedHtml,unescapeHtmlChar$1):e}var INFINITY=1/0,createSet=Set$2&&1/setToArray(new Set$2([,-0]))[1]==INFINITY?function(e){return new Set$2(e)}:noop$1,createSet$1=createSet,LARGE_ARRAY_SIZE=200;function baseUniq(e,t,r){var i=-1,s=arrayIncludes,o=e.length,n=!0,a=[],u=a;if(r)n=!1,s=arrayIncludesWith;else if(o>=LARGE_ARRAY_SIZE){var l=t?null:createSet$1(e);if(l)return setToArray(l);n=!1,s=cacheHas,u=new SetCache}else u=t?[]:a;e:for(;++i<o;){var c=e[i],d=t?t(c):c;if(c=r||0!==c?c:0,n&&d==d){for(var h=u.length;h--;)if(u[h]===d)continue e;t&&u.push(d),a.push(c)}else s(u,d,r)||(u!==a&&u.push(d),a.push(c))}return a}var union=baseRest((function(e){return baseUniq(baseFlatten(e,1,isArrayLikeObject,!0))})),union$1=union,unionBy=baseRest((function(e){var t=last(e);return isArrayLikeObject(t)&&(t=void 0),baseUniq(baseFlatten(e,1,isArrayLikeObject,!0),baseIteratee(t))})),unionBy$1=unionBy,unionWith=baseRest((function(e){var t=last(e);return t="function"==typeof t?t:void 0,baseUniq(baseFlatten(e,1,isArrayLikeObject,!0),void 0,t)})),unionWith$1=unionWith;function uniq(e){return e&&e.length?baseUniq(e):[]}function uniqBy(e,t){return e&&e.length?baseUniq(e,baseIteratee(t)):[]}function uniqWith(e,t){return t="function"==typeof t?t:void 0,e&&e.length?baseUniq(e,void 0,t):[]}var idCounter=0;function uniqueId(e){var t=++idCounter;return toString$1(e)+t}function unset(e,t){return null==e||baseUnset(e,t)}var nativeMax$2=Math.max;function unzip(e){if(!e||!e.length)return[];var t=0;return e=arrayFilter(e,(function(e){if(isArrayLikeObject(e))return t=nativeMax$2(e.length,t),!0})),baseTimes(t,(function(t){return arrayMap(e,baseProperty(t))}))}function unzipWith(e,t){if(!e||!e.length)return[];var r=unzip(e);return null==t?r:arrayMap(r,(function(e){return apply(t,void 0,e)}))}function baseUpdate(e,t,r,i){return baseSet(e,t,r(baseGet(e,t)),i)}function update(e,t,r){return null==e?e:baseUpdate(e,t,castFunction(r))}function updateWith(e,t,r,i){return i="function"==typeof i?i:void 0,null==e?e:baseUpdate(e,t,castFunction(r),i)}var upperCase=createCompounder((function(e,t,r){return e+(r?" ":"")+t.toUpperCase()})),upperCase$1=upperCase;function valuesIn(e){return null==e?[]:baseValues(e,keysIn(e))}var without=baseRest((function(e,t){return isArrayLikeObject(e)?baseDifference(e,t):[]})),without$1=without;function wrap(e,t){return partial$1(castFunction(t),e)}var wrapperAt=flatRest((function(e){var t=e.length,r=t?e[0]:0,i=this.__wrapped__,s=function(t){return baseAt(t,e)};return!(t>1||this.__actions__.length)&&i instanceof LazyWrapper&&isIndex(r)?((i=i.slice(r,+r+(t?1:0))).__actions__.push({func:thru,args:[s],thisArg:void 0}),new LodashWrapper(i,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(s)})),at=wrapperAt;function wrapperChain(){return chain(this)}function wrapperReverse(){var e=this.__wrapped__;if(e instanceof LazyWrapper){var t=e;return this.__actions__.length&&(t=new LazyWrapper(this)),(t=t.reverse()).__actions__.push({func:thru,args:[reverse],thisArg:void 0}),new LodashWrapper(t,this.__chain__)}return this.thru(reverse)}function baseXor(e,t,r){var i=e.length;if(i<2)return i?baseUniq(e[0]):[];for(var s=-1,o=Array(i);++s<i;)for(var n=e[s],a=-1;++a<i;)a!=s&&(o[s]=baseDifference(o[s]||n,e[a],t,r));return baseUniq(baseFlatten(o,1),t,r)}var xor=baseRest((function(e){return baseXor(arrayFilter(e,isArrayLikeObject))})),xor$1=xor,xorBy=baseRest((function(e){var t=last(e);return isArrayLikeObject(t)&&(t=void 0),baseXor(arrayFilter(e,isArrayLikeObject),baseIteratee(t))})),xorBy$1=xorBy,xorWith=baseRest((function(e){var t=last(e);return t="function"==typeof t?t:void 0,baseXor(arrayFilter(e,isArrayLikeObject),void 0,t)})),xorWith$1=xorWith,zip=baseRest(unzip),zip$1=zip;function baseZipObject(e,t,r){for(var i=-1,s=e.length,o=t.length,n={};++i<s;){var a=i<o?t[i]:void 0;r(n,e[i],a)}return n}function zipObject(e,t){return baseZipObject(e||[],t||[],assignValue)}function zipObjectDeep(e,t){return baseZipObject(e||[],t||[],baseSet)}var zipWith=baseRest((function(e){var t=e.length,r=t>1?e[t-1]:void 0;return r="function"==typeof r?(e.pop(),r):void 0,unzipWith(e,r)})),zipWith$1=zipWith,array={chunk:chunk,compact:compact,concat:concat,difference:difference$1,differenceBy:differenceBy$1,differenceWith:differenceWith$1,drop:drop,dropRight:dropRight,dropRightWhile:dropRightWhile,dropWhile:dropWhile,fill:fill,findIndex:findIndex,findLastIndex:findLastIndex,first:head,flatten:flatten,flattenDeep:flattenDeep,flattenDepth:flattenDepth,fromPairs:fromPairs,head:head,indexOf:indexOf$2,initial:initial,intersection:intersection$1,intersectionBy:intersectionBy$1,intersectionWith:intersectionWith$1,join:join,last:last,lastIndexOf:lastIndexOf,nth:nth,pull:pull$1,pullAll:pullAll,pullAllBy:pullAllBy,pullAllWith:pullAllWith,pullAt:pullAt$1,remove:remove,reverse:reverse,slice:slice,sortedIndex:sortedIndex,sortedIndexBy:sortedIndexBy,sortedIndexOf:sortedIndexOf,sortedLastIndex:sortedLastIndex,sortedLastIndexBy:sortedLastIndexBy,sortedLastIndexOf:sortedLastIndexOf,sortedUniq:sortedUniq,sortedUniqBy:sortedUniqBy,tail:tail,take:take,takeRight:takeRight,takeRightWhile:takeRightWhile,takeWhile:takeWhile,union:union$1,unionBy:unionBy$1,unionWith:unionWith$1,uniq:uniq,uniqBy:uniqBy,uniqWith:uniqWith,unzip:unzip,unzipWith:unzipWith,without:without$1,xor:xor$1,xorBy:xorBy$1,xorWith:xorWith$1,zip:zip$1,zipObject:zipObject,zipObjectDeep:zipObjectDeep,zipWith:zipWith$1},collection={countBy:countBy$1,each:forEach,eachRight:forEachRight,every:every,filter:filter,find:find$1,findLast:findLast$1,flatMap:flatMap,flatMapDeep:flatMapDeep,flatMapDepth:flatMapDepth,forEach:forEach,forEachRight:forEachRight,groupBy:groupBy$1,includes:includes,invokeMap:invokeMap$1,keyBy:keyBy$1,map:map,orderBy:orderBy,partition:partition$1,reduce:reduce,reduceRight:reduceRight,reject:reject$1,sample:sample,sampleSize:sampleSize,shuffle:shuffle,size:size,some:some,sortBy:sortBy$1},date={now:now$1},func$1={after:after,ary:ary,before:before,bind:bind$2,bindKey:bindKey$1,curry:curry,curryRight:curryRight,debounce:debounce,defer:defer$1,delay:delay$1,flip:flip,memoize:memoize,negate:negate,once:once,overArgs:overArgs$1,partial:partial$1,partialRight:partialRight$1,rearg:rearg$1,rest:rest,spread:spread,throttle:throttle,unary:unary,wrap:wrap},lang={castArray:castArray,clone:clone,cloneDeep:cloneDeep,cloneDeepWith:cloneDeepWith,cloneWith:cloneWith,conformsTo:conformsTo,eq:eq,gt:gt$1,gte:gte$1,isArguments:isArguments$1,isArray:isArray$1,isArrayBuffer:isArrayBuffer$1,isArrayLike:isArrayLike,isArrayLikeObject:isArrayLikeObject,isBoolean:isBoolean,isBuffer:isBuffer$1,isDate:isDate$1,isElement:isElement,isEmpty:isEmpty,isEqual:isEqual,isEqualWith:isEqualWith,isError:isError,isFinite:isFinite$1,isFunction:isFunction$1,isInteger:isInteger,isLength:isLength,isMap:isMap$1,isMatch:isMatch,isMatchWith:isMatchWith,isNaN:isNaN$1,isNative:isNative$1,isNil:isNil,isNull:isNull,isNumber:isNumber,isObject:isObject,isObjectLike:isObjectLike,isPlainObject:isPlainObject,isRegExp:isRegExp$1,isSafeInteger:isSafeInteger,isSet:isSet$1,isString:isString,isSymbol:isSymbol,isTypedArray:isTypedArray$1,isUndefined:isUndefined,isWeakMap:isWeakMap,isWeakSet:isWeakSet,lt:lt$1,lte:lte$1,toArray:toArray,toFinite:toFinite,toInteger:toInteger,toLength:toLength,toNumber:toNumber,toPlainObject:toPlainObject,toSafeInteger:toSafeInteger,toString:toString$1},math={add:add$1,ceil:ceil$1,divide:divide$1,floor:floor$1,max:max,maxBy:maxBy,mean:mean,meanBy:meanBy,min:min,minBy:minBy,multiply:multiply$1,round:round$1,subtract:subtract$1,sum:sum,sumBy:sumBy},number={clamp:clamp,inRange:inRange,random:random},object={assign:assign$1,assignIn:extend,assignInWith:extendWith,assignWith:assignWith$1,at:at$2,create:create,defaults:defaults$1,defaultsDeep:defaultsDeep$1,entries:toPairs$1,entriesIn:toPairsIn$1,extend:extend,extendWith:extendWith,findKey:findKey,findLastKey:findLastKey,forIn:forIn,forInRight:forInRight,forOwn:forOwn,forOwnRight:forOwnRight,functions:functions,functionsIn:functionsIn,get:get,has:has$1,hasIn:hasIn,invert:invert$1,invertBy:invertBy$1,invoke:invoke$1,keys:keys,keysIn:keysIn,mapKeys:mapKeys,mapValues:mapValues,merge:merge$1,mergeWith:mergeWith$1,omit:omit$1,omitBy:omitBy,pick:pick$1,pickBy:pickBy,result:result,set:set,setWith:setWith,toPairs:toPairs$1,toPairsIn:toPairsIn$1,transform:transform,unset:unset,update:update,updateWith:updateWith,values:values,valuesIn:valuesIn},seq={at:at,chain:chain,commit:wrapperCommit,lodash:lodash$1,next:wrapperNext,plant:wrapperPlant,reverse:wrapperReverse,tap:tap,thru:thru,toIterator:wrapperToIterator,toJSON:wrapperValue,value:wrapperValue,valueOf:wrapperValue,wrapperChain:wrapperChain},string={camelCase:camelCase$1,capitalize:capitalize,deburr:deburr,endsWith:endsWith,escape:escape,escapeRegExp:escapeRegExp,kebabCase:kebabCase$1,lowerCase:lowerCase$1,lowerFirst:lowerFirst$1,pad:pad,padEnd:padEnd,padStart:padStart,parseInt:parseInt$1,repeat:repeat,replace:replace,snakeCase:snakeCase$1,split:split,startCase:startCase$1,startsWith:startsWith,template:template,templateSettings:templateSettings$1,toLower:toLower,toUpper:toUpper,trim:trim,trimEnd:trimEnd,trimStart:trimStart,truncate:truncate,unescape:unescape$1,upperCase:upperCase$1,upperFirst:upperFirst$1,words:words},util={attempt:attempt$1,bindAll:bindAll$1,cond:cond,conforms:conforms,constant:constant,defaultTo:defaultTo,flow:flow$1,flowRight:flowRight$1,identity:identity$1,iteratee:iteratee,matches:matches,matchesProperty:matchesProperty,method:method$1,methodOf:methodOf$1,mixin:mixin$1,noop:noop$1,nthArg:nthArg,over:over$1,overEvery:overEvery$1,overSome:overSome$1,property:property,propertyOf:propertyOf,range:range$1,rangeRight:rangeRight$1,stubArray:stubArray,stubFalse:stubFalse,stubObject:stubObject,stubString:stubString,stubTrue:stubTrue,times:times,toPath:toPath,uniqueId:uniqueId};function lazyClone(){var e=new LazyWrapper(this.__wrapped__);return e.__actions__=copyArray(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=copyArray(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=copyArray(this.__views__),e}function lazyReverse(){if(this.__filtered__){var e=new LazyWrapper(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e}var nativeMax$1=Math.max,nativeMin$2=Math.min;function getView(e,t,r){for(var i=-1,s=r.length;++i<s;){var o=r[i],n=o.size;switch(o.type){case"drop":e+=n;break;case"dropRight":t-=n;break;case"take":t=nativeMin$2(t,e+n);break;case"takeRight":e=nativeMax$1(e,t-n)}}return{start:e,end:t}}var LAZY_FILTER_FLAG$1=1,LAZY_MAP_FLAG=2,nativeMin$1=Math.min;function lazyValue(){var e=this.__wrapped__.value(),t=this.__dir__,r=isArray$1(e),i=t<0,s=r?e.length:0,o=getView(0,s,this.__views__),n=o.start,a=o.end,u=a-n,l=i?a:n-1,c=this.__iteratees__,d=c.length,h=0,m=nativeMin$1(u,this.__takeCount__);if(!r||!i&&s==u&&m==u)return baseWrapperValue(e,this.__actions__);var p=[];e:for(;u--&&h<m;){for(var f=-1,g=e[l+=t];++f<d;){var v=c[f],y=v.iteratee,b=v.type,S=y(g);if(b==LAZY_MAP_FLAG)g=S;else if(!S){if(b==LAZY_FILTER_FLAG$1)continue e;break e}}p[h++]=g}return p}
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Lodash (Custom Build) <https://lodash.com/>
|
|
5
|
-
* Build: `lodash modularize exports="es" -o ./`
|
|
6
|
-
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
7
|
-
* Released under MIT license <https://lodash.com/license>
|
|
8
|
-
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
9
|
-
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
10
|
-
*/var VERSION="4.17.21",WRAP_BIND_KEY_FLAG=2,LAZY_FILTER_FLAG=1,LAZY_WHILE_FLAG=3,MAX_ARRAY_LENGTH=4294967295,arrayProto=Array.prototype,objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,symIterator=Symbol$2?Symbol$2.iterator:void 0,nativeMax=Math.max,nativeMin=Math.min,mixin=function(e){return function(t,r,i){if(null==i){var s=isObject(r),o=s&&keys(r),n=o&&o.length&&baseFunctions(r,o);(n?n.length:s)||(i=r,r=t,t=this)}return e(t,r,i)}}(mixin$1),source;lodash$1.after=func$1.after,lodash$1.ary=func$1.ary,lodash$1.assign=object.assign,lodash$1.assignIn=object.assignIn,lodash$1.assignInWith=object.assignInWith,lodash$1.assignWith=object.assignWith,lodash$1.at=object.at,lodash$1.before=func$1.before,lodash$1.bind=func$1.bind,lodash$1.bindAll=util.bindAll,lodash$1.bindKey=func$1.bindKey,lodash$1.castArray=lang.castArray,lodash$1.chain=seq.chain,lodash$1.chunk=array.chunk,lodash$1.compact=array.compact,lodash$1.concat=array.concat,lodash$1.cond=util.cond,lodash$1.conforms=util.conforms,lodash$1.constant=util.constant,lodash$1.countBy=collection.countBy,lodash$1.create=object.create,lodash$1.curry=func$1.curry,lodash$1.curryRight=func$1.curryRight,lodash$1.debounce=func$1.debounce,lodash$1.defaults=object.defaults,lodash$1.defaultsDeep=object.defaultsDeep,lodash$1.defer=func$1.defer,lodash$1.delay=func$1.delay,lodash$1.difference=array.difference,lodash$1.differenceBy=array.differenceBy,lodash$1.differenceWith=array.differenceWith,lodash$1.drop=array.drop,lodash$1.dropRight=array.dropRight,lodash$1.dropRightWhile=array.dropRightWhile,lodash$1.dropWhile=array.dropWhile,lodash$1.fill=array.fill,lodash$1.filter=collection.filter,lodash$1.flatMap=collection.flatMap,lodash$1.flatMapDeep=collection.flatMapDeep,lodash$1.flatMapDepth=collection.flatMapDepth,lodash$1.flatten=array.flatten,lodash$1.flattenDeep=array.flattenDeep,lodash$1.flattenDepth=array.flattenDepth,lodash$1.flip=func$1.flip,lodash$1.flow=util.flow,lodash$1.flowRight=util.flowRight,lodash$1.fromPairs=array.fromPairs,lodash$1.functions=object.functions,lodash$1.functionsIn=object.functionsIn,lodash$1.groupBy=collection.groupBy,lodash$1.initial=array.initial,lodash$1.intersection=array.intersection,lodash$1.intersectionBy=array.intersectionBy,lodash$1.intersectionWith=array.intersectionWith,lodash$1.invert=object.invert,lodash$1.invertBy=object.invertBy,lodash$1.invokeMap=collection.invokeMap,lodash$1.iteratee=util.iteratee,lodash$1.keyBy=collection.keyBy,lodash$1.keys=keys,lodash$1.keysIn=object.keysIn,lodash$1.map=collection.map,lodash$1.mapKeys=object.mapKeys,lodash$1.mapValues=object.mapValues,lodash$1.matches=util.matches,lodash$1.matchesProperty=util.matchesProperty,lodash$1.memoize=func$1.memoize,lodash$1.merge=object.merge,lodash$1.mergeWith=object.mergeWith,lodash$1.method=util.method,lodash$1.methodOf=util.methodOf,lodash$1.mixin=mixin,lodash$1.negate=negate,lodash$1.nthArg=util.nthArg,lodash$1.omit=object.omit,lodash$1.omitBy=object.omitBy,lodash$1.once=func$1.once,lodash$1.orderBy=collection.orderBy,lodash$1.over=util.over,lodash$1.overArgs=func$1.overArgs,lodash$1.overEvery=util.overEvery,lodash$1.overSome=util.overSome,lodash$1.partial=func$1.partial,lodash$1.partialRight=func$1.partialRight,lodash$1.partition=collection.partition,lodash$1.pick=object.pick,lodash$1.pickBy=object.pickBy,lodash$1.property=util.property,lodash$1.propertyOf=util.propertyOf,lodash$1.pull=array.pull,lodash$1.pullAll=array.pullAll,lodash$1.pullAllBy=array.pullAllBy,lodash$1.pullAllWith=array.pullAllWith,lodash$1.pullAt=array.pullAt,lodash$1.range=util.range,lodash$1.rangeRight=util.rangeRight,lodash$1.rearg=func$1.rearg,lodash$1.reject=collection.reject,lodash$1.remove=array.remove,lodash$1.rest=func$1.rest,lodash$1.reverse=array.reverse,lodash$1.sampleSize=collection.sampleSize,lodash$1.set=object.set,lodash$1.setWith=object.setWith,lodash$1.shuffle=collection.shuffle,lodash$1.slice=array.slice,lodash$1.sortBy=collection.sortBy,lodash$1.sortedUniq=array.sortedUniq,lodash$1.sortedUniqBy=array.sortedUniqBy,lodash$1.split=string.split,lodash$1.spread=func$1.spread,lodash$1.tail=array.tail,lodash$1.take=array.take,lodash$1.takeRight=array.takeRight,lodash$1.takeRightWhile=array.takeRightWhile,lodash$1.takeWhile=array.takeWhile,lodash$1.tap=seq.tap,lodash$1.throttle=func$1.throttle,lodash$1.thru=thru,lodash$1.toArray=lang.toArray,lodash$1.toPairs=object.toPairs,lodash$1.toPairsIn=object.toPairsIn,lodash$1.toPath=util.toPath,lodash$1.toPlainObject=lang.toPlainObject,lodash$1.transform=object.transform,lodash$1.unary=func$1.unary,lodash$1.union=array.union,lodash$1.unionBy=array.unionBy,lodash$1.unionWith=array.unionWith,lodash$1.uniq=array.uniq,lodash$1.uniqBy=array.uniqBy,lodash$1.uniqWith=array.uniqWith,lodash$1.unset=object.unset,lodash$1.unzip=array.unzip,lodash$1.unzipWith=array.unzipWith,lodash$1.update=object.update,lodash$1.updateWith=object.updateWith,lodash$1.values=object.values,lodash$1.valuesIn=object.valuesIn,lodash$1.without=array.without,lodash$1.words=string.words,lodash$1.wrap=func$1.wrap,lodash$1.xor=array.xor,lodash$1.xorBy=array.xorBy,lodash$1.xorWith=array.xorWith,lodash$1.zip=array.zip,lodash$1.zipObject=array.zipObject,lodash$1.zipObjectDeep=array.zipObjectDeep,lodash$1.zipWith=array.zipWith,lodash$1.entries=object.toPairs,lodash$1.entriesIn=object.toPairsIn,lodash$1.extend=object.assignIn,lodash$1.extendWith=object.assignInWith,mixin(lodash$1,lodash$1),lodash$1.add=math.add,lodash$1.attempt=util.attempt,lodash$1.camelCase=string.camelCase,lodash$1.capitalize=string.capitalize,lodash$1.ceil=math.ceil,lodash$1.clamp=number.clamp,lodash$1.clone=lang.clone,lodash$1.cloneDeep=lang.cloneDeep,lodash$1.cloneDeepWith=lang.cloneDeepWith,lodash$1.cloneWith=lang.cloneWith,lodash$1.conformsTo=lang.conformsTo,lodash$1.deburr=string.deburr,lodash$1.defaultTo=util.defaultTo,lodash$1.divide=math.divide,lodash$1.endsWith=string.endsWith,lodash$1.eq=lang.eq,lodash$1.escape=string.escape,lodash$1.escapeRegExp=string.escapeRegExp,lodash$1.every=collection.every,lodash$1.find=collection.find,lodash$1.findIndex=array.findIndex,lodash$1.findKey=object.findKey,lodash$1.findLast=collection.findLast,lodash$1.findLastIndex=array.findLastIndex,lodash$1.findLastKey=object.findLastKey,lodash$1.floor=math.floor,lodash$1.forEach=collection.forEach,lodash$1.forEachRight=collection.forEachRight,lodash$1.forIn=object.forIn,lodash$1.forInRight=object.forInRight,lodash$1.forOwn=object.forOwn,lodash$1.forOwnRight=object.forOwnRight,lodash$1.get=object.get,lodash$1.gt=lang.gt,lodash$1.gte=lang.gte,lodash$1.has=object.has,lodash$1.hasIn=object.hasIn,lodash$1.head=array.head,lodash$1.identity=identity$1,lodash$1.includes=collection.includes,lodash$1.indexOf=array.indexOf,lodash$1.inRange=number.inRange,lodash$1.invoke=object.invoke,lodash$1.isArguments=lang.isArguments,lodash$1.isArray=isArray$1,lodash$1.isArrayBuffer=lang.isArrayBuffer,lodash$1.isArrayLike=lang.isArrayLike,lodash$1.isArrayLikeObject=lang.isArrayLikeObject,lodash$1.isBoolean=lang.isBoolean,lodash$1.isBuffer=lang.isBuffer,lodash$1.isDate=lang.isDate,lodash$1.isElement=lang.isElement,lodash$1.isEmpty=lang.isEmpty,lodash$1.isEqual=lang.isEqual,lodash$1.isEqualWith=lang.isEqualWith,lodash$1.isError=lang.isError,lodash$1.isFinite=lang.isFinite,lodash$1.isFunction=lang.isFunction,lodash$1.isInteger=lang.isInteger,lodash$1.isLength=lang.isLength,lodash$1.isMap=lang.isMap,lodash$1.isMatch=lang.isMatch,lodash$1.isMatchWith=lang.isMatchWith,lodash$1.isNaN=lang.isNaN,lodash$1.isNative=lang.isNative,lodash$1.isNil=lang.isNil,lodash$1.isNull=lang.isNull,lodash$1.isNumber=lang.isNumber,lodash$1.isObject=isObject,lodash$1.isObjectLike=lang.isObjectLike,lodash$1.isPlainObject=lang.isPlainObject,lodash$1.isRegExp=lang.isRegExp,lodash$1.isSafeInteger=lang.isSafeInteger,lodash$1.isSet=lang.isSet,lodash$1.isString=lang.isString,lodash$1.isSymbol=lang.isSymbol,lodash$1.isTypedArray=lang.isTypedArray,lodash$1.isUndefined=lang.isUndefined,lodash$1.isWeakMap=lang.isWeakMap,lodash$1.isWeakSet=lang.isWeakSet,lodash$1.join=array.join,lodash$1.kebabCase=string.kebabCase,lodash$1.last=last,lodash$1.lastIndexOf=array.lastIndexOf,lodash$1.lowerCase=string.lowerCase,lodash$1.lowerFirst=string.lowerFirst,lodash$1.lt=lang.lt,lodash$1.lte=lang.lte,lodash$1.max=math.max,lodash$1.maxBy=math.maxBy,lodash$1.mean=math.mean,lodash$1.meanBy=math.meanBy,lodash$1.min=math.min,lodash$1.minBy=math.minBy,lodash$1.stubArray=util.stubArray,lodash$1.stubFalse=util.stubFalse,lodash$1.stubObject=util.stubObject,lodash$1.stubString=util.stubString,lodash$1.stubTrue=util.stubTrue,lodash$1.multiply=math.multiply,lodash$1.nth=array.nth,lodash$1.noop=util.noop,lodash$1.now=date.now,lodash$1.pad=string.pad,lodash$1.padEnd=string.padEnd,lodash$1.padStart=string.padStart,lodash$1.parseInt=string.parseInt,lodash$1.random=number.random,lodash$1.reduce=collection.reduce,lodash$1.reduceRight=collection.reduceRight,lodash$1.repeat=string.repeat,lodash$1.replace=string.replace,lodash$1.result=object.result,lodash$1.round=math.round,lodash$1.sample=collection.sample,lodash$1.size=collection.size,lodash$1.snakeCase=string.snakeCase,lodash$1.some=collection.some,lodash$1.sortedIndex=array.sortedIndex,lodash$1.sortedIndexBy=array.sortedIndexBy,lodash$1.sortedIndexOf=array.sortedIndexOf,lodash$1.sortedLastIndex=array.sortedLastIndex,lodash$1.sortedLastIndexBy=array.sortedLastIndexBy,lodash$1.sortedLastIndexOf=array.sortedLastIndexOf,lodash$1.startCase=string.startCase,lodash$1.startsWith=string.startsWith,lodash$1.subtract=math.subtract,lodash$1.sum=math.sum,lodash$1.sumBy=math.sumBy,lodash$1.template=string.template,lodash$1.times=util.times,lodash$1.toFinite=lang.toFinite,lodash$1.toInteger=toInteger,lodash$1.toLength=lang.toLength,lodash$1.toLower=string.toLower,lodash$1.toNumber=lang.toNumber,lodash$1.toSafeInteger=lang.toSafeInteger,lodash$1.toString=lang.toString,lodash$1.toUpper=string.toUpper,lodash$1.trim=string.trim,lodash$1.trimEnd=string.trimEnd,lodash$1.trimStart=string.trimStart,lodash$1.truncate=string.truncate,lodash$1.unescape=string.unescape,lodash$1.uniqueId=util.uniqueId,lodash$1.upperCase=string.upperCase,lodash$1.upperFirst=string.upperFirst,lodash$1.each=collection.forEach,lodash$1.eachRight=collection.forEachRight,lodash$1.first=array.head,mixin(lodash$1,(source={},baseForOwn(lodash$1,(function(e,t){hasOwnProperty.call(lodash$1.prototype,t)||(source[t]=e)})),source),{chain:!1}),lodash$1.VERSION=VERSION,(lodash$1.templateSettings=string.templateSettings).imports._=lodash$1,arrayEach(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){lodash$1[e].placeholder=lodash$1})),arrayEach(["drop","take"],(function(e,t){LazyWrapper.prototype[e]=function(r){r=void 0===r?1:nativeMax(toInteger(r),0);var i=this.__filtered__&&!t?new LazyWrapper(this):this.clone();return i.__filtered__?i.__takeCount__=nativeMin(r,i.__takeCount__):i.__views__.push({size:nativeMin(r,MAX_ARRAY_LENGTH),type:e+(i.__dir__<0?"Right":"")}),i},LazyWrapper.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),arrayEach(["filter","map","takeWhile"],(function(e,t){var r=t+1,i=r==LAZY_FILTER_FLAG||r==LAZY_WHILE_FLAG;LazyWrapper.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:baseIteratee(e),type:r}),t.__filtered__=t.__filtered__||i,t}})),arrayEach(["head","last"],(function(e,t){var r="take"+(t?"Right":"");LazyWrapper.prototype[e]=function(){return this[r](1).value()[0]}})),arrayEach(["initial","tail"],(function(e,t){var r="drop"+(t?"":"Right");LazyWrapper.prototype[e]=function(){return this.__filtered__?new LazyWrapper(this):this[r](1)}})),LazyWrapper.prototype.compact=function(){return this.filter(identity$1)},LazyWrapper.prototype.find=function(e){return this.filter(e).head()},LazyWrapper.prototype.findLast=function(e){return this.reverse().find(e)},LazyWrapper.prototype.invokeMap=baseRest((function(e,t){return"function"==typeof e?new LazyWrapper(this):this.map((function(r){return baseInvoke(r,e,t)}))})),LazyWrapper.prototype.reject=function(e){return this.filter(negate(baseIteratee(e)))},LazyWrapper.prototype.slice=function(e,t){e=toInteger(e);var r=this;return r.__filtered__&&(e>0||t<0)?new LazyWrapper(r):(e<0?r=r.takeRight(-e):e&&(r=r.drop(e)),void 0!==t&&(r=(t=toInteger(t))<0?r.dropRight(-t):r.take(t-e)),r)},LazyWrapper.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},LazyWrapper.prototype.toArray=function(){return this.take(MAX_ARRAY_LENGTH)},baseForOwn(LazyWrapper.prototype,(function(e,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),s=lodash$1[i?"take"+("last"==t?"Right":""):t],o=i||/^find/.test(t);s&&(lodash$1.prototype[t]=function(){var t=this.__wrapped__,n=i?[1]:arguments,a=t instanceof LazyWrapper,u=n[0],l=a||isArray$1(t),c=function(e){var t=s.apply(lodash$1,arrayPush([e],n));return i&&d?t[0]:t};l&&r&&"function"==typeof u&&1!=u.length&&(a=l=!1);var d=this.__chain__,h=!!this.__actions__.length,m=o&&!d,p=a&&!h;if(!o&&l){t=p?t:new LazyWrapper(this);var f=e.apply(t,n);return f.__actions__.push({func:thru,args:[c],thisArg:void 0}),new LodashWrapper(f,d)}return m&&p?e.apply(this,n):(f=this.thru(c),m?i?f.value()[0]:f.value():f)})})),arrayEach(["pop","push","shift","sort","splice","unshift"],(function(e){var t=arrayProto[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);lodash$1.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var s=this.value();return t.apply(isArray$1(s)?s:[],e)}return this[r]((function(r){return t.apply(isArray$1(r)?r:[],e)}))}})),baseForOwn(LazyWrapper.prototype,(function(e,t){var r=lodash$1[t];if(r){var i=r.name+"";hasOwnProperty.call(realNames$1,i)||(realNames$1[i]=[]),realNames$1[i].push({name:t,func:r})}})),realNames$1[createHybrid(void 0,WRAP_BIND_KEY_FLAG).name]=[{name:"wrapper",func:void 0}],LazyWrapper.prototype.clone=lazyClone,LazyWrapper.prototype.reverse=lazyReverse,LazyWrapper.prototype.value=lazyValue,lodash$1.prototype.at=seq.at,lodash$1.prototype.chain=seq.wrapperChain,lodash$1.prototype.commit=seq.commit,lodash$1.prototype.next=seq.next,lodash$1.prototype.plant=seq.plant,lodash$1.prototype.reverse=seq.reverse,lodash$1.prototype.toJSON=lodash$1.prototype.valueOf=lodash$1.prototype.value=seq.value,lodash$1.prototype.first=lodash$1.prototype.head,symIterator&&(lodash$1.prototype[symIterator]=seq.toIterator)
|
|
11
|
-
/**
|
|
12
|
-
* @license
|
|
13
|
-
* Lodash (Custom Build) <https://lodash.com/>
|
|
14
|
-
* Build: `lodash modularize exports="es" -o ./`
|
|
15
|
-
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
16
|
-
* Released under MIT license <https://lodash.com/license>
|
|
17
|
-
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
18
|
-
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
19
|
-
*/;var lodash=Object.freeze({__proto__:null,add:add$1,after:after,ary:ary,assign:assign$1,assignIn:extend,assignInWith:extendWith,assignWith:assignWith$1,at:at$2,attempt:attempt$1,before:before,bind:bind$2,bindAll:bindAll$1,bindKey:bindKey$1,camelCase:camelCase$1,capitalize:capitalize,castArray:castArray,ceil:ceil$1,chain:chain,chunk:chunk,clamp:clamp,clone:clone,cloneDeep:cloneDeep,cloneDeepWith:cloneDeepWith,cloneWith:cloneWith,commit:wrapperCommit,compact:compact,concat:concat,cond:cond,conforms:conforms,conformsTo:conformsTo,constant:constant,countBy:countBy$1,create:create,curry:curry,curryRight:curryRight,debounce:debounce,deburr:deburr,defaultTo:defaultTo,defaults:defaults$1,defaultsDeep:defaultsDeep$1,defer:defer$1,delay:delay$1,difference:difference$1,differenceBy:differenceBy$1,differenceWith:differenceWith$1,divide:divide$1,drop:drop,dropRight:dropRight,dropRightWhile:dropRightWhile,dropWhile:dropWhile,each:forEach,eachRight:forEachRight,endsWith:endsWith,entries:toPairs$1,entriesIn:toPairsIn$1,eq:eq,escape:escape,escapeRegExp:escapeRegExp,every:every,extend:extend,extendWith:extendWith,fill:fill,filter:filter,find:find$1,findIndex:findIndex,findKey:findKey,findLast:findLast$1,findLastIndex:findLastIndex,findLastKey:findLastKey,first:head,flatMap:flatMap,flatMapDeep:flatMapDeep,flatMapDepth:flatMapDepth,flatten:flatten,flattenDeep:flattenDeep,flattenDepth:flattenDepth,flip:flip,floor:floor$1,flow:flow$1,flowRight:flowRight$1,forEach:forEach,forEachRight:forEachRight,forIn:forIn,forInRight:forInRight,forOwn:forOwn,forOwnRight:forOwnRight,fromPairs:fromPairs,functions:functions,functionsIn:functionsIn,get:get,groupBy:groupBy$1,gt:gt$1,gte:gte$1,has:has$1,hasIn:hasIn,head:head,identity:identity$1,inRange:inRange,includes:includes,indexOf:indexOf$2,initial:initial,intersection:intersection$1,intersectionBy:intersectionBy$1,intersectionWith:intersectionWith$1,invert:invert$1,invertBy:invertBy$1,invoke:invoke$1,invokeMap:invokeMap$1,isArguments:isArguments$1,isArray:isArray$1,isArrayBuffer:isArrayBuffer$1,isArrayLike:isArrayLike,isArrayLikeObject:isArrayLikeObject,isBoolean:isBoolean,isBuffer:isBuffer$1,isDate:isDate$1,isElement:isElement,isEmpty:isEmpty,isEqual:isEqual,isEqualWith:isEqualWith,isError:isError,isFinite:isFinite$1,isFunction:isFunction$1,isInteger:isInteger,isLength:isLength,isMap:isMap$1,isMatch:isMatch,isMatchWith:isMatchWith,isNaN:isNaN$1,isNative:isNative$1,isNil:isNil,isNull:isNull,isNumber:isNumber,isObject:isObject,isObjectLike:isObjectLike,isPlainObject:isPlainObject,isRegExp:isRegExp$1,isSafeInteger:isSafeInteger,isSet:isSet$1,isString:isString,isSymbol:isSymbol,isTypedArray:isTypedArray$1,isUndefined:isUndefined,isWeakMap:isWeakMap,isWeakSet:isWeakSet,iteratee:iteratee,join:join,kebabCase:kebabCase$1,keyBy:keyBy$1,keys:keys,keysIn:keysIn,last:last,lastIndexOf:lastIndexOf,lodash:lodash$1,lowerCase:lowerCase$1,lowerFirst:lowerFirst$1,lt:lt$1,lte:lte$1,map:map,mapKeys:mapKeys,mapValues:mapValues,matches:matches,matchesProperty:matchesProperty,max:max,maxBy:maxBy,mean:mean,meanBy:meanBy,memoize:memoize,merge:merge$1,mergeWith:mergeWith$1,method:method$1,methodOf:methodOf$1,min:min,minBy:minBy,mixin:mixin$1,multiply:multiply$1,negate:negate,next:wrapperNext,noop:noop$1,now:now$1,nth:nth,nthArg:nthArg,omit:omit$1,omitBy:omitBy,once:once,orderBy:orderBy,over:over$1,overArgs:overArgs$1,overEvery:overEvery$1,overSome:overSome$1,pad:pad,padEnd:padEnd,padStart:padStart,parseInt:parseInt$1,partial:partial$1,partialRight:partialRight$1,partition:partition$1,pick:pick$1,pickBy:pickBy,plant:wrapperPlant,property:property,propertyOf:propertyOf,pull:pull$1,pullAll:pullAll,pullAllBy:pullAllBy,pullAllWith:pullAllWith,pullAt:pullAt$1,random:random,range:range$1,rangeRight:rangeRight$1,rearg:rearg$1,reduce:reduce,reduceRight:reduceRight,reject:reject$1,remove:remove,repeat:repeat,replace:replace,rest:rest,result:result,reverse:reverse,round:round$1,sample:sample,sampleSize:sampleSize,set:set,setWith:setWith,shuffle:shuffle,size:size,slice:slice,snakeCase:snakeCase$1,some:some,sortBy:sortBy$1,sortedIndex:sortedIndex,sortedIndexBy:sortedIndexBy,sortedIndexOf:sortedIndexOf,sortedLastIndex:sortedLastIndex,sortedLastIndexBy:sortedLastIndexBy,sortedLastIndexOf:sortedLastIndexOf,sortedUniq:sortedUniq,sortedUniqBy:sortedUniqBy,split:split,spread:spread,startCase:startCase$1,startsWith:startsWith,stubArray:stubArray,stubFalse:stubFalse,stubObject:stubObject,stubString:stubString,stubTrue:stubTrue,subtract:subtract$1,sum:sum,sumBy:sumBy,tail:tail,take:take,takeRight:takeRight,takeRightWhile:takeRightWhile,takeWhile:takeWhile,tap:tap,template:template,templateSettings:templateSettings$1,throttle:throttle,thru:thru,times:times,toArray:toArray,toFinite:toFinite,toInteger:toInteger,toIterator:wrapperToIterator,toJSON:wrapperValue,toLength:toLength,toLower:toLower,toNumber:toNumber,toPairs:toPairs$1,toPairsIn:toPairsIn$1,toPath:toPath,toPlainObject:toPlainObject,toSafeInteger:toSafeInteger,toString:toString$1,toUpper:toUpper,transform:transform,trim:trim,trimEnd:trimEnd,trimStart:trimStart,truncate:truncate,unary:unary,unescape:unescape$1,union:union$1,unionBy:unionBy$1,unionWith:unionWith$1,uniq:uniq,uniqBy:uniqBy,uniqWith:uniqWith,uniqueId:uniqueId,unset:unset,unzip:unzip,unzipWith:unzipWith,update:update,updateWith:updateWith,upperCase:upperCase$1,upperFirst:upperFirst$1,value:wrapperValue,valueOf:wrapperValue,values:values,valuesIn:valuesIn,without:without$1,words:words,wrap:wrap,wrapperAt:at,wrapperChain:wrapperChain,wrapperCommit:wrapperCommit,wrapperLodash:lodash$1,wrapperNext:wrapperNext,wrapperPlant:wrapperPlant,wrapperReverse:wrapperReverse,wrapperToIterator:wrapperToIterator,wrapperValue:wrapperValue,xor:xor$1,xorBy:xorBy$1,xorWith:xorWith$1,zip:zip$1,zipObject:zipObject,zipObjectDeep:zipObjectDeep,zipWith:zipWith$1,default:lodash$1}),require$$2=getAugmentedNamespace(lodash);const BROWSER_ALIASES_MAP={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},BROWSER_MAP={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},PLATFORMS_MAP={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},OS_MAP={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},ENGINE_MAP={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class Utils{static getFirstMatch(e,t){const r=t.match(e);return r&&r.length>0&&r[1]||""}static getSecondMatch(e,t){const r=t.match(e);return r&&r.length>1&&r[2]||""}static matchAndReturnConst(e,t,r){if(e.test(t))return r}static getWindowsVersionName(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(e){const t=e.split(".").splice(0,2).map((e=>parseInt(e,10)||0));if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(e){const t=e.split(".").splice(0,2).map((e=>parseInt(e,10)||0));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0}static getVersionPrecision(e){return e.split(".").length}static compareVersions(e,t,r=!1){const i=Utils.getVersionPrecision(e),s=Utils.getVersionPrecision(t);let o=Math.max(i,s),n=0;const a=Utils.map([e,t],(e=>{const t=o-Utils.getVersionPrecision(e),r=e+new Array(t+1).join(".0");return Utils.map(r.split("."),(e=>new Array(20-e.length).join("0")+e)).reverse()}));for(r&&(n=o-Math.min(i,s)),o-=1;o>=n;){if(a[0][o]>a[1][o])return 1;if(a[0][o]===a[1][o]){if(o===n)return 0;o-=1}else if(a[0][o]<a[1][o])return-1}}static map(e,t){const r=[];let i;if(Array.prototype.map)return Array.prototype.map.call(e,t);for(i=0;i<e.length;i+=1)r.push(t(e[i]));return r}static find(e,t){let r,i;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,i=e.length;r<i;r+=1){const i=e[r];if(t(i,r))return i}}static assign(e,...t){const r=e;let i,s;if(Object.assign)return Object.assign(e,...t);for(i=0,s=t.length;i<s;i+=1){const e=t[i];if("object"==typeof e&&null!==e){Object.keys(e).forEach((t=>{r[t]=e[t]}))}}return e}static getBrowserAlias(e){return BROWSER_ALIASES_MAP[e]}static getBrowserTypeByAlias(e){return BROWSER_MAP[e]||""}}const commonVersionIdentifier=/version\/(\d+(\.?_?\d+)+)/i,browsersList=[{test:[/googlebot/i],describe(e){const t={name:"Googlebot"},r=Utils.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/opera/i],describe(e){const t={name:"Opera"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe(e){const t={name:"Opera"},r=Utils.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe(e){const t={name:"Samsung Internet for Android"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe(e){const t={name:"NAVER Whale Browser"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe(e){const t={name:"MZ Browser"},r=Utils.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/focus/i],describe(e){const t={name:"Focus"},r=Utils.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/swing/i],describe(e){const t={name:"Swing"},r=Utils.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/coast/i],describe(e){const t={name:"Opera Coast"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(e){const t={name:"Opera Touch"},r=Utils.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe(e){const t={name:"Yandex Browser"},r=Utils.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe(e){const t={name:"UC Browser"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe(e){const t={name:"Maxthon"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe(e){const t={name:"Epiphany"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe(e){const t={name:"Puffin"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe(e){const t={name:"Sleipnir"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe(e){const t={name:"K-Meleon"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe(e){const t={name:"WeChat"},r=Utils.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe(e){const t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=Utils.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe(e){const t={name:"Internet Explorer"},r=Utils.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe(e){const t={name:"Microsoft Edge"},r=Utils.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe(e){const t={name:"Microsoft Edge"},r=Utils.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe(e){const t={name:"Vivaldi"},r=Utils.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe(e){const t={name:"SeaMonkey"},r=Utils.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe(e){const t={name:"Sailfish"},r=Utils.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe(e){const t={name:"Amazon Silk"},r=Utils.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe(e){const t={name:"PhantomJS"},r=Utils.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe(e){const t={name:"SlimerJS"},r=Utils.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){const t={name:"BlackBerry"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe(e){const t={name:"WebOS Browser"},r=Utils.getFirstMatch(commonVersionIdentifier,e)||Utils.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe(e){const t={name:"Bada"},r=Utils.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe(e){const t={name:"Tizen"},r=Utils.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe(e){const t={name:"QupZilla"},r=Utils.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe(e){const t={name:"Firefox"},r=Utils.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe(e){const t={name:"Electron"},r=Utils.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe(e){const t={name:"Miui"},r=Utils.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe(e){const t={name:"Chromium"},r=Utils.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe(e){const t={name:"Chrome"},r=Utils.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe(e){const t={name:"Google Search"},r=Utils.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test(e){const t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe(e){const t={name:"Android Browser"},r=Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe(e){const t={name:"PlayStation 4"},r=Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe(e){const t={name:"Safari"},r=Utils.getFirstMatch(commonVersionIdentifier,e);return r&&(t.version=r),t}},{test:[/.*/i],describe(e){const t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:Utils.getFirstMatch(t,e),version:Utils.getSecondMatch(t,e)}}}];var osParsersList=[{test:[/Roku\/DVP/],describe(e){const t=Utils.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe(e){const t=Utils.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe(e){const t=Utils.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=Utils.getWindowsVersionName(t);return{name:OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(e){const t={name:OS_MAP.iOS},r=Utils.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe(e){const t=Utils.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=Utils.getMacOSVersionName(t),i={name:OS_MAP.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe(e){const t=Utils.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:OS_MAP.iOS,version:t}}},{test(e){const t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe(e){const t=Utils.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=Utils.getAndroidVersionName(t),i={name:OS_MAP.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe(e){const t=Utils.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(e){const t=Utils.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||Utils.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||Utils.getFirstMatch(/\bbb(\d+)/i,e);return{name:OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe(e){const t=Utils.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe(e){const t=Utils.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:()=>({name:OS_MAP.Linux})},{test:[/CrOS/],describe:()=>({name:OS_MAP.ChromeOS})},{test:[/PlayStation 4/],describe(e){const t=Utils.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:OS_MAP.PlayStation4,version:t}}}],platformParsersList=[{test:[/googlebot/i],describe:()=>({type:"bot",vendor:"Google"})},{test:[/huawei/i],describe(e){const t=Utils.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:()=>({type:PLATFORMS_MAP.tablet,vendor:"Nexus"})},{test:[/ipad/i],describe:()=>({type:PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"})},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:()=>({type:PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"})},{test:[/kftt build/i],describe:()=>({type:PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"})},{test:[/silk/i],describe:()=>({type:PLATFORMS_MAP.tablet,vendor:"Amazon"})},{test:[/tablet(?! pc)/i],describe:()=>({type:PLATFORMS_MAP.tablet})},{test(e){const t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe(e){const t=Utils.getFirstMatch(/(ipod|iphone)/i,e);return{type:PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:()=>({type:PLATFORMS_MAP.mobile,vendor:"Nexus"})},{test:[/[^-]mobi/i],describe:()=>({type:PLATFORMS_MAP.mobile})},{test:e=>"blackberry"===e.getBrowserName(!0),describe:()=>({type:PLATFORMS_MAP.mobile,vendor:"BlackBerry"})},{test:e=>"bada"===e.getBrowserName(!0),describe:()=>({type:PLATFORMS_MAP.mobile})},{test:e=>"windows phone"===e.getBrowserName(),describe:()=>({type:PLATFORMS_MAP.mobile,vendor:"Microsoft"})},{test(e){const t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:()=>({type:PLATFORMS_MAP.tablet})},{test:e=>"android"===e.getOSName(!0),describe:()=>({type:PLATFORMS_MAP.mobile})},{test:e=>"macos"===e.getOSName(!0),describe:()=>({type:PLATFORMS_MAP.desktop,vendor:"Apple"})},{test:e=>"windows"===e.getOSName(!0),describe:()=>({type:PLATFORMS_MAP.desktop})},{test:e=>"linux"===e.getOSName(!0),describe:()=>({type:PLATFORMS_MAP.desktop})},{test:e=>"playstation 4"===e.getOSName(!0),describe:()=>({type:PLATFORMS_MAP.tv})},{test:e=>"roku"===e.getOSName(!0),describe:()=>({type:PLATFORMS_MAP.tv})}],enginesParsersList=[{test:e=>"microsoft edge"===e.getBrowserName(!0),describe(e){if(/\sedg\//i.test(e))return{name:ENGINE_MAP.Blink};const t=Utils.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe(e){const t={name:ENGINE_MAP.Trident},r=Utils.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:e=>e.test(/presto/i),describe(e){const t={name:ENGINE_MAP.Presto},r=Utils.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test(e){const t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe(e){const t={name:ENGINE_MAP.Gecko},r=Utils.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:()=>({name:ENGINE_MAP.Blink})},{test:[/(apple)?webkit/i],describe(e){const t={name:ENGINE_MAP.WebKit},r=Utils.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];class Parser{constructor(e,t=!1){if(null==e||""===e)throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}getUA(){return this._ua}test(e){return e.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const e=Utils.find(browsersList,(e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const e=Utils.find(osParsersList,(e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}getOSName(e){const{name:t}=this.getOS();return e?String(t).toLowerCase()||"":t||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(e=!1){const{type:t}=this.getPlatform();return e?String(t).toLowerCase()||"":t||""}parsePlatform(){this.parsedResult.platform={};const e=Utils.find(platformParsersList,(e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};const e=Utils.find(enginesParsersList,(e=>{if("function"==typeof e.test)return e.test(this);if(e.test instanceof Array)return e.test.some((e=>this.test(e)));throw new Error("Browser's test function is not valid")}));return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return Utils.assign({},this.parsedResult)}satisfies(e){const t={};let r=0;const i={};let s=0;if(Object.keys(e).forEach((o=>{const n=e[o];"string"==typeof n?(i[o]=n,s+=1):"object"==typeof n&&(t[o]=n,r+=1)})),r>0){const e=Object.keys(t),r=Utils.find(e,(e=>this.isOS(e)));if(r){const e=this.satisfies(t[r]);if(void 0!==e)return e}const i=Utils.find(e,(e=>this.isPlatform(e)));if(i){const e=this.satisfies(t[i]);if(void 0!==e)return e}}if(s>0){const e=Object.keys(i),t=Utils.find(e,(e=>this.isBrowser(e,!0)));if(void 0!==t)return this.compareVersion(i[t])}}isBrowser(e,t=!1){const r=this.getBrowserName().toLowerCase();let i=e.toLowerCase();const s=Utils.getBrowserTypeByAlias(i);return t&&s&&(i=s.toLowerCase()),i===r}compareVersion(e){let t=[0],r=e,i=!1;const s=this.getBrowserVersion();if("string"==typeof s)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(i=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(i=!0,r=e.substr(1)),t.indexOf(Utils.compareVersions(s,r,i))>-1}isOS(e){return this.getOSName(!0)===String(e).toLowerCase()}isPlatform(e){return this.getPlatformType(!0)===String(e).toLowerCase()}isEngine(e){return this.getEngineName(!0)===String(e).toLowerCase()}is(e,t=!1){return this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)}some(e=[]){return e.some((e=>this.is(e)))}}
|
|
20
|
-
/*!
|
|
21
|
-
* Bowser - a browser detector
|
|
22
|
-
* https://github.com/lancedikson/bowser
|
|
23
|
-
* MIT License | (c) Dustin Diaz 2012-2015
|
|
24
|
-
* MIT License | (c) Denis Demchenko 2015-2019
|
|
25
|
-
*/class Bowser{static getParser(e,t=!1){if("string"!=typeof e)throw new Error("UserAgent should be a string");return new Parser(e,t)}static parse(e){return new Parser(e).getResult()}static get BROWSER_MAP(){return BROWSER_MAP}static get ENGINE_MAP(){return ENGINE_MAP}static get OS_MAP(){return OS_MAP}static get PLATFORMS_MAP(){return PLATFORMS_MAP}}var bowser=Object.freeze({__proto__:null,default:Bowser}),require$$3=getAugmentedNamespace(bowser),specialChar="~",safeSpecialChar="\\x"+("0"+specialChar.charCodeAt(0).toString(16)).slice(-2),escapedSafeSpecialChar="\\"+safeSpecialChar,specialCharRG=new RegExp(safeSpecialChar,"g"),safeSpecialCharRG=new RegExp(escapedSafeSpecialChar,"g"),safeStartWithSpecialCharRG=new RegExp("(?:^|([^\\\\]))"+escapedSafeSpecialChar),indexOf$1=[].indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},$String=String;function generateReplacer(e,t,r){var i,s,o=!1,n=!!t,a=[],u=[e],l=[e],c=[r?specialChar:"[Circular]"],d=e,h=1;return n&&(s="object"==typeof t?function(e,r){return""!==e&&t.indexOf(e)<0?void 0:r}:t),function(e,t){return n&&(t=s.call(this,e,t)),o?(d!==this&&(i=h-indexOf$1.call(u,this)-1,h-=i,u.splice(h,u.length),a.splice(h-1,a.length),d=this),"object"==typeof t&&t?(indexOf$1.call(u,t)<0&&u.push(d=t),h=u.length,(i=indexOf$1.call(l,t))<0?(i=l.push(t)-1,r?(a.push((""+e).replace(specialCharRG,safeSpecialChar)),c[i]=specialChar+a.join(specialChar)):c[i]=c[0]):t=c[i]):"string"==typeof t&&r&&(t=t.replace(safeSpecialChar,escapedSafeSpecialChar).replace(specialChar,safeSpecialChar))):o=!0,t}}function retrieveFromPath(e,t){for(var r=0,i=t.length;r<i;e=e[t[r++].replace(safeSpecialCharRG,specialChar)]);return e}function generateReviver(e){return function(t,r){var i="string"==typeof r;return i&&r.charAt(0)===specialChar?new $String(r.slice(1)):(""===t&&(r=regenerate(r,r,{})),i&&(r=r.replace(safeStartWithSpecialCharRG,"$1"+specialChar).replace(escapedSafeSpecialChar,safeSpecialChar)),e?e.call(this,t,r):r)}}function regenerateArray(e,t,r){for(var i=0,s=t.length;i<s;i++)t[i]=regenerate(e,t[i],r);return t}function regenerateObject(e,t,r){for(var i in t)t.hasOwnProperty(i)&&(t[i]=regenerate(e,t[i],r));return t}function regenerate(e,t,r){return t instanceof Array?regenerateArray(e,t,r):t instanceof $String?t.length?r.hasOwnProperty(t)?r[t]:r[t]=retrieveFromPath(e,t.split(specialChar)):e:t instanceof Object?regenerateObject(e,t,r):t}var CircularJSON={stringify:function(e,t,r,i){return CircularJSON.parser.stringify(e,generateReplacer(e,t,!i),r)},parse:function(e,t){return CircularJSON.parser.parse(e,generateReviver(t))},parser:JSON},circularJson_node=CircularJSON,md5={exports:{}};(function(module){(function(){var ERROR="input is invalid type",WINDOW="object"==typeof window,root=WINDOW?window:{};root.JS_MD5_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&"object"==typeof self,NODE_JS=!root.JS_MD5_NO_NODE_JS&&"object"==typeof process&&process.versions&&process.versions.node;NODE_JS?root=commonjsGlobal:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_MD5_NO_COMMON_JS&&module.exports,ARRAY_BUFFER=!root.JS_MD5_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,HEX_CHARS="0123456789abcdef".split(""),EXTRA=[128,32768,8388608,-2147483648],SHIFT=[0,8,16,24],OUTPUT_TYPES=["hex","array","digest","buffer","arrayBuffer","base64"],BASE64_ENCODE_CHAR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),blocks=[],buffer8;if(ARRAY_BUFFER){var buffer=new ArrayBuffer(68);buffer8=new Uint8Array(buffer),blocks=new Uint32Array(buffer)}!root.JS_MD5_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!ARRAY_BUFFER||!root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e){return function(t){return new Md5(!0).update(t)[e]()}},createMethod=function(){var e=createOutputMethod("hex");NODE_JS&&(e=nodeWrap(e)),e.create=function(){return new Md5},e.update=function(t){return e.create().update(t)};for(var t=0;t<OUTPUT_TYPES.length;++t){var r=OUTPUT_TYPES[t];e[r]=createOutputMethod(r)}return e},nodeWrap=function(method){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),nodeMethod=function(e){if("string"==typeof e)return crypto.createHash("md5").update(e,"utf8").digest("hex");if(null==e)throw ERROR;return e.constructor===ArrayBuffer&&(e=new Uint8Array(e)),Array.isArray(e)||ArrayBuffer.isView(e)||e.constructor===Buffer?crypto.createHash("md5").update(new Buffer(e)).digest("hex"):method(e)};return nodeMethod};function Md5(e){if(e)blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks,this.buffer8=buffer8;else if(ARRAY_BUFFER){var t=new ArrayBuffer(68);this.buffer8=new Uint8Array(t),this.blocks=new Uint32Array(t)}else this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}Md5.prototype.update=function(e){if(!this.finalized){var t,r=typeof e;if("string"!==r){if("object"!==r)throw ERROR;if(null===e)throw ERROR;if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||ARRAY_BUFFER&&ArrayBuffer.isView(e)))throw ERROR;t=!0}for(var i,s,o=0,n=e.length,a=this.blocks,u=this.buffer8;o<n;){if(this.hashed&&(this.hashed=!1,a[0]=a[16],a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),t)if(ARRAY_BUFFER)for(s=this.start;o<n&&s<64;++o)u[s++]=e[o];else for(s=this.start;o<n&&s<64;++o)a[s>>2]|=e[o]<<SHIFT[3&s++];else if(ARRAY_BUFFER)for(s=this.start;o<n&&s<64;++o)(i=e.charCodeAt(o))<128?u[s++]=i:i<2048?(u[s++]=192|i>>6,u[s++]=128|63&i):i<55296||i>=57344?(u[s++]=224|i>>12,u[s++]=128|i>>6&63,u[s++]=128|63&i):(i=65536+((1023&i)<<10|1023&e.charCodeAt(++o)),u[s++]=240|i>>18,u[s++]=128|i>>12&63,u[s++]=128|i>>6&63,u[s++]=128|63&i);else for(s=this.start;o<n&&s<64;++o)(i=e.charCodeAt(o))<128?a[s>>2]|=i<<SHIFT[3&s++]:i<2048?(a[s>>2]|=(192|i>>6)<<SHIFT[3&s++],a[s>>2]|=(128|63&i)<<SHIFT[3&s++]):i<55296||i>=57344?(a[s>>2]|=(224|i>>12)<<SHIFT[3&s++],a[s>>2]|=(128|i>>6&63)<<SHIFT[3&s++],a[s>>2]|=(128|63&i)<<SHIFT[3&s++]):(i=65536+((1023&i)<<10|1023&e.charCodeAt(++o)),a[s>>2]|=(240|i>>18)<<SHIFT[3&s++],a[s>>2]|=(128|i>>12&63)<<SHIFT[3&s++],a[s>>2]|=(128|i>>6&63)<<SHIFT[3&s++],a[s>>2]|=(128|63&i)<<SHIFT[3&s++]);this.lastByteIndex=s,this.bytes+=s-this.start,s>=64?(this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Md5.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[t>>2]|=EXTRA[3&t],t>=56&&(this.hashed||this.hash(),e[0]=e[16],e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.bytes<<3,e[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},Md5.prototype.hash=function(){var e,t,r,i,s,o,n=this.blocks;this.first?t=((t=((e=((e=n[0]-680876937)<<7|e>>>25)-271733879<<0)^(r=((r=(-271733879^(i=((i=(-1732584194^2004318071&e)+n[1]-117830708)<<12|i>>>20)+e<<0)&(-271733879^e))+n[2]-1126478375)<<17|r>>>15)+i<<0)&(i^e))+n[3]-1316259209)<<22|t>>>10)+r<<0:(e=this.h0,t=this.h1,r=this.h2,t=((t+=((e=((e+=((i=this.h3)^t&(r^i))+n[0]-680876936)<<7|e>>>25)+t<<0)^(r=((r+=(t^(i=((i+=(r^e&(t^r))+n[1]-389564586)<<12|i>>>20)+e<<0)&(e^t))+n[2]+606105819)<<17|r>>>15)+i<<0)&(i^e))+n[3]-1044525330)<<22|t>>>10)+r<<0),t=((t+=((e=((e+=(i^t&(r^i))+n[4]-176418897)<<7|e>>>25)+t<<0)^(r=((r+=(t^(i=((i+=(r^e&(t^r))+n[5]+1200080426)<<12|i>>>20)+e<<0)&(e^t))+n[6]-1473231341)<<17|r>>>15)+i<<0)&(i^e))+n[7]-45705983)<<22|t>>>10)+r<<0,t=((t+=((e=((e+=(i^t&(r^i))+n[8]+1770035416)<<7|e>>>25)+t<<0)^(r=((r+=(t^(i=((i+=(r^e&(t^r))+n[9]-1958414417)<<12|i>>>20)+e<<0)&(e^t))+n[10]-42063)<<17|r>>>15)+i<<0)&(i^e))+n[11]-1990404162)<<22|t>>>10)+r<<0,t=((t+=((e=((e+=(i^t&(r^i))+n[12]+1804603682)<<7|e>>>25)+t<<0)^(r=((r+=(t^(i=((i+=(r^e&(t^r))+n[13]-40341101)<<12|i>>>20)+e<<0)&(e^t))+n[14]-1502002290)<<17|r>>>15)+i<<0)&(i^e))+n[15]+1236535329)<<22|t>>>10)+r<<0,t=((t+=((i=((i+=(t^r&((e=((e+=(r^i&(t^r))+n[1]-165796510)<<5|e>>>27)+t<<0)^t))+n[6]-1069501632)<<9|i>>>23)+e<<0)^e&((r=((r+=(e^t&(i^e))+n[11]+643717713)<<14|r>>>18)+i<<0)^i))+n[0]-373897302)<<20|t>>>12)+r<<0,t=((t+=((i=((i+=(t^r&((e=((e+=(r^i&(t^r))+n[5]-701558691)<<5|e>>>27)+t<<0)^t))+n[10]+38016083)<<9|i>>>23)+e<<0)^e&((r=((r+=(e^t&(i^e))+n[15]-660478335)<<14|r>>>18)+i<<0)^i))+n[4]-405537848)<<20|t>>>12)+r<<0,t=((t+=((i=((i+=(t^r&((e=((e+=(r^i&(t^r))+n[9]+568446438)<<5|e>>>27)+t<<0)^t))+n[14]-1019803690)<<9|i>>>23)+e<<0)^e&((r=((r+=(e^t&(i^e))+n[3]-187363961)<<14|r>>>18)+i<<0)^i))+n[8]+1163531501)<<20|t>>>12)+r<<0,t=((t+=((i=((i+=(t^r&((e=((e+=(r^i&(t^r))+n[13]-1444681467)<<5|e>>>27)+t<<0)^t))+n[2]-51403784)<<9|i>>>23)+e<<0)^e&((r=((r+=(e^t&(i^e))+n[7]+1735328473)<<14|r>>>18)+i<<0)^i))+n[12]-1926607734)<<20|t>>>12)+r<<0,t=((t+=((o=(i=((i+=((s=t^r)^(e=((e+=(s^i)+n[5]-378558)<<4|e>>>28)+t<<0))+n[8]-2022574463)<<11|i>>>21)+e<<0)^e)^(r=((r+=(o^t)+n[11]+1839030562)<<16|r>>>16)+i<<0))+n[14]-35309556)<<23|t>>>9)+r<<0,t=((t+=((o=(i=((i+=((s=t^r)^(e=((e+=(s^i)+n[1]-1530992060)<<4|e>>>28)+t<<0))+n[4]+1272893353)<<11|i>>>21)+e<<0)^e)^(r=((r+=(o^t)+n[7]-155497632)<<16|r>>>16)+i<<0))+n[10]-1094730640)<<23|t>>>9)+r<<0,t=((t+=((o=(i=((i+=((s=t^r)^(e=((e+=(s^i)+n[13]+681279174)<<4|e>>>28)+t<<0))+n[0]-358537222)<<11|i>>>21)+e<<0)^e)^(r=((r+=(o^t)+n[3]-722521979)<<16|r>>>16)+i<<0))+n[6]+76029189)<<23|t>>>9)+r<<0,t=((t+=((o=(i=((i+=((s=t^r)^(e=((e+=(s^i)+n[9]-640364487)<<4|e>>>28)+t<<0))+n[12]-421815835)<<11|i>>>21)+e<<0)^e)^(r=((r+=(o^t)+n[15]+530742520)<<16|r>>>16)+i<<0))+n[2]-995338651)<<23|t>>>9)+r<<0,t=((t+=((i=((i+=(t^((e=((e+=(r^(t|~i))+n[0]-198630844)<<6|e>>>26)+t<<0)|~r))+n[7]+1126891415)<<10|i>>>22)+e<<0)^((r=((r+=(e^(i|~t))+n[14]-1416354905)<<15|r>>>17)+i<<0)|~e))+n[5]-57434055)<<21|t>>>11)+r<<0,t=((t+=((i=((i+=(t^((e=((e+=(r^(t|~i))+n[12]+1700485571)<<6|e>>>26)+t<<0)|~r))+n[3]-1894986606)<<10|i>>>22)+e<<0)^((r=((r+=(e^(i|~t))+n[10]-1051523)<<15|r>>>17)+i<<0)|~e))+n[1]-2054922799)<<21|t>>>11)+r<<0,t=((t+=((i=((i+=(t^((e=((e+=(r^(t|~i))+n[8]+1873313359)<<6|e>>>26)+t<<0)|~r))+n[15]-30611744)<<10|i>>>22)+e<<0)^((r=((r+=(e^(i|~t))+n[6]-1560198380)<<15|r>>>17)+i<<0)|~e))+n[13]+1309151649)<<21|t>>>11)+r<<0,t=((t+=((i=((i+=(t^((e=((e+=(r^(t|~i))+n[4]-145523070)<<6|e>>>26)+t<<0)|~r))+n[11]-1120210379)<<10|i>>>22)+e<<0)^((r=((r+=(e^(i|~t))+n[2]+718787259)<<15|r>>>17)+i<<0)|~e))+n[9]-343485551)<<21|t>>>11)+r<<0,this.first?(this.h0=e+1732584193<<0,this.h1=t-271733879<<0,this.h2=r-1732584194<<0,this.h3=i+271733878<<0,this.first=!1):(this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+r<<0,this.h3=this.h3+i<<0)},Md5.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,i=this.h3;return HEX_CHARS[e>>4&15]+HEX_CHARS[15&e]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[15&t]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[15&r]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[i>>4&15]+HEX_CHARS[15&i]+HEX_CHARS[i>>12&15]+HEX_CHARS[i>>8&15]+HEX_CHARS[i>>20&15]+HEX_CHARS[i>>16&15]+HEX_CHARS[i>>28&15]+HEX_CHARS[i>>24&15]},Md5.prototype.toString=Md5.prototype.hex,Md5.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,r=this.h2,i=this.h3;return[255&e,e>>8&255,e>>16&255,e>>24&255,255&t,t>>8&255,t>>16&255,t>>24&255,255&r,r>>8&255,r>>16&255,r>>24&255,255&i,i>>8&255,i>>16&255,i>>24&255]},Md5.prototype.array=Md5.prototype.digest,Md5.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(16),t=new Uint32Array(e);return t[0]=this.h0,t[1]=this.h1,t[2]=this.h2,t[3]=this.h3,e},Md5.prototype.buffer=Md5.prototype.arrayBuffer,Md5.prototype.base64=function(){for(var e,t,r,i="",s=this.array(),o=0;o<15;)e=s[o++],t=s[o++],r=s[o++],i+=BASE64_ENCODE_CHAR[e>>>2]+BASE64_ENCODE_CHAR[63&(e<<4|t>>>4)]+BASE64_ENCODE_CHAR[63&(t<<2|r>>>6)]+BASE64_ENCODE_CHAR[63&r];return e=s[o],i+=BASE64_ENCODE_CHAR[e>>>2]+BASE64_ENCODE_CHAR[e<<4&63]+"=="};var exports=createMethod();COMMON_JS?module.exports=exports:root.md5=exports})()})(md5),function(e){var t=Object.create,r=Object.defineProperty,i=Object.defineProperties,s=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertyNames,a=Object.getOwnPropertySymbols,u=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable,d=Reflect.get,h=(e,t,i)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,m=(e,t)=>{for(var r in t||(t={}))l.call(t,r)&&h(e,r,t[r]);if(a)for(var r of a(t))c.call(t,r)&&h(e,r,t[r]);return e},p=(e,t)=>{for(var i in t)r(e,i,{get:t[i],enumerable:!0})},f=(e,t,i,o)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of n(t))!l.call(e,a)&&a!==i&&r(e,a,{get:()=>t[a],enumerable:!(o=s(t,a))||o.enumerable});return e},g=(e,i,s)=>(s=null!=e?t(u(e)):{},f(!i&&e&&e.__esModule?s:r(s,"default",{value:e,enumerable:!0}),e)),v=(e,t,r)=>new Promise(((i,s)=>{var o=e=>{try{a(r.next(e))}catch(e){s(e)}},n=e=>{try{a(r.throw(e))}catch(e){s(e)}},a=e=>e.done?i(e.value):Promise.resolve(e.value).then(o,n);a((r=r.apply(e,t)).next())})),y={};p(y,{BloudStream:()=>tt,Room:()=>It,getUserMedia:()=>At}),e.exports=(e=>f(r({},"__esModule",{value:!0}),e))(y);var b="reconnected",S="connected",_="close",E="error",$="timeout",I="reconnecting",A="binary",M="notify",R="request",T=dist$4,O="boom-bloud ",C=typeof console!==T.constant.RAW_UNDEFINED?console:T.constant.NULL,w=/bjy/.test((0,T.toString)(T.constant.EMPTY_FUNCTION))?2:3,B=T.constant.WINDOW&&/edge|msie|trident/i.test(T.constant.WINDOW.navigator.userAgent)?T.constant.EMPTY_STRING:"%c",P=C?B?function(e,t,r,i){i?C.log(B+e,r,t,i):C.log(B+e,r,t)}:function(e,t,r){r?C.log(e,t,r):C.log(e,t)}:T.constant.EMPTY_FUNCTION;function L(){if(T.constant.GLOBAL){let e=T.constant.GLOBAL.BJY_LOG_LEVEL;if(e>=0&&e<=5)return e}return w}function U(e){return`background-color:${e};border-radius:12px;color:#fff;font-size:10px;padding:3px 6px;`}var N=dist$4,k=class e{constructor(e={}){this.TRACE=0,this.DEBUG=1,this.INFO=2,this.WARN=3,this.ERROR=4,this.FATAL=5,this.options=N.object.extend({uploadLevel:3},e),this.canUpload=!0}static Log(){return this.instance||(this.instance=new e),this.instance}enableUploadLog(){this.canUpload=!0}disableUploadLog(){this.canUpload=!1}setUploadLevel(e){this.options.uploadLevel=e}fatal(e,t,r=!1){(5>=this.options.uploadLevel||r)&&this.canUpload&&this.options.onUpload&&this.options.onUpload(e,5,t),function(e,t){if(L()<=5)throw new Error(`[${t||O} fatal]: ${e}`)}(e,t)}error(e,t,r=!1){(function(e,t){L()<=4&&P(`${t||O} error`,e,U("#ed4014"))})(e,t),(4>=this.options.uploadLevel||r)&&this.canUpload&&this.options.onUpload&&this.options.onUpload(e,4,t)}warn(e,t,r=!1){(function(e,t){L()<=3&&P(`${t||O} warn`,e,U("#f90"))})(e,t),(3>=this.options.uploadLevel||r)&&this.canUpload&&this.options.onUpload&&this.options.onUpload(e,3,t)}info(e,t,r=!1){(function(e,t){L()<=2&&P(`${t||O} info`,e,U("#2db7f5"))})(e,t),(2>=this.options.uploadLevel||r)&&this.canUpload&&this.options.onUpload&&this.options.onUpload(e,2,t)}call(e,t,r=!1){(function(e,t,r){L()<=2&&P(`${t||O} info`,e,U("#66cdaa"),r)})(e,t),(2>=this.options.uploadLevel||r)&&this.canUpload&&this.options.onUpload&&this.options.onUpload(e,2,t)}debug(e,t,r=!1,i=!1){(function(e,t){L()<=1&&P(`${t||O} debug`,e,U("#999"))})(e,t),!i&&(1>=this.options.uploadLevel||r)&&this.canUpload&&this.options.onUpload&&this.options.onUpload(e,1,t)}trace(e,t,r=!1){(function(e,t){L()<=0&&P(`${t||O} trace`,e,U("#999"))})(e,t),0>=this.options.uploadLevel&&r&&this.canUpload&&this.options.onUpload&&this.options.onUpload(e,0,t)}log(e,t,r,i=!1){switch(t){case 0:this.trace(e,r,i);break;case 1:default:this.debug(e,r,i);break;case 2:this.info(e,r,i);break;case 3:this.warn(e,r,i);break;case 4:this.error(e,r,i);break;case 5:this.fatal(e,r,i)}}},D=dist$4,{extend:x}=D.object,{func:j,string:F}=D.is,W="RpcBuilder",V={maxRetry:0,requestTimeout:5e3,responseTimeout:5e3,duplicatesTimeout:5e3};function H(...e){let t="";for(let r=0;r<e.length;r++)e[r]&&(t+=e[r]);return t}var G=class extends D.Emitter{constructor(e,t,r={},i){super(!1),this.packer=e,this.options=x({},V,r),this.requestID=0,this.notifyId=0,this.reqMap=new Map,this.resMap=new Map,this.reqKeyMap=new Map,this.logger=i||new k,this.onmessageHandler=e=>{this.onmessage(e)},t&&this.handlTransport(t)}handlTransport(e){this.transport&&(j(this.transport.removeListener)?this.transport.removeListener(this.onmessageHandler):j(this.transport.removeEventListener)?this.transport.removeEventListener(this.onmessageHandler):j(this.transport.onmessage)&&(this.transport.onmessage=null)),e&&(j(e.addListener)?e.addListener("onmessage",this.onmessageHandler):j(e.addEventListener)?e.addEventListener("onmessage",this.onmessageHandler):e.onmessage=this.onmessageHandler,this.transport=e)}send(e){j(this.transport.send)?this.transport.send(e):j(this.transport.write)?this.transport.write(e):j(this.transport.postMessage)&&this.transport.postMessage(e)}request(e){return v(this,arguments,(function*(e,t={},r={}){if(!this.transport)throw new Error(`request ${e}, params: ${JSON.stringify(t)} failed, transport has closed or not set`);return new Promise(((i,s)=>{var o,n;if(r.key&&this.reqKeyMap.has(r.key)){let i=this.reqKeyMap.get(r.key);clearTimeout(i.timer),this.logger.warn(`request ${e}, params: ${JSON.stringify(t)} canceled because there is call new request whoes key is same as before`),i.reject(new Error("request canceled because there is call new request which key is same as before")),this.reqMap.delete(H(i.id)),this.reqKeyMap.delete(r.key)}let a=this.requestID++;r.dest&&(t.dest=r.dest),this.options.peerId&&(t.from=this.options.peerId);let u={resolve:i,reject:s,id:a,dest:r.dest,timer:null,retryCount:0,maxRetry:null!=(o=r.maxRetry)?o:this.options.maxRetry,errorRetry:null!=(n=r.errorRetry)&&n,method:e,params:t,message:this.packer.pack({method:e,params:t},a),timestamp:(0,D.getTimestamp)(),key:r.key,timeout:r.timeout,timeoutFn:()=>{if(u.retryCount>=u.maxRetry){if(this.reqMap.delete(H(u.id)),u.key&&this.reqKeyMap.has(u.key)&&this.reqKeyMap.delete(u.key),this.logger.error(`request ${e}, params: ${JSON.stringify(t)} timeout`),this.sessionId!==t.sessionId)return void this.logger.warn(`sessionId is not same, ignore this time out fn: ${this.sessionId}`);s(new Error("request timeout"))}else u.retryCount++,u.timer=setTimeout(u.timeoutFn,r.timeout||this.options.requestTimeout),this.logger.warn(`retry request ${e}, params: ${JSON.stringify(t)}, count: ${u.retryCount}`),this.send(u.message)},needRetry:r.needRetry};u.timer=setTimeout(u.timeoutFn,r.timeout||this.options.requestTimeout*(u.retryCount+1)),this.reqMap.set(H(u.id),u),u.key&&this.reqKeyMap.set(u.key,u),this.send(u.message)}))}))}reply(e,t,r){var i;this.options.peerId&&(t&&(t.from=this.options.peerId),r&&(r.from=this.options.peerId));let s=this.packer.pack({result:t,error:r},e.id),o={id:e.id,message:s,timer:null},n=H(e.id,null==(i=e.params)?void 0:i.from);this.options.responseTimeout&&(o.timer=setTimeout((()=>{this.resMap.delete(n)}),this.options.responseTimeout),this.resMap.set(n,o)),this.send(o.message)}notify(e,t={},r){if(!this.transport)throw new Error(`notify ${e}, params: ${JSON.stringify(t)} failed, transport has closed or not set`);let i=this.notifyId++;r&&(t.dest=r),this.options.peerId&&(t.from=this.options.peerId),this.send(this.packer.pack({method:e,params:t,seq:i}))}onmessage(e){var t;if(this.transport)if((0,D.isDef)(e))if(F(e)){let r;try{r=this.packer.unpack(e)}catch(t){return void this.logger.error(`unpack message error, message: ${e}, error: ${(0,D.getErrorMessage)(t)}`,W)}let i=r.id,s=r.method,o=null!=(t=r.params)?t:{},n=o.dest;if(o.dest,(0,D.isDef)(this.options.peerId)&&this.options.peerId===n)return void this.logger.warn(`ignored the message which send from me, message: ${e}`);if((0,D.isDef)(i))if(s){let t=this.resMap.get(H(i,n));t?(this.logger.warn(`request: ${e} has replyed in ${this.options.responseTimeout}ms, send same again`),this.send(t.message)):this.fire(R,[r])}else{let t=r.error,n=r.result;if((null==t?void 0:t.dest)!==this.options.peerId||(null==n?void 0:n.dest)!==this.options.peerId)return void this.logger.warn(`ignored the message which not sent for me, message: ${e}`);let a=H(i),u=this.reqMap.get(a);if(u){if(clearTimeout(u.timer),t){if(this.logger.error(`[request error] request: ${u.message}, response: ${e}, consume: ${(0,D.getTimestamp)()-u.timestamp}`),u.errorRetry&&u.retryCount<u.maxRetry&&(!u.needRetry||u.needRetry(t)))return u.retryCount++,u.timer=setTimeout(u.timeoutFn,u.timeout||this.options.requestTimeout),this.logger.warn(`retry request ${u.method}, params: ${JSON.stringify(u.params)}, count: ${u.retryCount}`),u.id=this.requestID++,u.message=this.packer.pack({method:s,params:o},u.id),void this.send(u.message);u.reject(t)}else this.logger.debug(`[request success] method: ${u.method}, id: ${u.id}, consume: ${(0,D.getTimestamp)()-u.timestamp}`),u.resolve(n);this.reqMap.delete(a),u.key&&this.reqKeyMap.has(u.key)&&this.reqKeyMap.delete(u.key)}else this.logger.warn(`no request for the response: ${e}`)}else this.fire(M,[s,o,r.seq])}else this.fire(A,[e]);else this.logger.warn("message is not defined",W)}destroy(){this.off(),this.handlTransport(),this.reqMap&&(this.reqMap.forEach((e=>{clearTimeout(e.timer),e.reject("transport closed")})),this.reqMap.clear(),this.reqMap=null),this.reqKeyMap&&(this.reqKeyMap.clear(),this.reqKeyMap=null),this.resMap&&(this.resMap.forEach((e=>{clearTimeout(e.timer)})),this.resMap.clear(),this.resMap=null),this.packer=null,this.transport=null}getPacker(){return this.packer}getTransport(){return this.transport}setTransport(e){this.handlTransport(e)}resetRequest(){this.reqMap&&this.reqMap.forEach((e=>{clearTimeout(e.timer),e.timer=setTimeout(e.timeoutFn,e.timeout||this.options.requestTimeout*(e.retryCount+1)),this.send(e.message)}))}},q=dist$4,z="open",J="close",Y="error",K="send",Q="message",X="timeout",Z="reconnecting",ee=class extends q.Emitter{constructor(e){var t;super(!0),q.object.extend(this,e),this.status=0,this.queue=[],this.isReconnect=!1,e.retryCount&&e.retryCount>0&&(this.retryIndex=0),this.logger=k.Log(),this.logLevel=null!=(t=this.logLevel)?t:this.logger.TRACE,this.connectCount=0}isOpen(){return 1===this.status}isConnecting(){return 6===this.status}getStatus(){return this.status}connect(e,t){let r=this;if(this.server=e,this.proxys=t,this.connectCount=0,1===r.status||6===r.status||4===r.status)return;let i=[e];t&&t.length&&(i=i.concat(t));let s=-1,o=function(){r.nextStartTimer=null,6===r.status?function(e,t){r.connectCount++;let i=r.nativeOptions;r.native===WebSocket&&(i=r.nativeOptions.protocols),r.logger.info(`${r.tag||"Transport"} connecting url: ${e.url}, options:${i}`),q.Logger.info(`${r.tag||"Transport"} ${r.native} connecting url: ${e.url}, options:${i}`);let s,o=(0,q.getTimestamp)(),n=new r.native(e.url,i),a=function(r){s&&clearTimeout(s),n.onopen=n.onerror=null,t(n,e,r)};n.onopen=function(e){var t;r.consume=null!=(t=null==e?void 0:e.consume)?t:(0,q.getTimestamp)()-o,a(1)},n.onerror=function(){a(2)},r.timeout>0&&(s=setTimeout((function(){s=null,n.onerror=null,n.onopen=null,q.is.func(n.close)&&n.close(),a(5)}),r.timeout))}(i[++s],(function(e,o,a){if(6===r.status)if(1===a){if(r.url=o.url,r.socket=e,r.status=1,e.onmessage=function(e){1===r.status&&(r.logger.log(`${r.tag||"Transport"} Received: ${q.is.string(e.data)?e.data:"binary"}`,r.logLevel),r.onReceive&&q.is.string(e.data)&&r.onReceive(e.data),r.onmessage&&r.onmessage(e.data),r.fire(Q,[e.data]))},e.onclose=function(i){if(r.logger.error("bloud socket closed"),q.Logger.error(`bloud socket closed code:${i.code}, reason:${i.reason}`),1===r.status)if(r.connectOnClose&&r.retryCount>0){if(r.status=0,r.onReconnecting&&(r.onReconnecting(),4===r.status||3===r.status))return;r.fire(Z),r.isReconnect=!0,r.logger.warn(`${r.tag||"Transport"} reconnecting`),q.Logger.warn(`${r.tag||"Transport"} reconnecting`),e.clear&&e.clear(),r.connect(o,t)}else r.onClose&&r.onClose(i),r.fire(J,[i])},r.retryCount>0&&(r.retryIndex=0),r.onOpen&&(r.logger.debug(`${r.tag||"Transport"} ${r.isReconnect?"reconnect":"connect"} success`),q.Logger.info(`${r.tag||"Transport"} ${r.isReconnect?"reconnect":"connect"} success`),r.onOpen({server:o,reconnect:r.isReconnect})),r.fire(z,[{server:o,reconnect:r.isReconnect}]),r.queue.length)for(;r.queue.length;){let t=r.queue.shift(),i=q.is.string(t)||q.is.arrayBuffer(t)?t:JSON.stringify(t);e.send(i),r.logger.log(`${r.tag||"Transport"} Sent: ${q.is.arrayBuffer(t)?"binary":i}`,r.logLevel),r.onSend&&r.onSend(i),r.fire(K,[i])}}else if(s===i.length-1){if(r.retryCount>0&&r.retryIndex++<r.retryCount-1)return s=-1,void n();switch(r.status=a){case 2:r.logger.error(`${r.tag||"Transport"} ${r.isReconnect?"reconnect":"connect"} error`),q.Logger.error(`${r.tag||"Transport"} ${r.isReconnect?"reconnect":"connect"} error`),r.onError&&r.onError({server:o}),r.fire(Y,[{server:o}]);break;case 5:r.logger.error(`${r.tag||"Transport"} ${r.isReconnect?"reconnect":"connect"} timeout`),q.Logger.error(`${r.tag||"Transport"} ${r.isReconnect?"reconnect":"connect"} timeout`),r.onTimeout&&r.onTimeout({server:o}),r.fire(X,[{server:o}])}}else n();else if(4===r.status){let t=!1;if(1===a&&r.refreshQueueOnClose&&r.queue.length){for(;r.queue.length;){let t=r.queue.shift(),i=q.is.string(t)||q.is.arrayBuffer(t)?t:JSON.stringify(t);e.send(i),r.logger.log(`${r.tag||"Transport"} Sent: ${q.is.arrayBuffer(t)?"binary":i}`,r.logLevel),r.onSend&&r.onSend(i),r.fire(K,[i])}t=!0}t?setTimeout((()=>{console.log("socket.close()"),e.close(),r.status=3}),1e3):(e.close(),r.status=3)}})):4===r.status&&(r.status=3)},n=function(){r.interval>0?r.nextStartTimer=setTimeout(o,r.interval):o()};r.status=6,o()}send(e){if(1!==this.status&&4!==this.status)return this.queueMax>0&&this.queue.length===this.queueMax&&this.queue.shift(),void this.queue.push(e);let t=this.socket;if(t){let r=q.is.string(e)||q.is.arrayBuffer(e)?e:JSON.stringify(e);t.send(r),this.logger.log(`${this.tag||"Transport"} Sent: ${q.is.arrayBuffer(e)?"binary":r}`,this.logLevel),this.onSend&&this.onSend(r),this.fire(K,[r])}}close(){let e=this.socket;if(this.socket=null,this.status=4,e){let t=!1;if(this.refreshQueueOnClose&&this.queue.length){for(;this.queue.length;)this.send(this.queue.shift());t=!0}e.onmessage=e.onclose=null,t?setTimeout((()=>{console.log("socket.close()"),e.close(),this.status=3}),1e3):(console.log("socket.close()"),e.close(),this.status=3)}this.nextStartTimer&&(clearTimeout(this.nextStartTimer),this.nextStartTimer=null)}reconnect(){6!==this.status&&(console.log("this.close()"),this.close(),this.isReconnect=!0,4===this.status?setTimeout((()=>{this.status=3,this.connect(this.server,this.proxys)}),1e3):this.connect(this.server,this.proxys))}getSocket(){return this.socket}getConsume(){return Math.max(this.consume||0,0)}getConnectCount(){return this.connectCount}},te=ee,re=class{constructor(){}},ie=dist$4,se=class extends re{constructor(){super()}pack(e,t){let r={jsonrpc:"2.0"};if(e.method)r.method=e.method,e.params&&(r.params=e.params),(0,ie.isDef)(t)&&(r.id=t),e.seq&&(r.seq=e.seq);else if((0,ie.isDef)(t)){if(e.error){if(e.result)throw new TypeError("Both result and error are defined");r.error=e.error}else{if(!e.result)throw new TypeError("No result or error is defined");r.result=e.result}r.id=t}return JSON.stringify(r)}unpack(e){let t=JSON.parse(e);if("2.0"!==t.jsonrpc)throw new TypeError(`Invalid JsonRPC version ${t.jsonrpc}: ${e}`);if(!(0,ie.isDef)(t.method)){if(!(0,ie.isDef)(t.id))throw new TypeError(`Invalid message: ${e}`);let r=(0,ie.isDef)(t.error),i=(0,ie.isDef)(t.result);if(i&&r)throw new TypeError(`Both result and error are defined: ${e}`);if(!i&&!r)throw new TypeError(`No result or error is defined: ${e}`)}return t}},oe=dist$4,{extend:ne}=oe.object,ae={heartbeat:15e3,requestTimeout:5e3,maxRetry:8,packer:se,retryInterval:500,connectTimeout:3e3,connectOnClose:!0,requestMaxRetry:0},ue=class extends oe.Emitter{constructor(e,t,r,i){var s,o;super(!0),this.server=e,this.proxys=r,this.options=ne({},ae,t),this.logger=k.Log(),this.heartbeatTimer=new class{constructor(e,t,r){this.task=e,this.timeout=t,this.interval=r}start(){let e=this;e.stop();let t=e.timeout,r=e.interval,i=function(){!1!==e.task()&&e.timer?e.timer=setTimeout(i,e.interval):e.stop()};null==t&&(t=r),e.timer=setTimeout(i,t)}stop(){this.timer&&(clearTimeout(this.timer),this.timer=null)}updateInterval(e){this.interval=e}isStarted(){return!!this.timer}destroy(){this.stop(),this.task=this.timeout=this.interval=null}}((()=>{this.heartbeat()}),this.options.heartbeat,this.options.heartbeat),this.packer=new this.options.packer(this.options.packerOptions),this.transport=new te({native:null!=(s=this.options.transport)?s:WebSocket,onSend:e=>{this.fire("onsend",[e])},onReceive:e=>{this.fire("onreceive",[e])},onOpen:e=>{this.fire(e.reconnect?b:S),this.heartbeatTimer&&this.heartbeatTimer.start()},onClose:()=>{this.fire(_),this.heartbeatTimer&&this.heartbeatTimer.stop()},onError:()=>{this.fire(E),this.heartbeatTimer&&this.heartbeatTimer.stop()},onTimeout:()=>{this.fire($),this.heartbeatTimer&&this.heartbeatTimer.stop()},onReconnecting:()=>{this.fire(I),this.heartbeatTimer&&this.heartbeatTimer.stop()},connectOnClose:this.options.connectOnClose,retryCount:this.options.maxRetry,nativeOptions:null!=(o=this.options.transportOptions)?o:{},tag:this.options.tag,interval:this.options.retryInterval,timeout:this.options.connectTimeout,logLevel:this.options.logLevel}),this.rpc=new G(this.packer,this.transport,{requestTimeout:this.options.requestTimeout,responseTimeout:this.options.requestTimeout,peerId:this.options.peerId,maxRetry:this.options.requestMaxRetry},this.logger),this.rpc.on(A,(e=>{this.fire(A,[e])})),this.rpc.on(M,((e,t,r)=>{this.fire(M,[e,t,r])})),this.rpc.on(R,(e=>{this.fire(R,[e])})),(0,oe.nextTick)((()=>{this.transport&&this.transport.connect(this.server,this.proxys)}))}setRPCSessionId(e){this.rpc.sessionId=e}request(e){return v(this,arguments,(function*(e,t={},r){return this.rpc.request(e,t,r)}))}reply(e,t,r){return this.rpc.reply(e,t,r)}notify(e,t={}){return this.rpc.notify(e,t)}sendBinary(e){let t=this.transport.getSocket();t&&t.send(e)}getConsume(){return this.transport?this.transport.getConsume():0}getTransportConnectCount(){return this.transport?this.transport.getConnectCount():0}getTransportStatus(){return this.transport?this.transport.getStatus():0}destroy(){this.off(),this.rpc&&this.rpc.destroy(),this.transport&&this.transport.close(),this.transport=null,this.rpc=null,this.packer=null,this.heartbeatTimer&&this.heartbeatTimer.destroy(),this.heartbeatTimer=null}resetRequest(){this.rpc&&this.rpc.resetRequest()}},le=dist$4,ce=class e extends ue{constructor(e,t,r,i){super({url:e},t,void 0,i),this.notified=-1,this.seq=0,this.sessionId=null,this.syncRoomLock=!1,this.retryQueue=[],this.proxy=r}resetTimeout(){this.resetTimer&&clearTimeout(this.resetTimer),this.resetTimer=setTimeout((()=>{this.resetTimer=void 0,this.fire($),this.destroy()}),4*this.options.heartbeat)}syncNotify(){return v(this,null,(function*(){}))}request(t,r,i){return v(this,null,(function*(){let s=this.seq++;return this.syncRoomLock&&"syncRoom"!==t?(this.logger.warn(`session closed, waiting for sync room, method: ${t}, params: ${JSON.stringify(r)}`),new Promise(((e,i)=>{this.retryQueue.push({method:t,params:r,resolve:e,reject:i,id:s})}))):(!this.syncRoomLock&&"syncRoom"===t&&(this.syncRoomLock=!0),r&&"syncRoom"!==t&&!r.sessinId&&(r.sessionId=this.sessionId),r&&"syncRoom"===t&&(r.sid=this.sessionId),((e,t,r)=>d(u(e),r,t))(e.prototype,this,"request").call(this,t,r,i).then((e=>(this.resetTimeout(),(!this.sessionId&&e.sessionId||this.sessionId!==e.sessionId)&&e.sessionId&&(this.sessionId=e.sessionId,this.setRPCSessionId(this.sessionId)),"syncRoom"===t&&(this.syncRoomLock=!1,this.retryQueue.length&&(this.retryQueue=this.retryQueue.filter((e=>"recover"!==e.method)),this.retryQueue.sort(((e,t)=>e.id-t.id)),le.array.each(this.retryQueue,(e=>{e.params.sessionId=this.sessionId,this.logger.info(`retry the retryQueue request, ${e.method}, params: ${JSON.stringify(e.params)}`),this.request(e.method,e.params).then((t=>{e.resolve(t)})).catch((t=>{e.reject(t)}))})),this.retryQueue=[])),e))).catch((e=>{var i;if("request timeout"!==(0,le.getErrorMessage)(e)&&this.resetTimeout(),99===(null==e?void 0:e.code))return this.sessionId&&this.sessionId!==r.sessionId?(this.logger.warn(`the request session has closed but the seesion is update after sync room, retry request again, ${t}, params: ${JSON.stringify(r)}`),r.sessionId=this.sessionId,this.request(t,r)):(this.syncRoomLock||(this.sessionId=null,this.syncRoomLock=!0,this.fire(le.BloudEvents.SESSION_CLOED)),this.logger.warn(`the session has closed, push the request into retry queue, ${t}, params: ${JSON.stringify(r)}`),le.Logger.warn("session closed, close socket to retry reconnect ws, and sync room"),null==(i=this.transport.socket)||i.close(),new Promise(((e,i)=>{this.retryQueue.push({method:t,params:r,resolve:e,reject:i,id:s})})));throw e})))}))}heartbeat(){this.request("ping",{sessionId:this.sessionId}).then((e=>{this.resetTimeout()})).catch((e=>{this.logger.error(`channel heartbeat error: ${JSON.stringify(e)}`)}))}destroy(){this.seq=null,this.notified=null,this.sessionId=null,this.retryQueue=null,this.syncRoomLock=null,this.resetTimer&&(clearTimeout(this.resetTimer),this.resetTimer=null),super.destroy()}getProxy(){return this.proxy}},de=dist$4,he=dist$4,me=g(dist$3),pe=class extends re{constructor(e){super(),this.jsonPacker=new se,this.sm4KeyPair=e.sm4KeyPair,this.emitter=e.emitter,this.encrypt=new me.default}pack(e,t){return this.encrypt.encryptSm4(this.jsonPacker.pack(e,t),this.sm4KeyPair.enKey,this.sm4KeyPair.iv)}unpack(e){let t=this.encrypt.decryptSm4(e,this.sm4KeyPair.deKey,this.sm4KeyPair.iv);if(!t){if(he.Logger.error("sm4 decrypt error"),!this.emitter)throw new Error("sm4 decrypt error");this.emitter.fire(E)}try{return this.jsonPacker.unpack(t)}catch(e){if(he.Logger.error(`parse json after sm4 decrypt failed, text: ${t}`),!this.emitter)throw e;this.emitter.fire(E)}return{}}},fe={enableRace:!0,forceWS:!1,forceDC:!1,forceWT:!1},ge=class extends de.Emitter{constructor(e,t,r={},i){super(!1),this.options=de.object.extend({},fe,t),this.closed=!1,this.icefull=!1,this.isConnecting=!1,this.connectCount=0,this.isLeaving=!1,this.rpc=r,this.proxies=e,this.logger=i||new k}getUrl(e){var t,r,i,s;return e.activeUrl=e.url||e.dcurl||e.wturl,this.options.token?(e.activeUrl+=`?token=${this.options.token}`,null!=(t=this.options.sm4KeyPair)&&t.imei&&(e.activeUrl+=`&imei=${null==(r=this.options.sm4KeyPair)?void 0:r.imei}`)):null!=(i=this.options.sm4KeyPair)&&i.imei&&(e.activeUrl+=`?imei=${null==(s=this.options.sm4KeyPair)?void 0:s.imei}`),e.activeUrl}raceConnect(){return v(this,null,(function*(){let e=this.proxies;if(this.options.forceWS){let t=e.filter((e=>!!e.url));t.length&&(e=t)}this.connectingTimers={};let t=`.connecting${Math.random()}`;return new Promise(((r,i)=>{let s=!1;this.connectCount=0;let o=(e,o)=>{s?e.destroy():this.closed?(de.object.each(this.connectingTimers,(e=>{clearTimeout(e.timer),e.channel&&e.channel.destroy()})),this.connectingTimers={},this.logger.warn("signal open after call close function, reject"),i("signal has already closed")):(s=!0,de.object.each(this.connectingTimers,((e,t)=>{clearTimeout(e.timer),e.channel&&t!=o&&e.channel.destroy()})),this.connectingTimers={},e.off(t),this.connectCount=e.getTransportConnectCount(),r(e))},n=0,a=()=>{++n===e.length&&(de.object.each(this.connectingTimers,(e=>{e.channel&&e.channel.destroy()})),this.connectingTimers={},this.logger.error("connect all proxies failed"),i("connect all proxies failed"))},u=(e,r)=>{let i=new ce(e,{maxRetry:5,transport:void 0,transportOptions:{},tag:"Client",logLevel:1,packer:this.options.enableSM4?pe:se,packerOptions:{sm4KeyPair:this.options.sm4KeyPair,logger:this.logger,emitter:this}},r,this.logger);i.one(S+t,(()=>{r.consume=i.getConsume(),this.connectCount=i.getTransportConnectCount(),o(i,e)})).one(b+t,(()=>{r.consume=i.getConsume(),this.connectCount=i.getTransportConnectCount(),o(i,e)})).one(E+t,(()=>{this.connectCount=i.getTransportConnectCount(),a()})).one($+t,(()=>{this.connectCount=i.getTransportConnectCount(),a()})),this.connectingTimers[e].channel=i};de.array.each(e,(e=>{let t=e.delay?(0,de.toNumber)(e.delay):0,r=this.getUrl(e);r&&(this.connectingTimers[r]={timer:setTimeout((()=>{u(r,e)}),t)})}))}))}))}queueConnect(){return v(this,null,(function*(){let e=this.proxies;if(this.options.forceWS){let t=e.filter((e=>!!e.url));t.length&&(e=t)}let t=`.connecting${Math.random()}`;return new Promise(((r,i)=>{let s=0;this.connectCount=0;let o=()=>{this.closed&&i("signal has closed");let n=e[s],a=this.getUrl(n);a||i("url can not be empty!");let u=this.connectingChannel=new ce(a,{maxRetry:3,transport:void 0,transportOptions:{},tag:"Client",logLevel:1,packer:this.options.enableSM4?pe:se,packerOptions:{sm4KeyPair:this.options.sm4KeyPair,logger:this.logger,emitter:this}},n,this.logger);u.one(S+t,(()=>{u.off(t),this.connectingChannel=void 0,n.consume=u.getConsume(),this.connectCount+=u.getTransportConnectCount(),r(u)})).one(b+t,(()=>{u.off(t),this.connectingChannel=void 0,n.consume=u.getConsume(),this.connectCount+=u.getTransportConnectCount(),r(u)})).one(E+t,(()=>{this.connectCount+=u.getTransportConnectCount(),u.destroy(),this.connectingChannel=void 0,this.logger.error(`queue connect proxy: ${s} ${a} error`),this.fire(de.BloudEvents.STATE_NOTIFY,[{level:this.logger.ERROR,msg:`queue connect proxy: ${s} ${a} error`}]),s++,s>=e.length?(this.logger.error("connect all proxies failed"),s=0,i("connect all proxies failed")):setTimeout((()=>{o()}),1e3)})).one($+t,(()=>{this.connectCount+=u.getTransportConnectCount(),u.destroy(),this.connectingChannel=void 0,this.logger.error(`queue connect proxy: ${s} ${a} timeout`),this.fire(de.BloudEvents.STATE_NOTIFY,[{level:this.logger.ERROR,msg:`queue connect proxy: ${s} ${a} timeout`}]),s++,s>=e.length?(this.logger.error("connect all proxies failed"),s=0,i("connect all proxies failed")):setTimeout((()=>{o()}),1e3)}))};o()}))}))}connect(){return v(this,null,(function*(){if(!this.proxies.length)return new Error("not has any proxy to connect");this.isConnecting=!0,this.options.enableRace?this.channel=yield this.raceConnect():this.channel=yield this.queueConnect(),this.channel.on(E,(()=>{this.logger.error(`proxy connect error, proxy: ${JSON.stringify(this.getProxy())}`),this.fire(E)})).on(_,(()=>{this.logger.error(`proxy connect close, proxy: ${JSON.stringify(this.getProxy())}`),this.fire(_)})).on($,(()=>{this.logger.error(`proxy connect timeout, proxy: ${JSON.stringify(this.getProxy())}`),this.fire($)})).on(S,(()=>{this.fire(S)})).on(I,(()=>{this.fire(I)})).on(b,(()=>{if(this.isLeaving)return;this.fire(b),this.channel.syncNotify();let e=this.channel.getProxy();e&&(e.consume=this.channel.getConsume())})).on(M,((e,t,r)=>{this.channel.notified=r,this.channel.resetTimeout(),de.BloudEventMap[e]?this.fire(de.BloudEventMap[e],[t]):this.fire(M,[{method:e,params:t}])})).on(R,(e=>v(this,null,(function*(){if(e.method&&this.rpc[e.method]){this.channel.resetTimeout();let{error:t,result:r}=yield this.rpc[e.method](e);this.channel.reply(e,r,t)}})))).on(de.BloudEvents.SESSION_CLOED,(()=>{this.fire(de.BloudEvents.SESSION_CLOED)})),this.isConnecting=!1,this.logger.info(`connect proxy success, proxy: ${JSON.stringify(this.channel.getProxy())}`)}))}request(e,t){return v(this,null,(function*(){return this.channel.request(e,t)}))}join(e){return v(this,null,(function*(){return this.channel.request("joinRoom",e).then((e=>(this.channel.resetTimeout(),this.isLeaving=!1,e)))}))}leave(e){return v(this,null,(function*(){return this.isLeaving=!0,this.channel.request("leaveRoom",e,{timeout:3e3}).then((e=>(this.isLeaving=!1,e)))}))}syncRoom(e,t,r){return v(this,null,(function*(){return this.channel.request("syncRoom",{roomId:e,userId:t,info:r})}))}updateCustomStats(e,t,r,i){return v(this,null,(function*(){return this.channel.request("updateCustomStats",{roomId:e,userId:t,options:r.customStats,replace:i})}))}updateStream(e,t,r){return v(this,null,(function*(){return this.channel.request("updateStream",m({userId:e,streamId:t},r))}))}releaseRoom(e,t){return v(this,null,(function*(){return this.channel.request("releaseRoom",{roomId:e,userId:t})}))}updateRoom(e,t,r){return v(this,null,(function*(){return this.channel.request("updateRoom",{roomId:e,userId:t,options:r})}))}updateUser(e,t,r){return v(this,null,(function*(){return this.channel.request("updateUser",{roomId:e,userId:t,info:r})}))}evictUser(e,t,r,i){return v(this,null,(function*(){return this.channel.request("evictUser",{roomId:e,userId:t,evictId:r,withoutBlack:i})}))}changeMaster(e,t,r,i){return v(this,null,(function*(){return this.channel.request("changeMaster",{roomId:e,userId:t,master:r,isKeep:i})}))}leaveRoom(e,t,r){return v(this,null,(function*(){return this.channel.request("leaveRoom",{roomId:e,userId:t,desc:r})}))}getUsers(e,t,r,i,s,o){return v(this,null,(function*(){return this.channel.request("getUsers",{roomId:e,userId:t,pagesize:r,index:i,permission:s,waitRoom:o})}))}getUsersList(e,t,r,i){return v(this,null,(function*(){return this.channel.request("getUserList",{pagesize:t,index:e,permission:r,waitRoom:i})}))}queryUsers(e){return v(this,null,(function*(){return this.channel.request("queryUsers",{userIds:e})}))}publishStream(e,t,r,i){return v(this,null,(function*(){return this.channel.request("publishStream",{roomId:e,userId:t,streamId:r,options:i})}))}controlStream(e,t,r,i){return v(this,null,(function*(){return this.channel.request("controlStream",{roomId:e,userId:t,streamId:r,options:i})}))}resetStream(e,t,r,i){return v(this,null,(function*(){return this.channel.request("resetStream",{roomId:e,userId:t,streamId:r,options:i})}))}unpublishStream(e,t,r){return v(this,null,(function*(){return this.channel.request("unpublishStream",{roomId:e,userId:t,streamId:r})}))}getMessages(e,t,r){return v(this,null,(function*(){return this.channel.request("getMessages",{roomId:e,userId:t})}))}sendMessage(e,t,r,i){return v(this,null,(function*(){return this.channel.request("sendMessage",{roomId:e,userId:t,to:r,msg:i})}))}customMessage(e,t,r,i,s=!1){return v(this,null,(function*(){return this.channel.request("customMessage",{roomId:e,userId:t,to:r,msg:i,analysis:s})}))}startRecord(e,t,r){return v(this,null,(function*(){return this.channel.request("startRecord",{roomId:e,streamId:t,options:r})}))}stopRecord(e,t){return v(this,null,(function*(){return this.channel.request("stopRecord",{roomId:e,streamId:t})}))}searchUsers(e,t,r){return v(this,null,(function*(){return this.channel.request("searchUsers",{nickname:e,pageSize:t,waitRoom:r})}))}syncUser(e){return v(this,null,(function*(){return this.channel.request("syncUser",{pageSize:e})}))}moveUserRoom(e,t,r){return v(this,null,(function*(){return this.channel.request("moveUserRoom",{target:e,toWait:t,autoJoin:r})}))}close(){this.connectingChannel&&this.connectingChannel.destroy(),de.object.keys(this.connectingTimers).length&&(de.object.each(this.connectingTimers,(e=>{clearTimeout(e.timer),e.channel&&e.channel.destroy()})),this.connectingTimers={}),this.channel&&this.channel.destroy(),this.closed=!0,this.off()}getSessionId(){var e;return null==(e=this.channel)?void 0:e.sessionId}getProxy(){var e;return null==(e=this.channel)?void 0:e.getProxy()}getConnectCount(){return this.connectCount}getConnectedProxyConsume(){var e;return null==(e=this.channel)?void 0:e.getConsume()}reconnect(){this.channel.transport.reconnect()}},ve=dist$4,ye=()=>{let e=be(),t="none";return null!==e.match("fake")?t="fake":null!==e.match("ios")?t="ios":null!==e.match("android")?t="android":null!==e.match("Firefox")?t="mozilla":null!==e.match("Chrome")?(t="chrome-stable",null!==e.match("Electron")&&(t="electron")):(null!==e.match("Safari")||null!==e.match("AppleWebKit"))&&(t="safari"),t},be=()=>window.navigator.userAgent,Se=class e{constructor(t){this.permission=t||e.default}getRead(){return this.permission.indexOf("R")>=0}getWrite(){return this.permission.indexOf("W")>=0}getPublish(){return this.permission.indexOf("P")>=0}getSubscribe(){return this.permission.indexOf("S")>=0}getManage(){return this.permission.indexOf("M")>=0}getAudio(){return this.permission.indexOf("A")>=0}getVideo(){return this.permission.indexOf("V")>=0}getOwn(){return this.permission.indexOf("O")>=0}setManage(e){this._update("M",e)}setSubscribe(e){this._update("S",e)}setPublish(e){this._update("P",e)}setWrite(e){this._update("W",e)}setRead(e){this._update("R",e)}setAudio(e){this._update("A",e)}setVideo(e){this._update("V",e)}setOwn(e){this._update("O",e)}set(e){this.permission=e}get(){return this.permission}_update(e,t){t?this.permission.indexOf(e)<0&&(this.permission+=e):this.permission=this.permission.replace(e,"")}};Se.default="RWPSAV";var _e=Se,Ee=require$$2,$e=class{constructor(e,t,r){this.streams=new Map,this.local=e,this.userId=t,this.params=r;let i=r.permission;!i&&r.info&&(i=r.info.permission),i||(i=_e.default),this.permission=new _e(i)}setID(e){this.userId=e}getID(){return this.userId}getPermission(){return this.permission}getUserInfo(){var e,t;return null!=(t=null!=(e=this.params.userinfo)?e:this.params.info.userinfo)?t:{}}update(e){e.permission&&this.permission.set(e.permission),this.params=(0,Ee.defaults)(e,this.params)}getNickName(){var e,t;return null!=(t=null!=(e=this.params.nickname)?e:this.params.info.nickname)?t:""}getStreams(){return this.streams}getStream(e){return this.streams.get(e)}addStream(e){this.streams.set(e.getID(),e)}removeStream(e){this.streams.delete(e)}},Ie=g(require$$3),Ae={userAgent:()=>{let t;try{t=require("react-native").Platform}catch(e){}let r="none";return e.exports?t?"ios"===t.OS?r="ios":"android"===t.OS&&(r="android"):r="fake":r=window.navigator.userAgent,r},isMobile:()=>{let t;try{t=require("react-native").Platform}catch(e){}let r=!1;return e.exports&&t&&("ios"===t.OS||"android"===t.OS)&&(r=!0),r},isElectron:()=>!1},Me=Ae,Re=g(require$$3),Te={};p(Te,{CHROME:()=>Oe,ELECTRON:()=>Ue,FIREFOX:()=>we,INTERNET_EXPLORER:()=>Be,NWJS:()=>Le,OPERA:()=>Ce,REACT_NATIVE:()=>Ne,SAFARI:()=>Pe,UNKNOWN:()=>ke,WECHAT:()=>De});var Oe="chrome",Ce="opera",we="firefox",Be="iexplorer",Pe="safari",Le="nwjs",Ue="electron",Ne="react-native",ke="unknown",De="wechat",xe={Chrome:Oe,Chromium:Oe,Opera:Ce,Firefox:we,"Internet Explorer":Be,Safari:Pe,WeChat:De},je=navigator.userAgent;function Fe(){let e=je;if(e.match(/Electron/)){let t=e.match(/Electron\/([\d.]+)/)[1];return{name:Ue,version:t}}}function We(){let e=je;if(e.match(/JitsiMeetNW/)){let t=e.match(/JitsiMeetNW\/([\d.]+)/)[1];return{name:Le,version:t}}}function Ve(){let e=je;if(e.match(/MicroMessenger/)){let t=e.match(/MicroMessenger\/([\d.]+)/)[1];return{name:De,version:t}}}function He(){let e,t=je.match(/\b(react[ \t_-]*native)(?:\/(\S+))?/i);if(t||"ReactNative"===navigator.product)return t&&t.length>2&&(e=t[2]),e||(e="unknown"),{name:Ne,version:e}}function Ge(e){let t,r=[He,Fe,We,Ve];for(let e=0;e<r.length;e++)if(t=r[e](),t)return t;let i=e.getBrowserName();return i in xe?{name:xe[i],version:e.getBrowserVersion()}:(t=function(){let e=je,t={name:ke,version:void 0};if(e.match(/Chrome/)&&!e.match(/Edge/))if(e.match(/Edg/)){let r=e.match(/Edg\/([\d.]+)/)[1];Number.parseInt(r,10)>72&&(t.name=Oe,t.version=r)}else t.name=Oe,t.version=e.match(/Chrome\/([\d.]+)/)[1];return t}(),t||{name:ke,version:void 0})}navigator.userAgent||(je=navigator.product);var qe=class{constructor(e){let t,r;if(this.browsers=Te,this._bowser=Re.default.getParser(je),void 0===e){let e=Ge(this._bowser);t=e.name,r=e.version}else e.name in xe?(t=xe[e.name],r=e.version):(t=ke,r=void 0);this._name=t,this._version=r}getName(){return this._name}isChrome(){return this._name===Oe}isOpera(){return this._name===Ce}isFirefox(){return this._name===we}isIExplorer(){return this._name===Be}isSafari(){return this._name===Pe}isNWJS(){return this._name===Le}isElectron(){return this._name===Ue}isReactNative(){return this._name===Ne}getVersion(){return this._version}_checkCondition(e){if(this._version)return this._bowser.satisfies(e)}isVersionGreaterThan(e){return this._checkCondition({[this._name]:`>${e}`})}isVersionLessThan(e){return this._checkCondition({[this._name]:`<${e}`})}isVersionEqualTo(e){return this._checkCondition({[this._name]:`~${e}`})}},ze=k.Log(),Je=()=>{let e="none";return null!==Me.userAgent().match("fake")?e="fake":null!==Me.userAgent().match("ios")?e="ios":null!==Me.userAgent().match("android")?e="android":null!==Me.userAgent().match("Firefox")?e="mozilla":null!==Me.userAgent().match("Chrome")?(e="chrome-stable",null!==Me.userAgent().match("Electron")&&(e="electron")):(null!==Me.userAgent().match("Safari")||null!==Me.userAgent().match("AppleWebKit"))&&(e="safari"),e};var Ye,Ke={GetUserMedia:e=>new Promise(((t,r)=>{((e,t=(()=>{}),r=(()=>{}))=>{let i,s=navigator.mediaDevices,o=(e,t,r)=>{s.getUserMedia(e).then(t).catch(r)};e.screen?(()=>{switch(ze.debug("Screen access requested"),Je()){case"electron":ze.debug("Screen sharing in Electron"),i={},i.video=e.video||{},i.video.mandatory=e.video.mandatory||{},i.video.mandatory.chromeMediaSource="desktop",i.video.mandatory.chromeMediaSourceId=e.desktopStreamId,o(i,t,r);break;case"mozilla":ze.debug("Screen sharing in Firefox"),i={},void 0!==e.video?(i.video=e.video,i.video.mediaSource||(i.video.mediaSource="window")):i={audio:e.audio,video:{mediaSource:"window"}},o(i,t,r);break;case"chrome-stable":if(ze.debug("Screen sharing in Chrome"),i={},e.desktopStreamId)i.video=e.video||{mandatory:{}},i.video.mandatory=i.video.mandatory||{},i.video.mandatory.chromeMediaSource="desktop",i.video.mandatory.chromeMediaSourceId=e.desktopStreamId,o(i,t,r);else{let s="jbglfdfehfdcpnbhfnciaiokkfocjcjk";e.extensionId&&(ze.debug(`extensionId supplied, using ${e.extensionId}`),s=e.extensionId),ze.debug("Screen access on chrome stable, looking for extension");try{chrome.runtime.sendMessage(s,{getStream:!0},(s=>{if(void 0===s)return ze.error("Access to screen denied"),void r({code:"Access to screen denied"});let n=s.streamId;void 0!==e.video.mandatory?(i.video=e.video||{mandatory:{}},i.video.mandatory.chromeMediaSource="desktop",i.video.mandatory.chromeMediaSourceId=n):i={video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:n}}},o(i,t,r)}))}catch(e){ze.debug("Screensharing plugin is not accessible "),r({code:"no_plugin_present"})}}break;default:ze.error("This browser does not support ScreenSharing")}})():(ze.debug("Calling getUserMedia with config",e),o(e,t,r))})(e,(r=>{(new qe).isReactNative()&&t(r),e.fps&&r.clone?t(function(e,t){if(!t)return e;let r=e.getVideoTracks()[0];if(!r||"function"!=typeof r.getCapabilities)return e;let i=r.getConstraints(),s=e.clone();return r=s.getVideoTracks()[0],r?(e.getTracks().forEach((e=>e.stop())),i.width,i.height,i.frameRate=t||i.frameRate,r.applyConstraints(i),s):(s.getTracks().forEach((e=>e.stop())),e)}(r,e.fps)):t(r)}),(e=>{r(e)}))})),getBrowser:Je,getUserAgent:()=>window.navigator.userAgent},Qe=Ke,Xe={ERR_NOT_INSTALLED:1,ERR_NOT_FOUND:10,ERR_TIMEOUT:11,ERR_STATS:12,ERR_NO_SERVICE:13,ERR_AUTH:14,ERR_INVALID_REQUEST:15,ERR_METHOD:16,ERR_NOT_STARTUP:17,ERR_CUSTOM_AUTH_FAILED:18,ERR_USER_LIMIT:19,ERR_QDTLS:20,ERR_OVEVLOAD:21,ERR_EVICTED:22,ERR_PERMISSION:23,ERR_SENSITIVE_WORD:24,ERR_NOT_AT_ROOM:25,ERR_MEDIA_PIPELINE:26,ERR_NO_STREAM:27,ERR_LOCKED:28,ERR_UNKNOWN:33},Ze=class{static create(){if(Ye)return Ye;let e;e=Me.isMobile()?Me.userAgent():navigator.userAgent;let t,r=e,i=Ie.default.getParser(r),s=i.getEngine();try{t=s.name.toLowerCase()}catch(e){}return(new qe).isElectron()?(console.log("===========Client============="),Ye=new class{constructor(){this._stream=null}start(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this._toConstraints(t),i="boolean"==typeof t.audio&&t.audio;"boolean"==typeof t.isRecord&&t.isRecord,"boolean"==typeof t.isLocalProjection&&t.isLocalProjection;try{e=window.require("electron")}catch(t){e=window.parent.require("electron")}let s,o={types:["window","screen"]};if(e)s=e.desktopCapturer?e.desktopCapturer.getSources(o):e.ipcRenderer.invoke("desktopCapturer:getSources",o);else{let e;e=window.electronAPI?window.electronAPI.desktopCapturerGetSources(o):window.parent.electronAPI.desktopCapturerGetSources(o),s=e}console.log("record:constraints:",JSON.stringify(r));let n=e=>{e.id.startsWith("window");let t=!!i&&{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:e.id,echoCancellation:!0}};return navigator.mediaDevices.getUserMedia({audio:t,video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:e.id,minWidth:r.video.mandatory.minWidth,maxWidth:r.video.mandatory.maxWidth,minHeight:r.video.mandatory.minHeight,maxHeight:r.video.mandatory.maxHeight,minFrameRate:r.video.mandatory.minFrameRate,maxFrameRate:r.video.mandatory.maxFrameRate}}}).then((t=>(console.log("record:ElectronScreenShare:",e.id),this._stream=t,this._stream)))};return s.then((e=>v(this,null,(function*(){console.log("record:---share name selected:"+t.source_name,t.chromeMediaSourceId);let r=e.find((e=>e.id===t.chromeMediaSourceId));if(r)return n(r);for(let r of e)if(t.source_name===r.name){try{return n(r)}catch(e){console.log("ElectronScreenShare.start.error:",e)}break}if(t.chromeMediaSourceId){let e={id:t.chromeMediaSourceId};return n(e)}return null})))).catch((e=>(console.error("ElectronScreenShare:error",e),Promise.reject(e))))}stop(){this._stream instanceof MediaStream&&(this._stream.getTracks().forEach((e=>e.stop())),this._stream=null)}isScreenShareAvailable(){return!0}needExtension(){return!1}_toConstraints(e){let t={video:{frameRate:e.fps,mandatory:{maxWidth:e.width,minWidth:e.width,maxHeight:e.height,minHeight:e.height}},audio:!1};return k.Log().log("====fps:",e.fps),isFinite(e.width)&&(t.video.mandatory.maxWidth=e.width,t.video.mandatory.minWidth=e.width),isFinite(e.height)&&(t.video.mandatory.minHeight=e.height,t.video.mandatory.maxHeight=e.height),isFinite(e.fps)&&(t.video.mandatory.minFrameRate=e.fps,t.video.mandatory.maxFrameRate=e.fps),void 0===e.width&&(t.video.mandatory.maxWidth=1920,t.video.mandatory.minWidth=1920),void 0===e.height&&(t.video.mandatory.maxHeight=1080,t.video.mandatory.minHeight=1080),void 0===e.fps&&(t.video.mandatory.minFrameRate=15,t.video.mandatory.maxFrameRate=15),t}},Ye):(console.log("===========Browser============="),i.satisfies({chrome:">=72",chromium:">=72"})?Ye=new class{constructor(){this._stream=null}start(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this._toConstraints(e);return navigator.mediaDevices.getDisplayMedia(t).then((e=>(this._stream=e,Promise.resolve(this._stream))))}stop(){this._stream instanceof MediaStream&&(this._stream.getTracks().forEach((e=>e.stop())),this._stream=null)}isScreenShareAvailable(){return!0}needExtension(){return!1}_toConstraints(e){return{video:{frameRate:e.fps},audio:e.audio||!1}}}:i.satisfies({chrome:">=55",chromium:">=55"})&&(Ye=new class{constructor(){this._stream=null,this.avaliable=!0}check(){return new Promise(((e,t)=>{chrome.runtime.sendMessage({check:!0},(r=>{""!=r.id&&null!=r.id?e(r.id):t("not plugin")}))}))}detect(e){return new Promise(((t,r)=>{var i=document.createElement("img");i.src="chrome-extension://"+e+"/icon.png",i.onload=function(){t()},i.onerror=function(){r({code:Xe.ERR_NOT_INSTALLED,error:"not-installed"})}}))}start(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this,r=e.extensionId||"jbglfdfehfdcpnbhfnciaiokkfocjcjk";return this.detect(r).then((()=>new Promise(((i,s)=>{chrome.runtime.sendMessage(r,{getStream:!0},(r=>{if(void 0===r)return k.Log().error("Access to screen denied"),void error({code:"Access to screen denied"});let o=t._toConstraints(e,r.streamId);Qe.GetUserMedia(o).then((e=>{t._stream=e,i(t._stream)})).catch((e=>{s(e)}))}))})))).catch((e=>{k.Log().warn("onerror plugin"),reject(e)}))}stop(){this._stream instanceof MediaStream&&(this._stream.getTracks().forEach((e=>e.stop())),this._stream=null)}isScreenShareAvailable(){return this.avaliable}needExtension(){return!this.avaliable}_toConstraints(e,t){let r={video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t},optional:[{googTemporalLayeredScreencast:!0}]},audio:!1};return isFinite(e.width)&&(r.video.mandatory.maxWidth=e.width,r.video.mandatory.minWidth=e.width),isFinite(e.height)&&(r.video.mandatory.maxHeight=e.height,r.video.mandatory.minHeight=e.height),isFinite(e.frameRate)&&(r.video.mandatory.maxFrameRate=e.frameRate,r.video.mandatory.minFrameRate=e.frameRate),r}}),Ye)}},et=Ze.create();k.Log();var tt=class{constructor(e,t,r,i,s){this.published=!1,this.audio=s.audio,this.video=s.video,this.audio_enable=s.audio_enable,this.video_enable=s.video_enable,this.screen=s.screen,this.client=e,this.room=t,this.participant=r,this.local=i,this.options=s,this.id=s.id,this.customInfo=s.customInfo,this.roomId=t.getID(),this.userId=r.getID()}audioEnabled(){return this.audio_enable}videoEnabled(){return this.video_enable}setAudioEnabled(e){return this.client.controlStream(this.roomId,this.userId,this.id,{audio_enable:e}).then((()=>{this.audio_enable=e}))}setVideoEnabled(e){return this.client.controlStream(this.roomId,this.userId,this.id,{video_enable:e}).then((()=>{this.video_enable=e}))}isLocal(){return this.local}getID(){return this.id}getParticipant(){return this.participant}publish(e){return v(this,null,(function*(){var t,r;this.audio_enable=null!=(t=e.audio_enable)?t:this.audio_enable,this.video_enable=null!=(r=e.video_enable)?r:this.video_enable,yield this.client.publishStream(this.roomId,this.userId,this.id,{audio_enable:this.audio_enable,video_enable:this.video_enable,video:this.video,audio:this.audio}),this.participant.addStream(this),this.published=!0}))}unpublish(){return v(this,null,(function*(){yield this.client.unpublishStream(this.roomId,this.userId,this.id),this.participant.removeStream(this.getID()),this.published=!1}))}static sharing(){return et}},rt=g(circularJson_node),it=g(md5.exports),st=require$$6__default.default,ot=127,nt=1e-10,at=`.speakerDetector${Math.random()}`;function ut(e,t,r){let i=t.length,s=Math.floor(e.length/i),o=!1;for(let n=0,a=0;n<i;n++){let i=0;for(let t=a+s;a<t;a++)e[a]>r&&i++;t[n]!=i&&(t[n]=i,o=!0)}return o}function lt(e,t,r,i){let s=Math.log(function(e,t){let r=e-t;t<r&&(t=r);let i=1;for(let r=e,s=1;r>t;r--,s++)i=Math.floor(i*r/s);return i}(t,e))+e*Math.log(r)+(t-e)*Math.log(1-r)-Math.log(i)+i*e;return s<nt&&(s=nt),s}var ct=class extends st.EventEmitter{constructor(){super(),this.decisionMaker=void 0,this.dominant=void 0,this.lastDecisionTime=0,this.lastLevelChangedTime=0,this.lastLevelIdleTime=0,this.relativeSpeechActivities=[0,0,0],this.speakers=new Map}addStream(e){e&&e.stream?e.stream.on("audio-level"+at,this.levelChanged.bind(this,e)):console.warn("add stream error")}removeStream(e){e&&e.stream&&e.stream.off(at),this.speakers.delete(e.getID())}maybeStartDecisionMaker(){!this.decisionMaker&&this.speakers.size>0&&(this.decisionMaker=new class{constructor(e){this.algorithm=e}run(){let e=this.algorithm.runInDecisionMaker(this);e<0?this.algorithm.decisionMakerExited(this):setTimeout((()=>{this.run()}),e)}}(this),this.decisionMaker.run())}decisionMakerExited(e){e==this.decisionMaker&&(this.decisionMaker=void 0)}getDominantSpeaker(){let e=this.speakers.get(this.dominant);if(e)return e.getStream()}getOrCreateSpeaker(e){let t=e.getID(),r=this.speakers.get(t);return r||(r=new class{constructor(e){this.stream=e,this.immediates=new Array(25),this.immediateSpeechActivityScore=nt,this.lastLevelChangedTime=(new Date).getTime(),this.levels=new Array(this.immediates.length),this.longs=new Array(1),this.longSpeechActivityScore=nt,this.mediums=new Array(5),this.mediumSpeechActivityScore=nt,this.minLevel=0,this.nextMinLevel=0,this.nextMinLevelWindowLength=void 0,this.lastActiveTime=this.lastLevelChangedTime-2e3-1}getStream(){return this.stream}getID(){return this.stream.getID()}computeImmediates(){let e=this.immediates,t=this.levels,r=Math.floor(this.minLevel+9.4),i=!1;for(let s=0;s<e.length;++s){let o=t[s];o<r&&(o=0);let n=Math.floor(o/9.4);e[s]!=n&&(e[s]=n,i=!0)}return i}computeLongs(){return ut(this.mediums,this.longs,2)}computeMediums(){return ut(this.immediates,this.mediums,3)}evaluateImmediateSpeechActivityScore(){this.immediateSpeechActivityScore=lt(this.immediates[0],15,.5,.78)}evaluateLongSpeechActivityScore(){this.longSpeechActivityScore=lt(this.longs[0],5,.5,47)}evaluateMediumSpeechActivityScore(){this.mediumSpeechActivityScore=lt(this.mediums[0],5,.5,24)}evaluateSpeechActivityScores(){this.computeImmediates()&&(this.evaluateImmediateSpeechActivityScore(),this.computeMediums()&&(this.evaluateMediumSpeechActivityScore(),this.computeLongs()&&this.evaluateLongSpeechActivityScore()))}getLastLevelChangedTime(){return this.lastLevelChangedTime}getLevels(){let e=this.levels,t=new Array(e.length);for(let r=e.length-1,i=0;i<t.length;--r,++i)t[i]=e[r];return t}getSpeechActivityScore(e){switch(e){case 0:return this.immediateSpeechActivityScore;case 1:return this.mediumSpeechActivityScore;default:return this.longSpeechActivityScore}}levelChanged(e,t){if(this.lastLevelChangedTime<=t){let r;this.lastLevelChangedTime=t,r=e<0?0:e>ot?ot:e;for(let e=this.levels.length-1;e>0;--e)this.levels[e]=this.levels[e-1];this.levels[0]=r,this.updateMinLevel(r)}e>10&&(this.lastActiveTime=(new Date).getTime())}levelTimeout(){this.levelChanged(0,this.lastLevelChangedTime)}updateMinLevel(e){if(0!=e){if(0==this.minLevel||this.minLevel>e)return this.minLevel=e,this.nextMinLevel=0,void(this.nextMinLevelWindowLength=0);if(0==this.nextMinLevel)return this.nextMinLevel=e,void(this.nextMinLevelWindowLength=1);if(this.nextMinLevel>e&&(this.nextMinLevel=e),this.nextMinLevelWindowLength++,this.nextMinLevelWindowLength>=75){let e=Math.sqrt(this.minLevel*this.nextMinLevel);e<0?e=0:e>ot&&(e=ot),this.minLevel=e,this.nextMinLevel=0,this.nextMinLevelWindowLength=0}}}getSilent(){return(new Date).getTime()-this.lastActiveTime>2e3}}(e),this.speakers.set(t,r),this.maybeStartDecisionMaker()),r}levelChanged(e,t){t=Math.min(t*ot*2,ot);let r=this.getOrCreateSpeaker(e),i=(new Date).getTime();this.lastLevelChangedTime<i&&(this.lastLevelChangedTime=i,this.maybeStartDecisionMaker()),r.levelChanged(t,i)}decisionChoice(){let e=this.speakers.get(this.dominant),t="";e||(e=this.speakers.entries().next().value[1],t=e.getID()),e.evaluateSpeechActivityScores();let r=this.relativeSpeechActivities,i=1;for(let[s,o]of this.speakers){if(o==e)continue;o.evaluateSpeechActivityScores();for(let t=0;t<r.length;++t)r[t]=Math.log(o.getSpeechActivityScore(t)/e.getSpeechActivityScore(t));let n=r[0],a=r[1],u=r[2];n>2&&a>1&&u>0&&a>i&&(i=a,t=s)}return t}makeDecision(){let e;if(0!=this.speakers.size&&(e=this.decisionChoice()),e&&e!=this.dominant){this.dominant=e;let t=this.speakers.get(this.dominant);t&&!t.getSilent()?this.emit("speaker",t.getStream()):(this.emit("speaker"),this.dominant=void 0)}else if(this.dominant){let e=this.speakers.get(this.dominant);(e&&e.getSilent()||!e)&&(this.dominant=void 0,this.emit("speaker"))}}runInDecisionMaker(e){if(e&&e!=this.decisionMaker||0<this.lastDecisionTime&&this.lastDecisionTime-this.lastLevelChangedTime>=15e3)return-1;let t=(new Date).getTime(),r=400-(t-this.lastLevelIdleTime),i=0;r<=0?(0!=this.lastLevelIdleTime&&this.timeoutIdleLevels(t),this.lastLevelIdleTime=t):i=r;let s=400-(t-this.lastDecisionTime);return s<=0&&(this.lastDecisionTime=t,this.makeDecision(),s=400-((new Date).getTime()-t)),s>0&&i>s&&(i=s),i}timeoutIdleLevels(e){for(let[t,r]of this.speakers){let i=e-r.getLastLevelChangedTime();36e5<i&&(!this.dominant||r.getID()!=this.dominant)?this.speakers.delete(t):400<i&&r.levelTimeout()}}},dt=ct,ht=require$$6__default.default,mt=require$$6__default.default,pt=class extends mt.EventEmitter{constructor(){super(),this._recording=!1}start(e,t){}stop(){}exportRecordedData(){}setMuted(e){}setMicDevice(e){}_getAudioStream(e){return e?navigator.mediaDevices.getUserMedia({audio:{deviceId:e},video:!1}):navigator.mediaDevices.getUserMedia({audio:!0,video:!1})}isRecording(){return this._recording}},ft=g(circularJson_node),gt=Ze.create(),vt=class extends pt{constructor(){super(),this._trackSources=new Map,this._stream=null,this._recordedData=[]}start(e,t){return v(this,null,(function*(){let r=t.stream;if(r||(r=yield this._createDesktopStream(t.capture)),!r)throw new Error("createDesktopStream is null");let i=r.getVideoTracks()[0];i&&(i.onended=()=>{this.emit("track-ended")});let s=yield this._getMixedAudioTrack(e).catch((e=>{throw k.Log().error(ft.default.stringify(e)),this._localAudioTrack&&this._localAudioTrack.stop(),r.getTracks().forEach((e=>e.stop())),e}));s&&(r.addTrack(s),this._stream=r,this._mediaRecorder=this._newMediaRecorder(r,t.record),this._mediaRecorder.ondataavailable=e=>this._saveMediaData(e.data),this._mediaRecorder.start(1e3),this._recording=!0,this.emit("started"))}))}stop(){return new Promise(((e,t)=>{console.log("record:this._mediaRecorder:",this._mediaRecorder),this._mediaRecorder?(this._mediaRecorder.onstop=e,this._mediaRecorder.stop(),this._mediaRecorder=null,this._localAudioTrack&&(this._localAudioTrack.stop(),this._localAudioStream=null),this._stream&&this._stream.getTracks().forEach((e=>e.stop())),this._trackSources&&(this._trackSources.forEach((e=>e.disconnect(this._audioContextDest))),this._trackSources.clear()),this._recording=!1,this.emit("stopped")):t(new Error("this._mediaRecorder is null"))}))}exportRecordedData(){return this._recordedData?Promise.resolve({data:new Blob(this._recordedData),format:"mp4"}):Promise.reject("No video data recorded.")}setMuted(e){this._localAudioTrack&&(this._localAudioTrack.enabled=!e)}setMicDevice(e){return v(this,null,(function*(){if(this._localAudioTrack)try{return this.disconnectTrack(this._localAudioTrack),this._localAudioTrack.stop(),this._getLocalAudioTrack(e).then((e=>{this.connectTrack(e)}))}catch(e){return Promise.reject()}return Promise.reject()}))}_saveMediaData(e){console.log("record:save media data..., size:",e.size),this._recordedData.push(e)}_createDesktopStream(e){return gt.start(e).then((e=>e))}_newMediaRecorder(e,t){let r={bitsPerSecond:(t=t||{}).bitrate?t.bitrate:3e6};if(MediaRecorder.isTypeSupported(t.format))r.mimeType=t.format;else{let e=["video/mp4;codecs=h264","video/mp4;codecs=vp9","video/mp4;codecs=vp8"];for(let t of e)if(MediaRecorder.isTypeSupported(t)){r.mimeType=t;break}}return new MediaRecorder(e,r)}_getLocalAudioTrack(e){return this._getAudioStream(e).then((e=>{this._localAudioStream=e;let t=this._localAudioStream.getAudioTracks()[0];return this._localAudioTrack=t,t}))}_getMixedAudioTrack(e){return this._getLocalAudioTrack(e).then((()=>{if(this._localAudioStream){let e=new AudioContext,t=e.createMediaStreamSource(this._localAudioStream),r=e.createMediaStreamDestination();return t.connect(r),this._audioContext=e,this._audioContextDest=r,this._trackSources.set(this._localAudioTrack,t),r.stream.getAudioTracks()[0]}}))}connectTrack(e){let t=this._audioContext.createMediaStreamSource(new MediaStream([e]));null==t||t.connect(this._audioContextDest),this._trackSources.set(e,t)}disconnectTrack(e){let t=this._trackSources.get(e);t&&(t.disconnect(this._audioContextDest),this._trackSources.delete(e))}},yt=g(circularJson_node),bt=class extends pt{constructor(){super(),this.leftDataList=[],this.rightDataList=[],this._trackSources=new Map,this._recordedData=[],this.audioContext=new AudioContext,this.recordStream=new MediaStream,this.audioContextDest=this.audioContext.createMediaStreamDestination()}start(e){return v(this,null,(function*(){let t=yield this._getMixedAudioTrack(e).catch((e=>{throw k.Log().error(yt.default.stringify(e)),this._localAudioTrack&&this._localAudioTrack.stop(),e}));return!!t&&(this.recordStream.addTrack(t),this.mediaRecorder=new MediaRecorder(this.recordStream,{mimeType:"audio/webm"}),this.mediaRecorder.ondataavailable=e=>this._saveMediaData(e.data,e),this.mediaRecorder.start(1e3),this._recording=!0,this.emit("started"),!0)}))}stop(){return new Promise(((e,t)=>{console.log("record:this._localAudioStream:",this._localAudioStream),this.mediaRecorder?(this.mediaRecorder.onstop=e,this.mediaRecorder.stop(),this.mediaRecorder=null,this._localAudioTrack&&(this._localAudioTrack.stop(),this._localAudioStream=null),this._trackSources&&(this._trackSources.forEach((e=>e.disconnect(this.audioContextDest))),this._trackSources.clear()),this.audioContext.close(),this._recording=!1,this.emit("stopped")):t()}))}_saveMediaData(e,t){this._recordedData.push(e)}exportRecordedData(){return v(this,null,(function*(){return this._recordedData?{data:new Blob(this._recordedData),format:"webm"}:Promise.reject("No audio data recorded.")}))}setMuted(e){this._localAudioTrack&&(this._localAudioTrack.enabled=!e)}setMicDevice(e){return v(this,null,(function*(){if(this._localAudioTrack)try{return this.disconnectTrack(this._localAudioTrack),this._localAudioTrack.stop(),this._getLocalAudioTrack(e).then((e=>{this.connectTrack(e)}))}catch(e){return Promise.reject()}return Promise.reject()}))}_getLocalAudioTrack(e){return this._getAudioStream(e).then((e=>{this._localAudioStream=e;let t=this._localAudioStream.getAudioTracks()[0];return this._localAudioTrack=t,t}))}_getMixedAudioTrack(e){return this._getLocalAudioTrack(e).then((()=>{if(this._localAudioStream){let e=this.audioContext.createMediaStreamSource(this._localAudioStream);return e.connect(this.audioContextDest),this._trackSources.set(this._localAudioTrack,e),this.audioContextDest.stream.getAudioTracks()[0]}}))}connectTrack(e){let t=this.audioContext.createMediaStreamSource(new MediaStream([e]));console.log("record:connectTrack"),null==t||t.connect(this.audioContextDest),this._trackSources.set(e,t)}disconnectTrack(e){let t=this._trackSources.get(e);console.log("record:disconnectTrack"),t&&(t.disconnect(this.audioContextDest),this._trackSources.delete(e))}},St=class extends ht.EventEmitter{constructor(e){super(),this._opts=e,this._filename=e.filename,e.isAudio?this._adapter=new bt:this._adapter=new vt,this._adapter.on("started",this.emit.bind(this,"started")),this._adapter.on("stopped",this.emit.bind(this,"stopped")),this._adapter.on("track-ended",this.emit.bind(this,"track-ended"))}downloadBlob(e,t="recording.webm"){let r=window.URL.createObjectURL(e),i=document.createElement("a");i.style.display="none",i.href=r,i.download=t,document.body.appendChild(i),i.click(),setTimeout((function(){document.body.removeChild(i),window.URL.revokeObjectURL(r)}),1e3)}start(e,t){return this._opts.stream=e,t&&t.chromeMediaSourceId&&(this._opts.capture=t),this._adapter.start(this._opts.capture.micDeviceId,this._opts)}stop(){return this._adapter.stop().then((()=>(console.log("record:export recorded data..."),this._adapter.exportRecordedData()))).then((e=>{let{data:t,format:r}=e;console.log("record:download recorded data..."),this.downloadBlob(t,this._filename)}))}muteAudio(e){this._adapter.isRecording()&&this._adapter.setMuted(e)}setMicDevice(e){return this._adapter.setMicDevice(e)}addStream(e){let t=e&&e.getAudioTrack();t&&this._adapter.isRecording()&&this._adapter.connectTrack(t)}removeStream(e){let t=e.getAudioTrack();t&&this._adapter.isRecording()&&this._adapter.disconnectTrack(t)}addEventListener(e,t){this.addListener(e,t)}on(e,t){return this.addListener(e,t),this}},_t=St,Et=dist$4,$t={enableRace:!1},It=class extends Et.Emitter{constructor(e){var t;super(!0),this.switch=!1,this.audiooff=!1,this.selfopenaudio=!0,this.videooff=!1,this.msgoff=!1,this.creator="",this.master="",this.lock=!1,this.getUsersList=(e,t,r,i)=>this.client.getUsersList(e,t,r,i).then((e=>{let t=e.value;return{participants:this.parseGetUser(t),total:e.total,pageIndex:e.index}})),this.searchUsers=(e,t,r)=>this.client.searchUsers(e,t,r).then((e=>{let t=e.value;return{participants:this.parseGetUser(t)}})),this.queryUsers=e=>this.client.queryUsers(e).then((e=>{let t=e.value;return{participants:this.parseGetUser(t)}})),this.options=Et.object.extend({},$t,e),this.joined=!1,this.logger=k.Log(),this.roomId=e.room,this.userId=e.user,this.hasSecret=!!this.options.secret,this.connectopts={nickname:this.options.nickname,custom_token:this.options.custom_token,userinfo:this.options.userinfo},this.create=null==(t=e.create)||t,this.nickname=e.nickname,this.localParticipant=new $e(!0,this.userId,e)}connect(){return v(this,null,(function*(){this.client=new ge(this.options.proxies,{forceWS:this.options.forceWS,enableRace:this.options.enableRace,token:this.options.token,sm4KeyPair:this.options.sm4KeyPair,enableSM4:this.options.enableSM4},this.getRpc(),this.logger),this.handleEvents(),yield this.client.connect();try{let e=yield this.client.join({roomId:this.roomId,userId:this.userId,info:this.getJoinUserInfo(this.options.userinfo)});this.joined=!0,this.logger.info(`joined: sessionId: ${e.sessionId}, callId: ${e.raw.callId}`);let t=this.parseJoinResponse(e);this.fire(ve.BloudEvents.ROOM_CONNECTED,[t])}catch(e){throw this.logger.error(`join room failed: ${(0,Et.getErrorMessage)(e)}, proxy: ${JSON.stringify(this.getActiveProxy())}`),this.client.close(),e}}))}leave(){return v(this,null,(function*(){var e;this.client&&(this.logger.info(`leaved: sessionId: ${(null==(e=this.client)?void 0:e.getSessionId())||""}`),yield this.client.leave({roomId:this.roomId,userId:this.userId,sessionId:this.client.getSessionId()||""}),this.client.close(),this.client=void 0,this.joined=!1)}))}request(e,t){return v(this,null,(function*(){var r;return null==(r=this.client)?void 0:r.request(e,t)}))}handleEvents(){this.client.on(E,(()=>{this.logger.error("client error"),this.fire(ve.BloudEvents.ERROR)})).on(_,(()=>{this.logger.error("client close"),this.fire(ve.BloudEvents.ERROR)})).on($,(()=>{this.logger.error("client timeout"),this.fire(ve.BloudEvents.TIMEOUT,[{msg:"timeout"}])})).on(b,(()=>{this.logger.info("client reconnected"),this.fire(ve.BloudEvents.RECONNECTED)})).on(I,(()=>{this.fire(ve.BloudEvents.RECONNECTING)})).on(Et.BloudEventMap.joinUser,(e=>{this.logger.debug("participant joined");let t=new $e(!1,e.userId,e);this.fire(Et.BloudEventMap.joinUser,[{participant:t,mode:e.mode,data:e}])})).on(Et.BloudEventMap.leaveUser,(e=>{e.userId!==this.userId&&this.fire(Et.BloudEventMap.leaveUser,[{userId:e.userId,mode:e.mode,data:e}])})).on(Et.BloudEventMap.leaveUsers,(e=>{this.fire(Et.BloudEventMap.leaveUsers,[e])})).on(Et.BloudEventMap.roomClosed,(e=>{this.logger.error("room closed"),this.fire(Et.BloudEventMap.roomClosed,[e]),this.destroy()})).on(Et.BloudEventMap.roomError,(()=>{this.logger.error("room error"),this.fire(Et.BloudEventMap.roomError),this.destroy()})).on(Et.BloudEventMap.publishStream,(e=>{if(e.userId===this.userId)return;let t=e.userId,r=e.streamId,i=r.endsWith("_screen"),s=e.customInfo;this.fire(Et.BloudEventMap.publishStream,[{userId:t,streamId:r,video:e.params.video_enable,audio:e.params.audio_enable,isScreen:i,customInfo:s}])})).on(Et.BloudEventMap.updateStream,(e=>{this.fire(Et.BloudEventMap.updateStream,[e])})).on(Et.BloudEventMap.streamUpdate,(e=>{if(e.userId===this.userId)return;let t=e.userId,r=e.streamId,i=r.endsWith("_screen");this.fire(Et.BloudEventMap.streamUpdate,[{userId:t,streamId:r,video:e.params.video_enable,audio:e.params.audio_enable,isScreen:i}])})).on(Et.BloudEventMap.unpublishStream,(e=>{if(e.userId===this.userId)return;let t=e.userId,r=e.streams[0],i=r.endsWith("_screen");this.fire(Et.BloudEventMap.unpublishStream,[{userId:t,streamId:r,isScreen:i}])})).on(Et.BloudEventMap.sendMessage,(e=>{let t={room:e.roomId,user:e.userId,message:e.msg,to:e.to,seq:e.seq};this.fire(Et.BloudEventMap.sendMessage,[t])})).on(Et.BloudEventMap.customMessage,(e=>{let t={room:e.roomId,user:e.userId,message:e.msg,to:e.to};this.fire(Et.BloudEventMap.customMessage,[t])})).on(Et.BloudEventMap.moveUserRoom,(e=>{var t,r;null!=(t=e.info)&&t.master&&(this.master=e.info.master),null!=(r=e.info)&&r.customStats&&(this.customStats=e.info.customStats),this.fire(Et.BloudEventMap.moveUserRoom,[e])})).on(Et.BloudEventMap.evicted,(e=>{this.fire(Et.BloudEventMap.evicted,[{userId:e.userId}])})).on(Et.BloudEventMap.updateStats,(e=>{this.switch=e.stats.switch,this.hasSecret=e.stats.secret,this.audiooff=e.stats.audiooff,this.selfopenaudio=e.stats.selfopenaudio,this.videooff=e.stats.videooff,this.msgoff=e.stats.msgoff,this.lock=e.stats.lock,this.creator=e.stats.creator,this.master=e.stats.master;let t=e.stats.updates,r=Object.keys(t);this.fire(Et.BloudEventMap.updateStats,[{room:this,options:r,stats:e.stats}])})).on(Et.BloudEventMap.updateCustomStats,(e=>{this.customStats=e.customStats||{},this.fire(Et.BloudEventMap.updateCustomStats,[{room:this,customStats:this.customStats,updateKeys:e.updateKeys}])})).on(Et.BloudEventMap.changeMaster,(e=>{this.master=e.master,this.fire(Et.BloudEventMap.changeMaster,[{master:this.master,oldMaster:e.oldmaster,isKeep:e.isKeep,type:e.type,data:e}])})).on(Et.BloudEventMap.updateUser,(e=>{if(e.user===this.getLocalParticipant().getID())this.getLocalParticipant().update(e.info),this.fire(Et.BloudEventMap.updateUser,[{participant:this.getLocalParticipant()}]);else{let t=new $e(!1,e.user,e.info);this.fire(Et.BloudEventMap.updateUser,[{participant:t}])}})).on(Et.BloudEventMap.userRejoined,(e=>{this.fire(Et.BloudEventMap.userRejoined,[{userId:e.userId,info:e.info}])}))}getRpc(){return{}}getActiveProxy(){return this.client.getProxy()}destroy(){this.client&&(this.client.close(),this.client=void 0),this.joined=!1,this.off()}getJoinUserInfo(e,t=!1){let r={};return r.ua=e.ua?e.ua:be(),r.device=e.device?e.device:ye(),r.platform=e.platform?e.platform:"Web",r.network=e.network?e.network:"unknown",r.role=e.role?e.role:"anchor",r.create=this.options.create,r.secret=this.options.secret?(0,it.default)(`${this.roomId}.${this.options.secret}`):void 0,r.nickname=this.options.nickname,r.userinfo=this.options.userinfo,r.customInfo=this.options.customInfo,r.hasWaitRoom=!0,r.permission=t?this.permission:this.options.permission,r.noWaiting=this.options.noWaiting,r.custom_token=this.options.custom_token,r.prefer=this.options.prefer,r.name=this.options.name,r.userinfo.jointime||(r.userinfo.jointime=Math.floor(Date.now()/1e3)),r}getLocalParticipant(){return this.localParticipant}getID(){return this.roomId}getAudioOff(){return this.audiooff}getSelfOpenAudio(){return this.selfopenaudio}getVideoOff(){return this.videooff}getMsgOff(){return this.msgoff}getLock(){return this.lock}setAudioOff(e,t){return this.update({audiooff:e,selfopenaudio:t})}setVideoOff(e){return this.update({videooff:e})}setMsgOff(e){return this.update({msgoff:e})}setSwitch(e){return this.update({switch:e})}setLock(e){return this.update({lock:e})}getSwitch(){return this.switch}setSecret(e){return this.update({secret:e})}getLimits(){return this.limit}getMaster(){return this.master}getCreator(){return this.creator}getName(){return this.name}getMsgSeq(){return this.msgSeq}changeMaster(e,t){if(e!=this.getMaster())return this.client.changeMaster(this.roomId,this.userId,e,t).then((()=>{this.master=e})).catch((e=>{k.Log().error(rt.default.stringify(e))}))}syncUser(e){return this.client.syncUser(e).then((e=>(k.Log().info("syncUser success"),e))).catch((e=>{k.Log().error("syncUser error",e)}))}evictUser(e){return this.client.evictUser(this.roomId,this.userId,e)}evictUser2(e,t,r){return e!=this.getMaster()?Promise.reject("not master."):this.client.evictUser(this.roomId,this.userId,t,r)}updateUser(e,t){return this.localParticipant.getID()==this.getMaster()||this.localParticipant.getPermission().getManage()||!t.permission&&e==this.localParticipant.getID()?this.client.updateUser(this.roomId,this.localParticipant.getID(),{info:t,target:e}).then((()=>{e==this.localParticipant.getID()&&this.localParticipant.update(t)})).catch((e=>{k.Log().error(e)})):Promise.reject({code:Xe.ERR_PERMISSION,error:"permission denied."})}parseStreams(e,t){let r=[];if(t.streams)for(let i=0;i<t.streams.length;i++){let s=t.streams[i].params,o=t.streams[i].streamId,n={id:o,audio:s.audio,video:s.video,audio_enable:s.audio_enable,video_enable:s.video_enable,screen:o.endsWith("_screen"),customInfo:s.customInfo},a=new tt(this.client,this,e,!1,n);r.push(a)}return r}parseJoinResponse(e){return this.logger.log(`room-connect耗时: ${e.duration}`),this.total=e.total,this.pagesize=e.pagesize,this.index=e.index,this.startup=e.startup,this.duration=e.duration,this.limit=e.limit,this.switch=e.switch,this.audiooff=e.audiooff,this.selfopenaudio=e.selfopenaudio,this.videooff=e.videooff,this.msgoff=e.msgoff,this.lock=e.lock,this.master=e.master,this.creator=e.creator,this.name=e.name,this.limit=e.limit,this.msgSeq=e.msgSeq,this.sessionId=e.sessionId,this.permission=e.permission,this.customStats=e.customStats,this.getLocalParticipant().getPermission().set(this.permission),((e,t)=>i(e,o(t)))(m({},e),{total:this.total,sessionId:this.sessionId,customStats:this.customStats})}syncRoom(){let e=this.getJoinUserInfo(this.options.userinfo,!0);return this.client.syncRoom(this.options.room,this.options.user,e).then((e=>{k.Log().log("bloud syncRoom response : "+rt.default.stringify(e));let t=this.parseJoinResponse(e);this.fire(ve.BloudEvents.ROOM_SYNCED,[t])})).catch((e=>{throw k.Log().error(e),this.fire(ve.BloudEvents.SYNC_FAILED,[{error:e}]),e}))}update(e={}){return"string"==typeof e.secret&&(e.secret=(0,it.default)(`${this.roomId}.${e.secret}`)),this.client.updateRoom(this.roomId,this.userId,e).then((()=>{"boolean"==typeof e.audiooff&&(this.audiooff=e.audiooff),"boolean"==typeof e.videooff&&(this.videooff=e.videooff),"boolean"==typeof e.msgoff&&(this.msgoff=e.msgoff),"boolean"==typeof e.switch&&(this.switch=e.switch),"string"==typeof e.secret&&(this.secret=e.secret),"boolean"==typeof e.lock&&(this.lock=e.lock),"boolean"==typeof e.selfopenaudio&&(this.selfopenaudio=e.selfopenaudio),k.Log().info(e)})).catch((e=>{throw k.Log().error(e),e}))}updateCustomStats(e,t){return e=e||{},this.client.updateCustomStats(this.roomId,this.userId,e,t).then((()=>{k.Log().info("updateCustomStats:"+rt.default.stringify(e))})).catch((e=>{throw k.Log().error(e),e}))}updateStream(e,t,r){return this.client.updateStream(e,t,{customInfo:r})}getMessages(e,t){return this.client.getMessages(this.roomId,this.userId,{startSeq:e,endSeq:t})}parseGetUser(e){let t=[];for(let r=0;r<e.length;r++){if(e[r].userId===this.getLocalParticipant().getID()){t.push(this.getLocalParticipant());continue}let i=new $e(!1,e[r].userId,e[r]);this.parseStreams(i,e[r]).forEach((e=>i.addStream(e))),t.push(i)}return t}getUsers(e,t,r,i=!1){return this.index=e,this.pagesize=r||this.pagesize,this.client.getUsers(this.roomId,this.userId,this.pagesize,this.index+1,t,i).then((e=>{let t=e.value;this.total=e.total,this.pagesize=e.pagesize,this.index=e.index;let r=this.parseGetUser(t);return this.fire("users-list",[{usersEvent:{participants:r}}]),{participants:r,total:this.total}}))}getTotalUsers(){return this.total}getInfo(e){return e.ua=e.ua?e.ua:be(),e.device=e.device?e.device:ye(),e.platform=e.platform?e.platform:"Web",e.network=e.network?e.network:"unknown",e.role=e.role?e.role:"anchor",e.create=this.create,e.secret=this.secret,e.nickname=this.nickname,e.userinfo=this.userinfo,e.permission=this.permission,e.custom_token=this.custom_token,e.name=this.name,this.create&&(e.limit=this.limit,e.limittime=this.limittime,e.stoptime=this.stoptime),e.pagesize=this.pagesize,e}getCustomStats(){return this.customStats}sendMessage(e,t){return this.client.sendMessage(this.roomId,this.userId,t,e).then((e=>(k.Log().log(rt.default.stringify(e)),e))).catch((e=>{throw k.Log().error(e),e}))}customMessage(e,t,r=!1){return this.client.customMessage(this.roomId,this.userId,t,e,r).then((e=>(k.Log().log(rt.default.stringify(e)),e))).catch((e=>{throw k.Log().error(e),e}))}moveUserRoom(e,t,r){return this.client.moveUserRoom(e,t,r)}release(){return this.client.releaseRoom(this.roomId,this.userId).then((e=>(k.Log().log(rt.default.stringify(e)),e))).catch((e=>{throw k.Log().error(e),e}))}reconnect(){var e;null==(e=this.client)||e.reconnect()}close(){this.client&&(this.client.close(),this.client=void 0)}SpeakerDetector(){return new dt}Recorder(e){var t;let r=new _t(e);return k.Log().info("create local recorder"),r.addEventListener("started",(()=>{k.Log().info("local recorder started.")})),r.addEventListener("stopped",(()=>{var e,t;k.Log().info("local recorder stopped");let i=null==(e=this.recorders)?void 0:e.indexOf(r);i&&i>=0&&(this.recorders=null==(t=this.recorders)?void 0:t.splice(i,1))})),r.addEventListener("track-ended",(()=>{k.Log().info("local recorder track ended")})),null==(t=this.recorders)||t.push(r),r}removeAllListeners(){this.off()}Stream(e){if(this.client)return new tt(this.client,this,this.getLocalParticipant(),!0,e)}};function At(e){return e.screen?tt.sharing().start(e):(e.audio&&e.audio.deviceId&&(e.audio.deviceId={exact:e.audio.deviceId}),e.video&&e.video.deviceId&&(e.video.deviceId={exact:e.video.deviceId}),navigator.mediaDevices.getUserMedia(e))}}(dist$2);var ne=Object.create,T=Object.defineProperty,oe=Object.getOwnPropertyDescriptor,ae=Object.getOwnPropertyNames,G=Object.getOwnPropertySymbols,le=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable,J=(e,t,r)=>t in e?T(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,A=(e,t)=>{for(var r in t||(t={}))H.call(t,r)&&J(e,r,t[r]);if(G)for(var r of G(t))ce.call(t,r)&&J(e,r,t[r]);return e},ue=(e,t)=>{for(var r in t)T(e,r,{get:t[r],enumerable:!0})},W=(e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of ae(t))!H.call(e,s)&&s!==r&&T(e,s,{get:()=>t[s],enumerable:!(i=oe(t,s))||i.enumerable});return e},Y=(e,t,r)=>(r=null!=e?ne(le(e)):{},W(!t&&e&&e.__esModule?r:T(r,"default",{value:e,enumerable:!0}),e)),de=e=>W(T({},"__esModule",{value:!0}),e),o=(e,t,r)=>new Promise(((i,s)=>{var o=e=>{try{a(r.next(e))}catch(e){s(e)}},n=e=>{try{a(r.throw(e))}catch(e){s(e)}},a=e=>e.done?i(e.value):Promise.resolve(e.value).then(o,n);a((r=r.apply(e,t)).next())})),Be={};ue(Be,{AudioPlayer:()=>w,BCUser:()=>b,Player:()=>M,checkSystemSupport:()=>Te,createStream:()=>Ae,default:()=>Oe,enumAudioInputDevices:()=>Ee,enumAudioOutputDevices:()=>Pe,enumVideoDevices:()=>Ie,getPermissions:()=>Ce});var dist$1=de(Be),K=dist$4,he={token:"",smInfo:{enableSM:!1,enKey:"",deKey:"",imei:"",iv:""}},d=he,V=Y(dist$3),k;function F({url:e,method:t="get",data:r={},contentType:i="application/json",_header:s={},succCB:o,errCB:n,dataType:a,responseType:u}){let l=d.token;t=t.toUpperCase(),s.Authorization="Bearer "+l,-1==e.indexOf("/proxies")?(s.checkdelay="570ed35e48494f1d6aa7d1bd20d0a2be",s.ch="web",s.os="web",s.p="3",s.delay=(new Date).getTime(),s.version="2.2.7",s.ver="2.2.7",s.lan="zh",s.osv="",s.wh="",s.apn=""):d.smInfo.enableSM&&(s.imei=d.smInfo.imei);let c={headers:s,method:t};if(u&&(c.responseType=u),"GET"===t){if(r){e+="?";for(let t in r)e+=`${t}=${r[t]}&`;e=e.substring(0,e.length-1)}c.cache="no-store"}else if("RESTFUL"===t){e+="/";for(let t of r)e+=t+"/";e=e.substring(0,e.length-1),t="GET",c.method=t,c.cache="no-store"}else c.body="multipart/form-data"===i?r:JSON.stringify(r);return console.log("## getData host==\n"+e+"\n Header=",s,"\n optins=",c),fetch(e,c).then((t=>"blob"===a?t:me(t,e,r,u))).then((t=>(console.log(`此接口【${e}】返回的data:`,t),"blob"!==a?(t.msg=t.message||t.msg,t):"200"===t.code||200===t.status?("function"==typeof o&&o(t),t):("function"==typeof n&&n(t),void Promise.reject(t))))).catch((t=>(K.Logger.error("\n## get err"+t.message,e),t.msg=t.message||t.msg,Promise.reject(t))))}function me(e,t,r,i){return e.ok?"blob"===i?e.blob():d.smInfo.enableSM?e.json().then((e=>{if(e.data.noCipher)return JSON.parse(e.data.ciphertext);k||(k=new V.default);let t=k.decryptSm4(e.data.ciphertext,d.smInfo.deKey);return JSON.parse(t)})):e.json():500===e.status?Promise.reject({code:500,message:"连接服务器失败, 请检查网络重试!",url:t,param:r}):404===e.status?Promise.reject({code:404,message:"404",url:t,param:r}):502===e.status?Promise.reject({code:502,message:"连接服务器失败, 请检查网络重试!",url:t,param:r}):Promise.reject({code:e.status,message:e.status+"",url:t,param:r})}var b=class e{constructor(e){this.userinfo=e.userinfo,this.permission=e.permission,this.stream=e.stream,this.userId=e.userId,this.customInfo=e.customInfo,this.nickname=e.nickname}static toUser(t,r){var i,s;return new e({userinfo:A({},t.getUserInfo()),userId:t.getID(),stream:t.getStreams(),permission:t.getPermission(),customInfo:A({},null==(s=null==(i=t.params)?void 0:i.info)?void 0:s.customInfo),nickname:t.getNickName()})}},U=dist$4,pe=e=>e;function ge(e){return e.participant&&(e.user=b.toUser(e.participant,this.type)),e}var be=[U.BloudEvents.PARTICIPANT_JOINED,U.BloudEvents.UPDATE_USER],O={};function $(){Object.values(U.BloudEvents).forEach((e=>{O[e]||(be.includes(e)?O[e]=ge:O[e]=pe)}))}var ye=function(){},v=void 0!==typeof console?console:null;function _(e,t,r,i){let s=[];return r&&s.push(r),i&&s.push(i),`[${(new Date).toLocaleTimeString("chinese",{hour12:!1})}] <${e}> [${s.join("|")}] ${t}`}function I(e,t,r,i=[]){i.unshift(_("DEBUG",e,t,r)),v.log.apply(v.log,i)}function p(e,t,r,i=[]){i.unshift(_("INFO",e,t,r)),v.log.apply(v.log,i)}function q(e,t,r,i=[]){i.unshift(_("WARN",e,t,r)),v.warn.apply(v.warn,i)}function c(e,t,r,i=[]){i.unshift(_("ERROR",e,t,r)),v.error.apply(v.error,i)}/BRTC/.test(ye.toString());var X=Y(dist$2.exports),y=class{static singleModeJoin(e,t){return o(this,null,(function*(){try{let r,i;try{r=yield e._getBloudProxiesUrl(e.token)}catch(e){return c("_getBloudProxiesUrl error","","",[JSON.stringify(e)]),Promise.reject(e)}if(!Array.isArray(r.proxies)||0==r.proxies.length)return Promise.reject({code:1001,message:"Proxies数据格式不正确,需要检查Bloud-mpc服务"});switch(e.identity){case"5":i="RWPSAVM";break;case"3":case"4":i="RWPS";break;case"6":i="RWPAV"}let s={room:e.roomId,user:e.userId.toString(),enableCollection:!1,enableRace:!0,proxies:r.proxies,nickname:e.userinfo.nickname,custom_token:e.customToken,userinfo:e.userinfo,customInfo:e.customInfo,token:e.token,secret:e.secret,forceWS:!0,name:e.name,create:e.tarCreate,disableMediaEngine:e.disableMediaEngine,permission:i,noWaiting:e.noWaiting,enableSM4:d.smInfo.enableSM,sm4KeyPair:{enKey:d.smInfo.enKey,deKey:d.smInfo.deKey,imei:d.smInfo.imei,iv:d.smInfo.iv}};try{e.client&&e.client.destroy()}catch(e){}e.client=new X.Room(s),t(),yield e.client.connect(),p("singleModeJoin==>单一模式加入会议成功",e.userId,1)}catch(t){return c("singleModeJoin==>单一模式加入会议失败",e.userId,1,[JSON.stringify(t)]),e.client=null,Promise.reject(t)}}))}static singleModeLeave(e){return o(this,null,(function*(){if(!e.client)throw new Error("没有 joined");try{yield e.client.leave(),console.log("client leave success",e.userId),e.clearObject()}catch(t){throw console.log("client leave fail",e.userId,[t]),e.clearObject(),new Error(t)}}))}};Object.freeze({}),Object.freeze([]);var Q="c",j=1,Z=2,E=dist$4,ee=dist$4,D=dist$4,te=dist$4,a=dist$4,S=window.BRTC,B=class{constructor(e){this.emitters=[],this.name="",this.type=j,this.appId="",this.brtcAppId="",this.roomId="",this.tarCreate=!1,this.userinfo={},this.userId="",this.isJoining=!1,this.collection="",this.limit=0,this.token="",this.customToken="",this.create=!1,this.host="",this.getProxiesUrl="",this.secret="",this.enableRace=!1,this.disableMediaEngine=!1,this.roomType=1,this.customInfo={},this.brtcClient=null,this.shareBrtcClient=null,this.hasBloudJoined=!1,this.brtcSig="",this.brtcShareSig="",this.shareContentHint="detail",this.identity="",this.isBig="0",this.isElectron=!1,this.noWaiting=!1,this.joinBrtc=()=>new Promise(((e,t)=>{this.brtcClient.join(this.roomId,this.userId,this.sig).then((()=>(p("join brtc succeed"),e(!0)))).catch((e=>(console.log("brtc入会失败01",e),this.isJoining=!1,t((0,a.JoinBrtcError)(e.message)))))})),this.joinBloud=()=>new Promise(((e,t)=>{y.singleModeJoin(this,(()=>this.addBloudEvent())).then((()=>(p("join bloud succeed"),this.hasBloudJoined=!0,e(!0)))).catch((e=>(c("bloud入会失败02","",[e]),this.isJoining=!1,t(e))))})),this.handleForceUnpublishBloudStream=()=>{c("bloud share stream unpublish failed, create bloud stream and unpub again"),this.client.client.unpublishStream(this.roomId,this.userId,`${this.userId}_screen`)},this.emitter=new ee.Emitter(!0),this.isElectron=navigator.userAgent.toLowerCase().indexOf(" electron/")>-1,$()}setShareSig(e){this.brtcShareSig=e}configSM(e){d.smInfo=e}clearObject(){this.client&&(this.client.close(),this.client.removeAllListeners()),this.client=null,this.collection&&(this.collection.close(),this.collection=null)}join(e){return o(this,null,(function*(){return new Promise(((t,r)=>o(this,null,(function*(){if(this.isJoining)return Promise.reject(a.RepeatJoinError);if(this.client)return Promise.reject(a.RepeatJoinError);if("string"!=typeof e.getProxiesUrl)return Promise.reject(a.ProxiesUrlTypeError);if(!e.userinfo||e.userinfo&&"object"!=typeof e.userinfo)return Promise.reject(a.JoinUserInfoError);if("number"!=typeof e.type||1!==e.type&&2!==e.type)return Promise.reject(a.JoinTypeError);if(this.userId=e.userId,this.roomId=e.room,this.roomType=e.roomType,this.collection=e.collection,this.userinfo=e.userinfo,this.getProxiesUrl=e.getProxiesUrl,this.appId=e.appId,this.brtcAppId=e.brtcAppId,this.type=e.type,this.tarCreate=e.create,this.limit=e.limit,this.secret=e.secret,this.enableRace=e.enableRace,this.token=e.token,this.customToken=e.customToken,this.name=e.name,this.brtcSig=e.sig,this.identity=e.identity,this.isBig=e.is_big,this.sig=e.sig,this.noWaiting=e.noWaiting,this.customInfo=e.customInfo,this.qdtlsKey=e.qdtlsKey,d.token=e.token,this.isJoining=!0,this.type===j&&(yield y.singleModeJoin(this,(()=>this.addBloudEvent()))),this.type===Z){this.disableMediaEngine=!0;try{this.brtcClient=S.createClient({codec:"h264",appId:this.brtcAppId,useStringUserId:!0,audioLevelInterval:200,roomType:"big",silence:!0,qdtlsKey:this.qdtlsKey,enableSM4:d.smInfo.enableSM,enableMediaSM4:d.smInfo.enableSM&&this.isElectron,sm4KeyPair:{enKey:d.smInfo.enKey,deKey:d.smInfo.deKey,imei:d.smInfo.imei,iv:d.smInfo.iv}}),this.createShareBrtcClient(),this.addBrtcEvent(),this.fire("brtc-bound",!0),S.setVTRequestTimeout(5),yield this.joinRoom().then((()=>(this.isJoining=!1,this.fire(E.CustomEvents.JOIN_READY),t(!0)))).catch((e=>(c("join room error","",this.userId,[JSON.stringify(e)]),r(e))))}catch(e){return this.isJoining=!1,c("join room error",Q,this.userId,[e]),r(e)}}}))))}))}joinRoom(){return new Promise(((e,t)=>{let r=!1,i=!1;this.joinBloud().then((()=>{if(r=!0,i)return e(!0)})).catch((e=>t(e))),this.joinBrtc().then((()=>{if(i=!0,r)return e(!0)})).catch((e=>t(e)))}))}createShareBrtcClient(){return this.shareBrtcClient||(this.shareBrtcClient=S.createClient({codec:"h264",appId:this.brtcAppId,useStringUserId:!0,roomType:"big",silence:!0,qdtlsKey:this.qdtlsKey,enableSM4:d.smInfo.enableSM,enableMediaSM4:d.smInfo.enableSM&&this.isElectron,sm4KeyPair:{enKey:d.smInfo.enKey,deKey:d.smInfo.deKey,imei:d.smInfo.imei,iv:d.smInfo.iv}}),this.shareBrtcClient.on("error",(e=>{this.fire("share-brtc-error",e)}))),this.shareBrtcClient}_getBloudProxiesUrl(e){return new Promise(((t,r)=>{F({url:`${this.getProxiesUrl}/proxies?token=${e}`}).then((r=>{t({proxies:r.proxies,token:e})})).catch((e=>{r((0,a.getBloudProxiesUrlError)(e))}))}))}on(e,t){return this.emitter.on(e,{fn:t,ctx:this}),this}fire(e,t){this.emitter&&this.emitter.fire(e,t?[t]:void 0)}changeMaster(e,t=!1){return this.client.changeMaster(e,t)}getMaster(){return this.client.getMaster()}syncUser(e){return this.client.syncUser(e)}getCreator(){return this.client.getCreator()}getName(){return this.client.getName()}close(){return o(this,null,(function*(){var e;this.leaveBrtcRoom(),null==(e=this.client)||e.close(),this.leaveShare()}))}getMsgSeq(){return this.client.getMsgSeq()}evictUser(e,t){return this.client.evictUser2(this.getMaster(),e,t)}updateUser(e,t){return o(this,null,(function*(){yield this.client.updateUser(e,t)}))}getLimits(){return this.client.getLimits()}getSwitch(){return this.client.getSwitch()}syncRoom(){return this.client.syncRoom()}update(e){return this.client.update(e)}getUsers(e,t,r){return o(this,null,(function*(){let{participants:i,total:s}=yield this.client.getUsers(e,t,r),o=new Map;return i.forEach((e=>{let t=b.toUser(e,this.type);o.set(t.userId,t)})),{users:o,total:s}}))}updateStream(e,t,r){return this.client.updateStream(e,t,r)}getUsersList(e,t,r,i){return o(this,null,(function*(){let{participants:s,total:o,pageIndex:n}=yield this.client.getUsersList(e,r,t,i),a=new Map;return s.forEach((e=>{let t=b.toUser(e,this.type);a.set(t.userId,t)})),{users:a,total:o,pageIndex:n}}))}getTotalUsers(){return this.client.getTotalUsers()}sendMessage(e,t){return this.client.sendMessage(e,t)}customMessage(e,t,r=!1){return this.client.customMessage(e,t,r)}getMessages(e,t){return this.client.getMessages(e,t)}getLocalParticipant(){var e;return null==(e=this.client)?void 0:e.getLocalParticipant()}getAudioOff(){return this.client.getAudioOff()}getSelfOpenAudio(){return this.client.getSelfOpenAudio()}getVideoOff(){return this.client.getVideoOff()}getMsgOff(){return this.client.getMsgOff()}getLock(){return this.client.getLock()}getRoomInfo(){let e=A({},this.client.options);return delete e.token,e}setAudioOff(e,t){return this.client.setAudioOff(e,t)}setVideoOff(e){return this.client.setVideoOff(e)}setMsgOff(e){return this.client.setMsgOff(e)}setSwitch(e){return this.client.setSwitch(e)}setLock(e){return this.client.setLock(e)}publish(e){return o(this,null,(function*(){return this.brtcClient.publish(e).catch((e=>(c(e.message,"BRTC publish",this.userId,e),Promise.reject((0,a.BrtcPublishError)(JSON.stringify(e))))))}))}unpublish(e){return o(this,null,(function*(){return this.brtcClient.unpublish(e).catch((e=>Promise.reject((0,a.BrtcUnPublishError)(JSON.stringify(e)))))}))}subscribe(e){return o(this,arguments,(function*(e,t={audio:!0,video:!0}){return this.brtcClient.subscribe(e,t).catch((e=>Promise.reject(e)))}))}unsubscribe(e){return o(this,null,(function*(){return this.brtcClient.unsubscribe(e).catch((e=>Promise.reject((0,a.BrtcUnsubscribeError)(JSON.stringify(e)))))}))}addBloudEvent(){let e=this,t=O;let r=Object.values(E.BloudEvents);D.array.each(r,(r=>{!function(r,i){e.client.on(r,(function(){let r=(0,te.execute)(t[i],e,D.array.toArray(arguments));e.fire(i,r)}))}(r,r)}))}addBrtcEvent(){let e=this;let t=Object.values(E.BrtcEvents);D.array.each(t,(t=>{var r;r=t,e.brtcClient.on(r,(t=>{e.fire(r,t)}))}))}clearBrtcEvent(){var e;null==(e=this.brtcClient)||e.off()}leave(){return o(this,null,(function*(){return console.log("离开会议","userId =>",this.userId,"roomId =>",this.roomId,"userInfo =>",this.userinfo),yield y.singleModeLeave(this),this.leaveBrtcRoom()}))}leaveBrtcRoom(){return o(this,null,(function*(){if(console.log("离开brtc调用堆栈!!!!!"),this.brtcClient&&(this.brtcClient.off(),yield this.brtcClient.leave(),yield this.brtcClient.destroy(!0),this.brtcClient=null),this.shareBrtcClient){try{this.shareBrtcClient.off(),yield this.shareBrtcClient.leave()}catch(e){}this.shareBrtcClient.destroy(!0),this.shareBrtcClient=null}}))}leaveShare(){return o(this,null,(function*(){if(this.shareBrtcClient){try{yield this.shareBrtcClient.leave()}catch(e){}this.shareBrtcClient.destroy(!0),this.shareBrtcClient=null}}))}createRecorder(e){return this.client.Recorder(e)}createSpeakerDetector(){return this.client.SpeakerDetector()}createLocalStream(e,t){return o(this,null,(function*(){S.isSmallStreamSupported()?yield this.brtcClient.enableSmallStream():c("simulcast is not supported"),this.brtcClient.setSmallStreamProfile({width:320,height:180,bitrate:100});try{return S.createStream(e)}catch(e){return Promise.reject(e)}}))}createPBLocalStream(e,t){return o(this,null,(function*(){this.brtcClient.setSmallStreamProfile({width:320,height:180,bitrate:100});try{return S.createStream(e)}catch(e){return Promise.reject((0,a.BrtcCreateStreamError)(JSON.stringify(e)))}}))}creteBloudLocalStream(e,t){return this.client.Stream({audio:!0,video:!0,audio_enable:e.audio_enable,video_enable:e.video_enable,id:t,screen:!1})}createBloudScreenStream(e,t){return this.client.Stream({screen:!0,audio:!0,video:!0,audio_enable:e.audio_enable,video_enable:e.video_enable,id:t})}updateCustomStats(e,t=!1){return p("updateCustomStats","updateCustomStats","",[" customstats => ",JSON.stringify(e),"replace => ",t]),this.client.updateCustomStats({customStats:e},t)}getCustomStats(){var e;return null==(e=this.client)?void 0:e.getCustomStats()}getDuration(){var e;return null==(e=this.client)?void 0:e.duration}toggleShareScreen(e,t,r){return o(this,null,(function*(){return new Promise(((i,s)=>o(this,null,(function*(){if(e){let e=t.audioHint;try{let o={screen:!0,videoHint:"motion"===this.shareContentHint?"motion":"detail",sourceType:"screen",audio:t.audio};e&&(o.audioHint=e),r&&(void 0!==r.video&&(o.video=r.video),void 0!==r.audio&&(o.audio=r.audio),o.videoSource=r.videoSource,o.audioSource=r.audioSource);let n=yield S.createStream(o);(void 0===t.width||t.height<1080)&&(t.width=1920,t.height=1080),n.setVideoEncoderConfiguration({width:t.width,height:t.height,frameRate:20,bitrate:2500}),n.init().then((()=>{this.publishShareStream(n).then((()=>i(!0))).catch((e=>{c("publish share stream failed","","",[String(e)]),n.destroy(),n=null,s(e)}))})).catch((e=>{c("brtc share stream init failed","","",[String(e)]),null==n||n.destroy(),n=null,e instanceof DOMException&&"NotAllowedError"===e.name&&s(a.ShareScreenCanceled),s((0,a.ShareScreenOtherError)("开启共享屏幕失败,请重试"))}))}catch(e){String(e).includes("Permission denied by system")?(c("没有打开共享屏幕录制权限","","this.userId"),s(a.ShareScreenNoPermission)):String(e).includes("Permission denied")?(p("点击了取消共享屏幕","",this.userId,["nickname =>",this.name]),s(a.ShareScreenCanceled)):String(e).includes("暂不支持4k以上分辨率")?(c("开启共享屏幕失败","","",[String(e)]),s((0,a.ShareScreenOtherError)("暂不支持4k以上分辨率"))):(c("开启共享屏幕失败","","",[String(e)]),s((0,a.ShareScreenOtherError)("开启共享屏幕失败,请重试")))}}else yield this.unpublishShareStream(),i(!0)}))))}))}shareHTMLMedia(e,t){return o(this,null,(function*(){if(e&&t)try{let e=S.createStream({screen:!0,audio:t.audio,video:t.video,videoSource:t.videoSource,audioSource:t.audioSource,videoHint:"motion",sourceType:"screen"}),r="motion"===this.shareContentHint?{frameRate:15,bitrate:2500}:{frameRate:5,bitrate:2500};e.setVideoEncoderConfiguration({width:1920,height:1080,frameRate:r.frameRate,bitrate:r.bitrate}),yield e.init(),yield this.publishShareStream(e)}catch(e){return Promise.reject((0,a.ToggleShareScreenError)(JSON.stringify(e)))}e||(yield this.unpublishShareStream())}))}publishShareStream(e){return o(this,null,(function*(){if(this.shareBrtcClient||this.createShareBrtcClient(),!this.brtcShareSig)return console.error("brtcShareSig为空"),Promise.reject(a.BrtcShareSigError);{yield this.shareBrtcClient.join(this.roomId,`${this.userId}_screen`,this.brtcShareSig).catch((e=>{var t;c("共享屏幕入会失败","","",[JSON.stringify(e),this.brtcShareSig]);try{null==(t=this.shareBrtcClient)||t.leave()}catch(e){}return Promise.reject(a.ShareScreenClientJoinedError)})),e.on("video-track-ended",(()=>{this.handleShareStreamEnded()})),yield this.shareBrtcClient.publish(e).catch((t=>(c("共享屏幕流推流失败","","",["err =>",JSON.stringify(t)]),e.destroy(),Promise.reject((0,a.ShareScreenOtherError)("共享屏幕流推流失败,请重试"))))),this.shareBrtcClient.on("sync-room-completed",(()=>{this.fire(E.CustomEvents.BRTC_SHARE_SYNC_ROOM_COMPLETED)}));let t=e.getAudioOn(),r=e.getVideoOn();this.shareScreenStream=e,this.createAndPubBloudShareStream(t,r),setTimeout((()=>{Promise.resolve(!0)}),200)}}))}createAndPubBloudShareStream(e,t,r=!0){return o(this,null,(function*(){this.bloudShareScreenStream=this.createBloudScreenStream({audio_enable:e,video_enable:t},`${this.userId}_screen`),r&&(yield this.bloudShareScreenStream.publish({video_enable:t,audio_enable:e}))}))}replaceShareStreamVideoTrack(e){p("replace share stream video track"),this.shareScreenStream?this.shareScreenStream.replaceTrack(e):c("当前没有开启共享屏幕,无法替换track")}unpublishShareStream(){return o(this,null,(function*(){return new Promise((e=>o(this,null,(function*(){var t,r,i;try{q("unpublish share stream"),this.shareScreenStream&&(yield null==(t=this.shareBrtcClient)?void 0:t.unpublish(this.shareScreenStream).catch((e=>{c("取消共享屏幕出错","","",[JSON.stringify(e)])}))),yield null==(r=this.shareBrtcClient)?void 0:r.leave().catch((e=>{c("shareBrtcClient leave error","","",[JSON.stringify(e)])})),null==(i=this.shareScreenStream)||i.destroy(),this.shareScreenStream=void 0,this.bloudShareScreenStream?yield this.bloudShareScreenStream.unpublish().then((()=>{this.bloudShareScreenStream=void 0})).catch((e=>{c("bloud share stream unpublish failed"),this.handleForceUnpublishBloudStream()})):this.handleForceUnpublishBloudStream()}catch(e){console.log("取消共享兼容处理",e)}e(!0)}))))}))}setShareScreenContentHint(e){this.shareContentHint=e}releaseRoom(){return o(this,null,(function*(){yield this.client.release()}))}handleShareStreamEnded(){setTimeout((()=>{var e;this.shareScreenStream&&"live"!==(null==(e=this.shareScreenStream.getVideoTrack())?void 0:e.readyState)&&(c("share stream video track ended"),this.fire("toggle-screen-share",!1))}),3e3)}setCustomUrl(e){S.setCustomUrl(e)}bloudReconnect(){return o(this,null,(function*(){yield this.client.leave(),yield y.singleModeJoin(this,(()=>this.addBloudEvent()))}))}searchUsers(e,t,r){return o(this,null,(function*(){let{participants:i}=yield this.client.searchUsers(e,t,r),s=new Map;return i.forEach((e=>{let t=b.toUser(e,this.type);s.set(t.userId,t)})),{users:s}}))}queryUsers(e){return o(this,null,(function*(){let{participants:t}=yield this.client.queryUsers(e),r=new Map;return t.forEach((e=>{let t=b.toUser(e,this.type);r.set(t.userId,t)})),{users:r}}))}handleBloudRejoin(){return o(this,null,(function*(){return y.singleModeJoin(this,(()=>this.addBloudEvent()))}))}},ie=dist$4,R=dist$4,x="bp",M=class extends ie.Emitter{constructor(e,t){super(),this.playEvent=()=>{this.videoStatus="PLAYING",p("stream big video playing",x,this.stream.getUserId())},this.pauseEvent=()=>{this.videoStatus="PAUSED",this.fire(R.PlayerEvents.PLAYER_STATE_CHANGED,[{type:"video",state:this.videoStatus,reason:"pause"}]),p("stream big video pause",x,this.stream.getUserId())},this.stalledEvent=()=>{this.videoStatus="PAUSED",this.fire(R.PlayerEvents.PLAYER_STATE_CHANGED,[{type:"video",state:this.videoStatus,reason:"stalled"}]),p("stream big video stalled",x,this.stream.getUserId())},this.element=e,this.options=t,this.container=document.createElement("div"),this.container.style.width="100%",this.container.style.height="100%",this.container.style.position="relative",this.container.style.backgroundColor="#202020",this.container.style.overflow="hidden",e.appendChild(this.container)}playVideo(){if(!this.video){if(!this.stream.getVideoTrack())return;this.video=document.createElement("video"),this.video.autoplay=!0,this.video.playsInline=!0,this.video.muted=!!this.options.muted,this.video.style.width="100%",this.video.style.height="100%",this.video.style.position="absolute";let e="";this.options.rotateX&&(e=`rotateX(${this.options.rotateX}deg)`),this.options.rotateY&&(e=`${e} rotateY(${this.options.rotateY}deg)`),e&&(this.video.style.transform=e),this.options.fit&&(this.video.style.objectFit=this.options.fit),this.video.id=`video_${this.stream.getStreamId()}_big`,this.container.appendChild(this.video),this.video.addEventListener("playing",this.playEvent),this.video.addEventListener("pause",this.pauseEvent),this.video.addEventListener("stalled",this.stalledEvent)}let e=new MediaStream;e.addTrack(this.stream.getVideoTrack()),this.video.srcObject=e,this.videoStatus="STOPPED"}play(e){return o(this,null,(function*(){this.stream=e,this.container.id=`player_${e.getStreamId()}_big_container`,this.stream.hasVideo()&&this.playVideo();try{this.video&&(yield this.video.play())}catch(e){c("big player play video failed","","",[JSON.stringify(e)]),this.fire(R.PlayerEvents.PLAYER_STATE_CHANGED,[{type:"error",reason:e}])}}))}replay(e,t=!0,r=!0){return o(this,null,(function*(){this.stream=e;try{this.stream.hasVideo()&&t&&this.playVideo(),this.stream.hasVideo()&&t&&(yield this.video.play())}catch(e){c("big player replay video failed","","",[JSON.stringify(e)]),this.fire(R.PlayerEvents.PLAYER_STATE_CHANGED,[{type:"error",reason:e}])}}))}muteVideo(){this.video&&(this.video.srcObject=void 0,this.videoStatus="STOPPED")}unmuteVideo(){if(this.video&&this.stream&&"STOPPED"===this.videoStatus){let e=new MediaStream;e.addTrack(this.stream.getVideoTrack()),this.video.srcObject=e}}destroy(){this.video&&(this.video.removeEventListener("playing",this.playEvent),this.video.removeEventListener("pause",this.pauseEvent),this.video.removeEventListener("stalled",this.stalledEvent),this.video.style.display="none",this.video=null);try{this.container.style.display="none",this.element.removeChild(this.container)}catch(e){}this.container=null,I("stream player destroy",x,this.stream.getUserId())}resume(){return o(this,null,(function*(){this.video&&(yield this.video.play()),I("stream player resume",x,this.stream.getUserId())}))}getVideoFrame(){if(this.video&&"STOPPED"!==this.videoStatus){let e=document.createElement("canvas");return e.width=this.video.videoWidth,e.height=this.video.videoHeight,e.getContext("2d").drawImage(this.video,0,0),e.toDataURL("image/png")}}},re=dist$4,se=dist$4,L=dist$4,P="ap",w=class extends se.Emitter{constructor(e,t){super(),this.sinkId="",this.audioLevel=1,this.playEvent=()=>{this.audioStatus="PLAYING",p("stream audio playing",P,this.stream.getUserId())},this.pauseEvent=()=>{this.audioStatus="PAUSED",this.fire(L.PlayerEvents.PLAYER_STATE_CHANGED,[{type:"audio",state:this.audioStatus,reason:"pause"}]),p("stream audio pause",P,this.stream.getUserId())},this.stalledEvent=()=>{this.audioStatus="PAUSED",this.fire(L.PlayerEvents.PLAYER_STATE_CHANGED,[{type:"audio",state:this.audioStatus,reason:"stalled"}]),p("stream audio stalled",P,this.stream.getUserId())},this.element=e,this.options=t}get streamId(){return this.stream.getStreamId()}playAudio(){if(!this.audio){if(!this.stream.getAudioTrack())return;this.audio=document.createElement("audio"),this.audio.autoplay=!0,this.audio.playsInline=!0,this.audio.muted=this.options.muted,this.audio.id=`audio_${this.stream.getStreamId()}_back`,this.element.appendChild(this.audio),this.audio.volume=this.audioLevel,this.audio.addEventListener("playing",this.playEvent),this.audio.addEventListener("pause",this.pauseEvent),this.audio.addEventListener("stalled",this.stalledEvent)}let e=new MediaStream;e.addTrack(this.stream.getAudioTrack()),this.audio.srcObject=e,this.audioStatus="STOPPED"}setSinkId(e){return o(this,null,(function*(){this.sinkId=e,this.audio&&re.is.func(this.audio.setSinkId)&&(yield this.audio.setSinkId(e))}))}setVolume(e){this.audio&&(this.audioLevel=e,this.audio.volume=e)}play(e){return o(this,null,(function*(){this.stream=e,this.stream.hasAudio()&&this.playAudio();try{this.audio&&(yield this.audio.play())}catch(e){c("player play audio failed","","",[JSON.stringify(e)]),this.fire(L.PlayerEvents.PLAYER_STATE_CHANGED,[{type:"error",reason:e}])}}))}replay(e,t=!0,r=!0){return o(this,null,(function*(){this.stream=e;try{this.stream.hasAudio()&&r&&this.playAudio(),this.stream.hasAudio()&&r&&(yield this.audio.play())}catch(e){c("player replay audio failed","","",[JSON.stringify(e)]),this.fire(L.PlayerEvents.PLAYER_STATE_CHANGED,[{type:"error",reason:e}])}I("audio stream replay",P,this.stream.getUserId())}))}muteAudio(){this.audio&&(this.audio.srcObject=void 0,this.audioStatus="STOPPED")}unmuteAudio(){if(this.audio&&this.stream&&"STOPPED"===this.audioStatus){let e=new MediaStream;e.addTrack(this.stream.getAudioTrack()),this.audio.srcObject=e}}destroy(){var e,t,r;null==(e=this.audio)||e.removeEventListener("playing",this.playEvent),null==(t=this.audio)||t.removeEventListener("pause",this.pauseEvent),null==(r=this.audio)||r.removeEventListener("stalled",this.stalledEvent);try{this.element.removeChild(this.audio)}catch(e){}this.audio=null,I("stream player destroy",P,this.stream.getUserId())}resume(){return o(this,null,(function*(){this.audio?(yield this.audio.play(),p("stream player resume",P,this.stream.getUserId())):c("try resume audio play, but, audio not exits",P,this.stream.getUserId())}))}},C=window.BRTC,Ee=C.enumAudioInputDevices,Pe=C.enumAudioOutputDevices,Ie=C.enumVideoDevices,Ce=C.getPermissions,Te=C.checkSystemSupport,Ae=C.createStream,Oe=B;class BoomError extends Error{constructor(e,t,r,i){super(),this.code=e,this.error=r,this.BoomErrorFlag=!0,this.eName=i,this.message=t}static instanceOf(e){return!(!e||!e.BoomErrorFlag)}getCode(){return this.code}}const LOCAL_ERROR=1e3,INVALID_PARAMETER=1001,INVALID_OPERATION=1002,CLIENT_BANNED=4005,USER_NOT_EXIT=9001,DEBUG=1,WARN=3,EMPTY_FUNCTION=function(){};function formatLog(e,t,r,i){let s=[];return r&&s.push(r),i&&s.push(i),`[${(new Date).toLocaleTimeString("chinese",{hour12:!1})}] <${e}> [${s.join("|")}] ${t}`}function info(e,t,r,i=[]){i.unshift(formatLog("INFO",e,t,r)),console.log(...i)}function warn(e,t,r,i=[]){i.unshift(formatLog("WARN",e,t,r)),console.log(...i)}function error$1(e,t,r,i=[]){i.unshift(formatLog("ERROR",e,t,r)),console.log(...i)}function isFunction(e){return"function"==typeof e}function createErrorClass(e){var t=e((function(e){Error.call(e),e.stack=(new Error).stack}));return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}/BRTC/.test(EMPTY_FUNCTION.toString());var UnsubscriptionError=createErrorClass((function(e){return function(t){e(this),this.message=t?t.length+" errors occurred during unsubscription:\n"+t.map((function(e,t){return t+1+") "+e.toString()})).join("\n "):"",this.name="UnsubscriptionError",this.errors=t}}));function arrRemove(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Subscription=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var e,t,r,i,s;if(!this.closed){this.closed=!0;var o=this._parentage;if(o)if(this._parentage=null,Array.isArray(o))try{for(var n=__values(o),a=n.next();!a.done;a=n.next()){a.value.remove(this)}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}else o.remove(this);var u=this.initialTeardown;if(isFunction(u))try{u()}catch(e){s=e instanceof UnsubscriptionError?e.errors:[e]}var l=this._finalizers;if(l){this._finalizers=null;try{for(var c=__values(l),d=c.next();!d.done;d=c.next()){var h=d.value;try{execFinalizer(h)}catch(e){s=null!=s?s:[],e instanceof UnsubscriptionError?s=__spreadArray$1(__spreadArray$1([],__read(s)),__read(e.errors)):s.push(e)}}}catch(e){r={error:e}}finally{try{d&&!d.done&&(i=c.return)&&i.call(c)}finally{if(r)throw r.error}}}if(s)throw new UnsubscriptionError(s)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)execFinalizer(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(r=this._finalizers)&&void 0!==r?r:[]).push(t)}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&arrRemove(t,e)},e.prototype.remove=function(t){var r=this._finalizers;r&&arrRemove(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}(),EMPTY_SUBSCRIPTION=Subscription.EMPTY;function isSubscription(e){return e instanceof Subscription||e&&"closed"in e&&isFunction(e.remove)&&isFunction(e.add)&&isFunction(e.unsubscribe)}function execFinalizer(e){isFunction(e)?e():e.unsubscribe()}var config={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},timeoutProvider={setTimeout:function(e,t){for(var r=[],i=2;i<arguments.length;i++)r[i-2]=arguments[i];var s=timeoutProvider.delegate;return(null==s?void 0:s.setTimeout)?s.setTimeout.apply(s,__spreadArray$1([e,t],__read(r))):setTimeout.apply(void 0,__spreadArray$1([e,t],__read(r)))},clearTimeout:function(e){var t=timeoutProvider.delegate;return((null==t?void 0:t.clearTimeout)||clearTimeout)(e)},delegate:void 0};function reportUnhandledError(e){timeoutProvider.setTimeout((function(){throw e}))}function noop(){}var context=null;function errorContext(e){if(config.useDeprecatedSynchronousErrorHandling){var t=!context;if(t&&(context={errorThrown:!1,error:null}),e(),t){var r=context,i=r.errorThrown,s=r.error;if(context=null,i)throw s}}else e()}var Subscriber=function(e){function t(t){var r=e.call(this)||this;return r.isStopped=!1,t?(r.destination=t,isSubscription(t)&&t.add(r)):r.destination=EMPTY_OBSERVER,r}return __extends(t,e),t.create=function(e,t,r){return new SafeSubscriber(e,t,r)},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(Subscription),_bind=Function.prototype.bind;function bind(e,t){return _bind.call(e,t)}var ConsumerObserver=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){handleUnhandledError(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){handleUnhandledError(e)}else handleUnhandledError(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){handleUnhandledError(e)}},e}(),SafeSubscriber=function(e){function t(t,r,i){var s,o,n=e.call(this)||this;isFunction(t)||!t?s={next:null!=t?t:void 0,error:null!=r?r:void 0,complete:null!=i?i:void 0}:n&&config.useDeprecatedNextContext?((o=Object.create(t)).unsubscribe=function(){return n.unsubscribe()},s={next:t.next&&bind(t.next,o),error:t.error&&bind(t.error,o),complete:t.complete&&bind(t.complete,o)}):s=t;return n.destination=new ConsumerObserver(s),n}return __extends(t,e),t}(Subscriber);function handleUnhandledError(e){reportUnhandledError(e)}function defaultErrorHandler(e){throw e}var EMPTY_OBSERVER={closed:!0,next:noop,error:defaultErrorHandler,complete:noop},observable="function"==typeof Symbol&&Symbol.observable||"@@observable";function identity(e){return e}function pipeFromArray(e){return 0===e.length?identity:1===e.length?e[0]:function(t){return e.reduce((function(e,t){return t(e)}),t)}}var Observable=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(e,t,r){var i=this,s=isSubscriber(e)?e:new SafeSubscriber(e,t,r);return errorContext((function(){var e=i,t=e.operator,r=e.source;s.add(t?t.call(s,r):r?i._subscribe(s):i._trySubscribe(s))})),s},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var r=this;return new(t=getPromiseCtor(t))((function(t,i){var s=new SafeSubscriber({next:function(t){try{e(t)}catch(e){i(e),s.unsubscribe()}},error:i,complete:t});r.subscribe(s)}))},e.prototype._subscribe=function(e){var t;return null===(t=this.source)||void 0===t?void 0:t.subscribe(e)},e.prototype[observable]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return pipeFromArray(e)(this)},e.prototype.toPromise=function(e){var t=this;return new(e=getPromiseCtor(e))((function(e,r){var i;t.subscribe((function(e){return i=e}),(function(e){return r(e)}),(function(){return e(i)}))}))},e.create=function(t){return new e(t)},e}();function getPromiseCtor(e){var t;return null!==(t=null!=e?e:config.Promise)&&void 0!==t?t:Promise}function isObserver(e){return e&&isFunction(e.next)&&isFunction(e.error)&&isFunction(e.complete)}function isSubscriber(e){return e&&e instanceof Subscriber||isObserver(e)&&isSubscription(e)}var ObjectUnsubscribedError=createErrorClass((function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})),Subject=function(e){function t(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return __extends(t,e),t.prototype.lift=function(e){var t=new AnonymousSubject(this,this);return t.operator=e,t},t.prototype._throwIfClosed=function(){if(this.closed)throw new ObjectUnsubscribedError},t.prototype.next=function(e){var t=this;errorContext((function(){var r,i;if(t._throwIfClosed(),!t.isStopped){t.currentObservers||(t.currentObservers=Array.from(t.observers));try{for(var s=__values(t.currentObservers),o=s.next();!o.done;o=s.next()){o.value.next(e)}}catch(e){r={error:e}}finally{try{o&&!o.done&&(i=s.return)&&i.call(s)}finally{if(r)throw r.error}}}}))},t.prototype.error=function(e){var t=this;errorContext((function(){if(t._throwIfClosed(),!t.isStopped){t.hasError=t.isStopped=!0,t.thrownError=e;for(var r=t.observers;r.length;)r.shift().error(e)}}))},t.prototype.complete=function(){var e=this;errorContext((function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var t=e.observers;t.length;)t.shift().complete()}}))},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var e;return(null===(e=this.observers)||void 0===e?void 0:e.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var t=this,r=this,i=r.hasError,s=r.isStopped,o=r.observers;return i||s?EMPTY_SUBSCRIPTION:(this.currentObservers=null,o.push(e),new Subscription((function(){t.currentObservers=null,arrRemove(o,e)})))},t.prototype._checkFinalizedStatuses=function(e){var t=this,r=t.hasError,i=t.thrownError,s=t.isStopped;r?e.error(i):s&&e.complete()},t.prototype.asObservable=function(){var e=new Observable;return e.source=this,e},t.create=function(e,t){return new AnonymousSubject(e,t)},t}(Observable),AnonymousSubject=function(e){function t(t,r){var i=e.call(this)||this;return i.destination=t,i.source=r,i}return __extends(t,e),t.prototype.next=function(e){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===r||r.call(t,e)},t.prototype.error=function(e){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===r||r.call(t,e)},t.prototype.complete=function(){var e,t;null===(t=null===(e=this.destination)||void 0===e?void 0:e.complete)||void 0===t||t.call(e)},t.prototype._subscribe=function(e){var t,r;return null!==(r=null===(t=this.source)||void 0===t?void 0:t.subscribe(e))&&void 0!==r?r:EMPTY_SUBSCRIPTION},t}(Subject),BehaviorSubject=function(e){function t(t){var r=e.call(this)||this;return r._value=t,r}return __extends(t,e),Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(t){var r=e.prototype._subscribe.call(this,t);return!r.closed&&t.next(this._value),r},t.prototype.getValue=function(){var e=this,t=e.hasError,r=e.thrownError,i=e._value;if(t)throw r;return this._throwIfClosed(),i},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(Subject);Object.freeze({}),Object.freeze([]);const LOGGER_TAG_CLIENT="c";var MODEL_SORT_ENUM_STAND,MODEL_SORT_ENUM_ZY,STREAM_TYPE;!function(e){e[e.SCREEN_MASTER=0]="SCREEN_MASTER",e[e.SCREEN_MANAGER_AUDIO_VIDEO=1]="SCREEN_MANAGER_AUDIO_VIDEO",e[e.SCREEN_MANAGER_AUDIO=2]="SCREEN_MANAGER_AUDIO",e[e.SCREEN_MANAGER_VIDEO=3]="SCREEN_MANAGER_VIDEO",e[e.SCREEN_MANAGER=4]="SCREEN_MANAGER",e[e.SCREEN_GUEST_AUDIO_VIDEO=5]="SCREEN_GUEST_AUDIO_VIDEO",e[e.SCREEN_GUEST_AUDIO=6]="SCREEN_GUEST_AUDIO",e[e.SCREEN_GUEST_VIDEO=7]="SCREEN_GUEST_VIDEO",e[e.SCREEN_GUEST=8]="SCREEN_GUEST",e[e.SCREEN_COMMONUSER_AUDIO_VIDEO=9]="SCREEN_COMMONUSER_AUDIO_VIDEO",e[e.SCREEN_COMMONUSER_AUDIO=10]="SCREEN_COMMONUSER_AUDIO",e[e.SCREEN_COMMONUSER_VIDEO=11]="SCREEN_COMMONUSER_VIDEO",e[e.SCREEN_OTHER=12]="SCREEN_OTHER",e[e.MASTER=13]="MASTER",e[e.LOCAL=14]="LOCAL",e[e.MANAGER_AUDIO_VIDEO=15]="MANAGER_AUDIO_VIDEO",e[e.MANAGER_AUDIO=16]="MANAGER_AUDIO",e[e.MANAGER_VIDEO=17]="MANAGER_VIDEO",e[e.MANAGER=18]="MANAGER",e[e.RAISE_HAND=19]="RAISE_HAND",e[e.RAISE_AUDIO=20]="RAISE_AUDIO",e[e.RAISE_VIDEO=21]="RAISE_VIDEO",e[e.GUEST_AUDIO_VIDEO=22]="GUEST_AUDIO_VIDEO",e[e.GUEST_AUDIO=23]="GUEST_AUDIO",e[e.GUEST_VIDEO=24]="GUEST_VIDEO",e[e.GUEST=25]="GUEST",e[e.SIGNAL=26]="SIGNAL",e[e.COMMONUSER_AUDIO_VIDEO=27]="COMMONUSER_AUDIO_VIDEO",e[e.COMMONUSER_AUDIO=28]="COMMONUSER_AUDIO",e[e.COMMONUSER_VIDEO=29]="COMMONUSER_VIDEO",e[e.OTHER=30]="OTHER"}(MODEL_SORT_ENUM_STAND||(MODEL_SORT_ENUM_STAND={})),function(e){e[e.SCREEN=0]="SCREEN",e[e.RAISE_AUDIO=1]="RAISE_AUDIO",e[e.RAISE_VIDEO=2]="RAISE_VIDEO",e[e.LOCAL=3]="LOCAL",e[e.MASTER_AUDIO_VIDEO=4]="MASTER_AUDIO_VIDEO",e[e.MANAGER_AUDIO_VIDEO=5]="MANAGER_AUDIO_VIDEO",e[e.AUDIO_VIDEO=6]="AUDIO_VIDEO",e[e.MASTER_AUDIO=7]="MASTER_AUDIO",e[e.MANAGER_AUDIO=8]="MANAGER_AUDIO",e[e.AUDIO=9]="AUDIO",e[e.MASTER_VIDEO=10]="MASTER_VIDEO",e[e.MANAGER_VIDEO=11]="MANAGER_VIDEO",e[e.VIDEO=12]="VIDEO",e[e.MASTER=13]="MASTER",e[e.MANAGER=14]="MANAGER",e[e.GUEST=15]="GUEST",e[e.COMMON_USER=16]="COMMON_USER",e[e.SIGNAL=17]="SIGNAL",e[e.OTHER=18]="OTHER"}(MODEL_SORT_ENUM_ZY||(MODEL_SORT_ENUM_ZY={})),function(e){e[e.SUB_MAIN=0]="SUB_MAIN",e[e.SINGLE=1]="SINGLE",e[e.SHARE=2]="SHARE",e[e.OTHER=3]="OTHER"}(STREAM_TYPE||(STREAM_TYPE={}));const STREAM_SUFFIX_SCREEN="_screen",MOBILE_STREAM_SUFFIX_SCREEN="screen-",SIGNAL_SUFFIX="xinhao_",RECEIVE_SUBSCRIBE_MESSAGE="sub-message",USER_SORT_NUM_CHANGE="user-sort-num-change",BIND_ELEMENT="bind-element",HANDLE_STREAM_CONNECT_ERROR="stream-connect-error",RAISE_HAND="raise-hand",MANUAL_SUBSCRIPTION="manual-subscription",UNSUBSCRIBE_STREAM="unsubscribe-stream",CHANG_IS_GUEST="change-is-guest",BIND_BIG_ELEMENT="bind-big-element",NO_CONTAINER="no-container",MODEL_SORT_NUM_CHANGE="model-sort-num-change",ADD_PULL_USER="add-pull-user",SET_VOLUME="set-volume",ADD_AUDIO_PLAY="add-audio-play",STREAM_PLAY="stream-play";function mitt(e){return{all:e=e||new Map,on:function(t,r){var i=e.get(t);i?i.push(r):e.set(t,[r])},off:function(t,r){var i=e.get(t);i&&(r?i.splice(i.indexOf(r)>>>0,1):e.set(t,[]))},emit:function(t,r){var i=e.get(t);i&&i.slice().map((function(e){e(r)})),(i=e.get("*"))&&i.slice().map((function(e){e(t,r)}))}}}class BoomEmitter{static getInstance(){return BoomEmitter.emitter||(BoomEmitter.emitter=mitt()),BoomEmitter.emitter}}function getSortNum(e){return 2===_selfSortType?sortZY(e):sortStand(e)}function sortStand(e){let t=MODEL_SORT_ENUM_STAND.OTHER;return e.isSharing?(t=e.isMaster?MODEL_SORT_ENUM_STAND.SCREEN_MASTER:e.isManager&&e.audioEnable&&e.videoEnable?MODEL_SORT_ENUM_STAND.SCREEN_MANAGER_AUDIO_VIDEO:e.isManager&&e.audioEnable?MODEL_SORT_ENUM_STAND.SCREEN_MANAGER_AUDIO:e.isManager&&e.videoEnable?MODEL_SORT_ENUM_STAND.SCREEN_MANAGER_VIDEO:e.isManager?MODEL_SORT_ENUM_STAND.SCREEN_MANAGER:e.isCommonUser?e.audioEnable&&e.videoEnable?MODEL_SORT_ENUM_STAND.SCREEN_COMMONUSER_AUDIO_VIDEO:e.audioEnable?MODEL_SORT_ENUM_STAND.SCREEN_COMMONUSER_AUDIO:e.videoEnable?MODEL_SORT_ENUM_STAND.SCREEN_COMMONUSER_VIDEO:MODEL_SORT_ENUM_STAND.SCREEN_OTHER:e.audioEnable&&e.videoEnable?MODEL_SORT_ENUM_STAND.SCREEN_GUEST_AUDIO_VIDEO:e.audioEnable?MODEL_SORT_ENUM_STAND.SCREEN_GUEST_AUDIO:e.videoEnable?MODEL_SORT_ENUM_STAND.SCREEN_GUEST_VIDEO:MODEL_SORT_ENUM_STAND.SCREEN_GUEST,t):(e.isMaster?t=MODEL_SORT_ENUM_STAND.MASTER:e.isLocal?t=MODEL_SORT_ENUM_STAND.LOCAL:e.isManager?t=e.audioEnable&&e.videoEnable?MODEL_SORT_ENUM_STAND.MANAGER_AUDIO_VIDEO:e.audioEnable?MODEL_SORT_ENUM_STAND.MANAGER_AUDIO:e.videoEnable?MODEL_SORT_ENUM_STAND.MANAGER_VIDEO:MODEL_SORT_ENUM_STAND.MANAGER:e.raiseHand?t=MODEL_SORT_ENUM_STAND.RAISE_HAND:e.isCommonUser?e.isSignal?t=MODEL_SORT_ENUM_STAND.SIGNAL:e.isCommonUser&&(t=e.audioEnable&&e.videoEnable?MODEL_SORT_ENUM_STAND.COMMONUSER_AUDIO_VIDEO:e.audioEnable?MODEL_SORT_ENUM_STAND.COMMONUSER_AUDIO:e.videoEnable?MODEL_SORT_ENUM_STAND.COMMONUSER_VIDEO:MODEL_SORT_ENUM_STAND.OTHER):t=e.audioEnable&&e.videoEnable?MODEL_SORT_ENUM_STAND.GUEST_AUDIO_VIDEO:e.audioEnable?MODEL_SORT_ENUM_STAND.GUEST_AUDIO:e.videoEnable?MODEL_SORT_ENUM_STAND.GUEST_VIDEO:MODEL_SORT_ENUM_STAND.GUEST,t)}function sortZY(e){let t;return t=e.isToupingma?MODEL_SORT_ENUM_ZY.SCREEN:e.raiseHand?MODEL_SORT_ENUM_STAND.RAISE_HAND:e.raiseAudioHands?MODEL_SORT_ENUM_ZY.RAISE_AUDIO:e.raiseVideoHands?MODEL_SORT_ENUM_ZY.RAISE_VIDEO:e.isLocal?MODEL_SORT_ENUM_ZY.LOCAL:e.isMaster&&e.audioEnable&&e.videoEnable?MODEL_SORT_ENUM_ZY.MASTER_AUDIO_VIDEO:e.isManager&&e.audioEnable&&e.videoEnable?MODEL_SORT_ENUM_ZY.MANAGER_AUDIO_VIDEO:e.audioEnable&&e.videoEnable?MODEL_SORT_ENUM_ZY.AUDIO_VIDEO:e.isMaster&&e.audioEnable?MODEL_SORT_ENUM_ZY.MASTER_AUDIO:e.isManager&&e.audioEnable?MODEL_SORT_ENUM_ZY.MANAGER_AUDIO:e.audioEnable?MODEL_SORT_ENUM_ZY.AUDIO:e.isMaster&&e.videoEnable?MODEL_SORT_ENUM_ZY.MASTER_VIDEO:e.isManager&&e.videoEnable?MODEL_SORT_ENUM_ZY.MANAGER_VIDEO:e.videoEnable?MODEL_SORT_ENUM_ZY.VIDEO:e.isMaster?MODEL_SORT_ENUM_ZY.MASTER:e.isManager?MODEL_SORT_ENUM_ZY.MANAGER:e.isCommonUser?MODEL_SORT_ENUM_ZY.COMMON_USER:e.isSignal?MODEL_SORT_ENUM_ZY.SIGNAL:MODEL_SORT_ENUM_ZY.GUEST,t}BoomEmitter.emitter=void 0,BoomEmitter.removeEmitter=()=>{var e,t,r,i,s,o,n,a,u,l,c,d,h,m,p;null===(e=BoomEmitter.emitter)||void 0===e||e.off(RECEIVE_SUBSCRIBE_MESSAGE),null===(t=BoomEmitter.emitter)||void 0===t||t.off(USER_SORT_NUM_CHANGE),null===(r=BoomEmitter.emitter)||void 0===r||r.off(HANDLE_STREAM_CONNECT_ERROR),null===(i=BoomEmitter.emitter)||void 0===i||i.off(RAISE_HAND),null===(s=BoomEmitter.emitter)||void 0===s||s.off(UNSUBSCRIBE_STREAM),null===(o=BoomEmitter.emitter)||void 0===o||o.off(MANUAL_SUBSCRIPTION),null===(n=BoomEmitter.emitter)||void 0===n||n.off(CHANG_IS_GUEST),null===(a=BoomEmitter.emitter)||void 0===a||a.off(BIND_ELEMENT),null===(u=BoomEmitter.emitter)||void 0===u||u.off(BIND_BIG_ELEMENT),null===(l=BoomEmitter.emitter)||void 0===l||l.off(NO_CONTAINER),null===(c=BoomEmitter.emitter)||void 0===c||c.off(MODEL_SORT_NUM_CHANGE),null===(d=BoomEmitter.emitter)||void 0===d||d.off(ADD_PULL_USER),null===(h=BoomEmitter.emitter)||void 0===h||h.off(SET_VOLUME),null===(m=BoomEmitter.emitter)||void 0===m||m.off(ADD_AUDIO_PLAY),null===(p=BoomEmitter.emitter)||void 0===p||p.off(STREAM_PLAY),BoomEmitter.emitter=void 0};const NULL=null,UNDEFINED=void 0,RAW_FUNCTION="function";Object.freeze({}),Object.freeze([]);const EMPTY_STRING="";function func(e){return typeof e===RAW_FUNCTION}function indexOf(e,t,r){return e.indexOf(t,r!==UNDEFINED?r:0)}function has(e,t){return indexOf(e,t)>=0}function toString(e,t){return e!=NULL&&e.toString?e.toString():t!==UNDEFINED?t:EMPTY_STRING}function isNative(e){return func(e)&&has(toString(e),"[native code]")}typeof setImmediate===RAW_FUNCTION&&isNative(setImmediate)&&setImmediate,typeof MessageChannel===RAW_FUNCTION&&isNative(MessageChannel);const notGetTalkInterval=3e5;function handleTime(e){let t=new Date(e),r=new Date,i=t.getMonth()+1<10?"0"+(t.getMonth()+1):t.getMonth()+1,s=t.getDate()<10?"0"+t.getDate():t.getDate(),o=t.getHours()<10?"0"+t.getHours():t.getHours(),n=t.getMinutes()<10?"0"+t.getMinutes():t.getMinutes();return r.setHours(0,0,0,0)==t.setHours(0,0,0,0)?o+":"+n:i+"月"+s+"日 "+o+":"+n}function sortUsers(e){return e.sort(((e,t)=>e.sortNum===MODEL_SORT_ENUM_STAND.RAISE_HAND&&t.sortNum===MODEL_SORT_ENUM_STAND.RAISE_HAND?e.raiseHandTime-t.raiseHandTime:e.sortNum===t.sortNum?e.nickName.localeCompare(t.nickName):e.sortNum-t.sortNum))}function sortStreamModels(e){return e.sort(((e,t)=>e.sortNum!==t.sortNum?t.sortNum-e.sortNum:e.sortNum===t.sortNum?e.getUser().nickName.localeCompare(t.getUser().nickName):Number(e.getUser().isCommonUser)-Number(t.getUser().isCommonUser)))}function getIsCommonUser(e){return!getPermission(e,"s")}function getHasAudio(e){return getPermission(e,"a")}function getHasVideo(e){return getPermission(e,"v")}function getIsManager(e){return getPermission(e,"m")}function getIsMaster(e){return getPermission(e,"o")}function getPermission(e,t){return e.toLowerCase().includes(t)}function isH5(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|MicroMessenger/i.test(navigator.userAgent)}class BMUser{constructor(e,t=!1){var r;this.audienceEnableSpeaking=!1,this.streamModels=new Map,this.sortNum=100,this.raiseVideoHands=!1,this.raiseAudioHands=!1,this.raiseHand=!1,this.isAudience=!1,this.isCommonUser=!1,this.inBackground=!1,this.isCalling=!1,this.raiseHandTime=0,this.signals=[],this.userId=e.userId,this.userInfo=e.userInfo,this.nickName=e.nickname,this.isMaster=!!e.isMaster,this.isManager=!!e.isManager,this.isToupingma=!!e.isToupingma,this.isLocal=t,this.hasMultiple=!!e.hasMultiple,this.isCreate=!!e.isCreate,this.hasShare=!!e.hasShare,this.avatar=null===(r=e.userInfo)||void 0===r?void 0:r.avatar,this.permission=e.permission,this.raiseAudioHands=!!e.raiseAudioHands,this.raiseVideoHands=!!e.raiseVideoHands,this.raiseHand=!!e.raiseHand,this.isAudience=!!e.isAudience,this.isCommonUser=!!e.isCommonUser,this.inBackground=!!e.inBackground,this.isCalling=!!e.isCalling,this.signals=e.signals,e.permission&&(this.audienceEnableSpeaking=getHasAudio(e.permission.permission)),this.raiseHandTime=e.raiseHandTime||0;const i={operation:"none",user:this};this.watcher=new BehaviorSubject(i),this.updateSortNum(!1),this.customInfo=e.customInfo}get isWeb(){return!(!this.userInfo.pos||!this.userInfo.pos.includes("web")&&!this.userInfo.pos.includes("pc"))}get isMobile(){return!(!this.userInfo.pos||!this.userInfo.pos.includes("web"))}setup(e,t,r,i){this.isLocal=!0,this.userId=e,this.userInfo=t,this.nickName=r||t.nickname,this.avatar=t.avatar,i&&i.signals&&(this.signals=i.signals),this.customInfo=i}getMainStreamModel(){return this.streamModels.get(this.userId)}get nickname(){return this.nickName}getShareStreamModel(){return this.streamModels.get(`${this.userId}${STREAM_SUFFIX_SCREEN}`)}get audioEnable(){const e=this.getMainStreamModel();return!!e&&e._audio_enable}get isMixer(){return this.userId.includes("-mixer-")}get videoEnable(){const e=this.getMainStreamModel();return!!e&&e._video_enable}get isSharing(){let e=!1;for(let t of this.streamModels.values())if(t.isShare){e=!0;break}return e}get isSignal(){var e;return!!(null===(e=this.userId)||void 0===e?void 0:e.startsWith(SIGNAL_SUFFIX))}checkLocalHasMaster(){return this.isMaster||this.isManager}addStream(e,t){this.streamModels.set(e,t),this.watcher.next({operation:"changeShare",user:this})}removeStream(e){this.streamModels.delete(e),e.includes(STREAM_SUFFIX_SCREEN)&&(info("删除的是共享屏幕的流:","","",["streamId =>",e]),setTimeout((()=>{this.watcher.next({operation:"changeShare",user:this})}),400))}getID(){return this.userId}getNickName(){return this.nickName}getUserInfo(){return this.userInfo}getStreams(){return this.streamModels}updateUserInfo(e,t={},r){var i,s;const o=null===(i=null==t?void 0:t.params)||void 0===i?void 0:i.customInfo,n=(null==o?void 0:o.updateKeys)||[];this.customInfo=o;let a=!1,u="none";if(info("updateUserInfo =>","updateUser",e.userId,["updateKeys",n.toString(),"permission",null===(s=e.permission)||void 0===s?void 0:s.permission,"isMaster =>",this.isMaster,"isManager =>",this.isManager]),this.nickName!==e.nickname&&(u="changeNickName"),this.isMaster||!this.isManager||e.permission.getManage()||(u="removeManager",this.isManager=!1),this.isMaster||this.isManager||!e.permission.getManage()||-1!=n.indexOf("changeMaster")||(u="getManager",this.isManager=!0),e.userinfo.pos)this.userInfo=e.userinfo;else{const t=this.userInfo.pos;this.userInfo=e.userinfo,this.userInfo.pos=t}(n.includes("changeMaster")||n.includes("permission"))&&(e.permission=t.getPermission()),n.includes("raiseHandsAudio")&&(this.raiseAudioHands=o.raiseHandsAudio,u="raiseHandsAudio",BoomEmitter.emitter.emit(RAISE_HAND,{status:"raiseHandsAudio",user:this}),a=!0),n.includes("raiseHandsVideo")&&(this.raiseVideoHands=o.raiseHandsVideo,u="raiseHandsVideo",BoomEmitter.emitter.emit(RAISE_HAND,{status:"raiseHandsVideo",user:this}),a=!0),n.includes("raiseHand")&&(this.raiseHand=o.raiseHand,this.raiseHandTime=o.raiseHandTime,u="raiseHand",BoomEmitter.emitter.emit(RAISE_HAND,{status:"raiseHand",user:this}),a=!0),1!==r.conferenceMode&&this.isAudience&&n.includes("permission")&&(-1!==(null==o?void 0:o.permission.indexOf("A"))&&(r.enableAudienceSpeakingWatcher.next(!0),this.audienceEnableSpeaking=!0,u="audienceEnableSpeaking",this.isLocal&&r.bmLiveVM.handleAudienceEnable()),-1===(null==o?void 0:o.permission.indexOf("A"))&&(r.enableAudienceSpeakingWatcher.next(!1),this.audienceEnableSpeaking=!1,u="audienceEnableSpeaking",this.isLocal&&r.bmLiveVM.handleAudienceDisable())),n.includes("inBackground")&&(u="inBackground",this.inBackground=o.inBackground),n.includes("isCalling")&&(u="isCalling",this.isCalling=o.isCalling),this.nickName=e.nickname,this.permission=e.permission;let l=!this.isCommonUser;this.isCommonUser=!e.permission.getSubscribe(),l!==!this.isCommonUser&&(info(`身份有发生过变化,从${l?"嘉宾":"普通参会者"} => ${this.isCommonUser?"普通参会者":"嘉宾"}`),BoomEmitter.emitter.emit(CHANG_IS_GUEST,{user:this,isGuest:!this.isCommonUser,preIsGuest:l})),u&&this.watcher.next({operation:u,user:this}),(!a||a&&!this.isLocal)&&this.updateSortNum(!0)}hasManager(){return this.isManager||this.isMaster}getNicknameSuffix(){let e="";return this.isLocal&&this.isMaster?e="(我、主持人)":this.isLocal&&this.isManager?e="(我、联席主持人)":this.isLocal?e="(我)":this.isMaster?e="(主持人)":this.isManager?e="(联席主持人)":this.isSharing&&!this.isToupingma?e="的共享屏幕":this.isSharing&&this.isToupingma&&(e="(仅共享屏幕)"),e}updateSortNum(e=!0,t=!1){let r=getSortNum(this);this.setSortNum(r,e,t)}setSortNum(e,t,r){(this.sortNum!==e||t)&&(this.sortNum=e,t&&BoomEmitter.emitter.emit(USER_SORT_NUM_CHANGE,{isCommon:this.isCommonUser,isAudience:this.isAudience,shouldDelay:r}))}}function sleep(e){return new Promise((t=>setTimeout(t,e)))}const ignoreUserId=["-mixer-","-rtmpmixer-","record#","robot_","stt_"],BLOUD_PAGE_SIZE=500,PERMISSION_NOT_COMMON="RWPSAVMO,RWPSAVM,RWPSAV,RWPSA";class BMUserVM{constructor(e,t,r){this.userList=new Map,this.audiencesList=new Map,this.signalList=new Map,this.commonUserList=new Map,this.userListWatcher=new BehaviorSubject(Array.from(this.userList.values())),this.audiencesListWatcher=new BehaviorSubject(Array.from(this.audiencesList.values())),this.commonUserListWatcher=new BehaviorSubject(Array.from(this.commonUserList.values())),this.signalListWatcher=new BehaviorSubject(Array.from(this.signalList.values())),this.masterUserWatcher=new BehaviorSubject(null),this.getForceUserWatcher=new BehaviorSubject(!1),this.commTimer=200,this.addBCUser=(e,t=!1,r=!1)=>{var i;const s=this.addUser(e);if(this.room.isWorkShop&&!getHasAudio(e.permission.permission))return void console.log("研讨会, 观众先不创建窗口");this.room.bmStreamVm.streamModels.get(e.userId)||this.room.bmStreamVm.createStreamModel(s);{const r=this.room.bmStreamVm.streamModels.get(e.userId);r&&(e.stream.size?e.stream.forEach((i=>__awaiter(this,void 0,void 0,(function*(){var o,n,a;const{video_enable:u,audio_enable:l,customInfo:c}=i;if(i.screen){s.hasShare=!0,this.room.bmStreamVm.shareBloudStateMap.set(e.userId,{audio:l,video:u,customInfo:c,userId:e.userId,streamId:i.getID(),isScreen:!0});const a={id:r.userId,isScreen:!0,isWeb:r.isWeb};t?yield null===(o=this.room)||void 0===o?void 0:o.processUser(a):null===(n=this.room)||void 0===n||n.addUser2Queue(a)}else if(r&&(r.updateBloudStream({video:u,audio:l,isScreen:i.screen,customInfo:c},this.room.bmStreamVm),t)){const e={id:r.userId,isScreen:!1,isWeb:r.isWeb};null===(a=this.room)||void 0===a||a.processUser(e)}})))):(r.bloudStream&&r.updateBloudStream(void 0,this.room.bmStreamVm),null===(i=this.room)||void 0===i||i.bmStreamVm.removeShareStreamModelByUId(e.userId)))}return s&&s.isMaster&&this.masterUserWatcher.next(s),null==s||s.updateSortNum(r),s},this.updateAllSort=()=>{this.updateUserSort(),this.updateCommonUserSort(),this.updateAudienceUserSort(),this.updateSignalUserSort()},this.updateSortByType=e=>{var t,r;(null===(t=this.room)||void 0===t?void 0:t.isSingleColumns)||e.isCommon?(null===(r=this.room)||void 0===r?void 0:r.isBig)&&e.shouldDelay?this.updateDelayCommonUserSort():this.updateCommonUserSort():(e.isAudience?this.updateAudienceUserSort():this.updateUserSort(),this.updateSignalUserSort())},this.updateUserSort=debounce((()=>{const e=this.sortUsers();this.userListWatcher.next(BMUserVM.filterUsers(e))}),200,{maxWait:1e3}),this.updateCommonUserSort=debounce((()=>{const e=this.sortCommonUsers();this.commonUserListWatcher.next(BMUserVM.filterUsers(e))}),this.commTimer,{maxWait:12e3}),this.updateDelayCommonUserSort=debounce((()=>{const e=this.sortCommonUsers();this.commonUserListWatcher.next(BMUserVM.filterUsers(e))}),12e4,{maxWait:12e4}),this.updateAudienceUserSort=debounce((()=>{const e=this.sortAudiences();this.audiencesListWatcher.next(BMUserVM.filterUsers(e))}),200,{maxWait:1e3}),this.updateSignalUserSort=()=>{const e=this.sortSignalUsers();this.signalListWatcher.next(e)},this.transBloudUsers=(e,t="",r=!1,i=0)=>__awaiter(this,void 0,void 0,(function*(){const s=new Map;yield this.getAllUsers(e,s,t,r).catch((()=>i<3?(error$1("get bloud user error, retry"),i+=1,void this.transBloudUsers(e,t,r,i)):void error$1("get current page of bloud users after 10 times final failed","","",[" page ",e," permission ",t]))),yield this.initUserList(s),s.clear();let o=[];for(let e of this.userList.values())(e.raiseVideoHands||e.raiseAudioHands||e.raiseHand)&&o.push(e);for(let e of this.commonUserList.values())(e.raiseVideoHands||e.raiseAudioHands||e.raiseHand)&&o.push(e);for(let e of this.commonUserList.values())(e.raiseVideoHands||e.raiseAudioHands)&&o.push(e);this.room.roomInfo.setRaiseHandsList(o),this.updateAllSort(),this.room.bmStreamVm.updateModelSort()})),this.boomCore=e,this.localUser=t,this.room=r,BoomEmitter.emitter||error$1("init boom emitter error"),BoomEmitter.emitter.on(CHANG_IS_GUEST,this.handleUserRoleChange.bind(this)),BoomEmitter.emitter.on(USER_SORT_NUM_CHANGE,this.updateSortByType)}handleUserRoleChange(e){var t,r,i;return __awaiter(this,void 0,void 0,(function*(){const{user:s,isGuest:o,preIsGuest:n}=e,a=null===(t=this.room)||void 0===t?void 0:t.roomInfo.isBigRoom;info("handleUserRoleChange","",s.userId,["isGuest =>",o,"preIsGuest =>",n,"isBigRoom =>",a]);if(1===(null===(r=this.room)||void 0===r?void 0:r.userListColumns)||(n?this.userList.delete(s.userId):this.commonUserList.delete(s.userId),o?this.userList.set(s.userId,s):this.commonUserList.set(s.userId,s)),a)if(o)s.isLocal&&(yield this.initUsers());else{const e=null===(i=this.room)||void 0===i?void 0:i.getLocalParticipant().isCommonUser;if(s.isLocal&&(this.handleUnSubCommonUser(),this.handleCommonUserChange(),this.commonUserList.set(s.userId,s)),e){const e=s.getMainStreamModel();e&&e.unSubscribeStream(),s.isLocal||this.commonUserList.delete(s.userId)}}this.updateAllSort()}))}addUser(e){var t;const r=this.getUser(e.userId);if(r)return info("该用户已经加入房间",LOGGER_TAG_CLIENT,e.userId),this.updateUser(r,e),r;let i;return this.boomCore.userId==e.userId?(this.updateUser(this.localUser,e),i=this.localUser):i=this.toBMUser(e),1===(null===(t=this.room)||void 0===t?void 0:t.userListColumns)?this.commonUserList.set(i.userId,i):i.isAudience?this.audiencesList.set(i.userId,i):i.isSignal?this.signalList.set(i.userId,i):i.isCommonUser?this.commonUserList.set(i.userId,i):this.userList.set(i.userId,i),i}removeUser(e){let t=this.userList.delete(e);return t||(t=this.signalList.delete(e)),t||(t=this.audiencesList.delete(e)),t||(t=this.commonUserList.delete(e)),t||warn("userList中未找到该用户, 移除无效",LOGGER_TAG_CLIENT,e),t}videoEnable(e){const t=this.getUser(e);if(t)return t.videoEnable;throw new BoomError(USER_NOT_EXIT,"用户不存在")}audioEnable(e){const t=this.getUser(e);if(t)return t.audioEnable;throw new BoomError(USER_NOT_EXIT,"用户不存在")}checkIsMaster(e){if(!e)return!1;const t=this.boomCore.getMaster();return!!t&&t===e}checkLocalHasMaster(){return this.localUser.isMaster||this.localUser.isManager}checkUserHasMaster(e){const t=this.userList.get(e);return!!t&&t.permission.getManage()}getUser(e){let t;return t=(null==e?void 0:e.startsWith(SIGNAL_SUFFIX))?this.signalList.get(e):this.userList.get(e),t||(t=this.commonUserList.get(e)),t||(t=this.audiencesList.get(e)),t}getAllUsers(e,t,r="",i=!1){return __awaiter(this,void 0,void 0,(function*(){let s;if(i){let{users:t,total:i}=yield this.boomCore.getUsersList(e,r,BLOUD_PAGE_SIZE);s=t}else{let{users:t,total:i}=yield this.boomCore.getUsers(e,r,BLOUD_PAGE_SIZE);s=t}s.forEach((e=>{t.set(e.userId,e)}))}))}initUserList(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){const i=e.get(this.localUser.userId);if(i){const e=this.addUser(i);if(!(null===(t=this.room)||void 0===t?void 0:t.bmStreamVm.getStreamModelByUId(i.userId))){const e=this.getUser(i.userId);e?null===(r=this.room)||void 0===r||r.bmStreamVm.createStreamModel(e):error$1("there is no local streamModel exits, and create failed!!!")}(null==e?void 0:e.isMaster)&&this.masterUserWatcher.next(e)}e.delete(this.localUser.userId),e&&e.size>0&&this.addBcUsersMap(e)}))}addBcUsersMap(e,t=!1,r=!1){e.forEach((e=>{this.addBCUser(e,t,r)}))}updateMaster(e,t,r){const i=this.getUser(e);i&&(i.isManager&&(i.isManager=!1),i.isMaster=!0,i.updateSortNum());const s=this.getUser(t);return s&&(s.isMaster=!1,r&&(s.isManager=!0),s.updateSortNum()),i||s||error$1("未找到该用户, updateMaster未生效",LOGGER_TAG_CLIENT,e,["masterId => ",e,"oldMasterId => ",t]),{master:i,oldMaster:s}}managerChangeToGuest(e){const t=this.getUser(e);return t?t.isManager?(t.permission.setManage(!1),t.permission.setSubscribe(!0),this.boomCore.updateUser(e,{customInfo:{permission:t.permission.get()}}),t.watcher.next({operation:"getGuest",user:t}),this.updateAllSort()):error$1("该用户不是管理员,无法设置为嘉宾",LOGGER_TAG_CLIENT,e):error$1("未找到该用户, managerChangeToGuest未生效",LOGGER_TAG_CLIENT,e),t}updateManager(e,t,r=!0){const i=this.getUser(e);return i?(i.permission.setManage(t),r?i.permission.setSubscribe(!0):i.permission.setSubscribe(t),this.boomCore.updateUser(e,{customInfo:{permission:i.permission.get()}}),i.watcher.next({operation:t?"getManager":"removeManager",user:i}),this.updateAllSort()):error$1("userList中未找到该用户, updateManager未生效",LOGGER_TAG_CLIENT,e),i}getLocalUser(){return this.localUser}updateUser(e,t){var r,i,s,o,n,a,u,l;const c=this.checkIsMaster(t.userId),d=((null===(r=t.permission)||void 0===r?void 0:r.getManage())||getIsManager(null===(i=t.permission)||void 0===i?void 0:i.permission))&&!((null===(s=t.permission)||void 0===s?void 0:s.getOwn())||getIsMaster(null===(o=t.permission)||void 0===o?void 0:o.permission));let h="none";const m=e.isMaster;e.isManager!==d&&(h=d?"getManager":"removeManager"),"none"!==h&&setTimeout((()=>{e.watcher.next({operation:h,user:e})}),10),m!==c&&(h=c?"getMaster":"removeMaster"),"none"!==h&&setTimeout((()=>{e.watcher.next({operation:h,user:e})}),100);const p=e.raiseHand,f=t.customInfo.raiseHand;p!==f&&(!f&&p&&this.room.roomInfo.removeSimpleRaiseHandUser(e.userId),setTimeout((()=>{e.watcher.next({operation:"raiseHand",user:e})}),300));const g=e.raiseVideoHands,v=t.customInfo.raiseHandsVideo;g!==v&&(!v&&g&&this.room.roomInfo.removeVideoRaiseHandUser(e.userId),setTimeout((()=>{e.watcher.next({operation:"raiseHandsVideo",user:e})}),300));const y=e.raiseAudioHands,b=t.customInfo.raiseHandsAudio;y!==b&&(!b&&y&&this.room.roomInfo.removeRaiseHandUser(e.userId),setTimeout((()=>{e.watcher.next({operation:"raiseHandsAudio",user:e})}),300));if(e.nickname!==t.nickname&&setTimeout((()=>{e.watcher.next({operation:"changeNickName",user:e})}),300),e.isAudience){e.audienceEnableSpeaking!==t.permission.getAudio()&&setTimeout((()=>{e.watcher.next({operation:"audienceEnableSpeaking",user:e})}),300)}e.userInfo=t.userinfo,e.nickName=t.nickname,e.userId=t.userId,e.permission=t.permission,e.avatar=t.userinfo.avatar,e.isToupingma=t.userinfo.pos.includes("_toupingma"),e.raiseHand=f,e.isMaster=c,e.isCreate=this.boomCore.getCreator()===t.userId,e.isAudience=!t.permission.getVideo(),e.isCommonUser=!t.permission.getSubscribe(),e.isManager=d,e.inBackground=!!(null===(n=null==t?void 0:t.customInfo)||void 0===n?void 0:n.inBackground),e.isCalling=!!(null===(a=null==t?void 0:t.customInfo)||void 0===a?void 0:a.isCalling),(null===(u=t.customInfo)||void 0===u?void 0:u.signals)&&(e.signals=null===(l=null==t?void 0:t.customInfo)||void 0===l?void 0:l.signals),e.isAudience&&(e.audienceEnableSpeaking=t.permission.getAudio()),e.updateSortNum()}updateLocalUserPermission(e){const t=this.getLocalUser();t.isMaster=getIsMaster(e),t.isManager=!getIsMaster(e)&&getIsManager(e),t.isCommonUser=getIsCommonUser(e),t.isAudience=!getHasVideo(e),t.watcher.next({operation:"none",user:t})}toBMUser(e){var t,r;let i={};i.userInfo=e.userinfo,i.nickname=e.nickname,i.userId=e.userId,i.streamModels=[],i.permission=e.permission,i.stream=e.stream,i.isToupingma=!(!e.userinfo.pos||!e.userinfo.pos.includes("_toupingma")),i.isMaster=this.checkIsMaster(i.userId),i.isAudience=!e.permission.getVideo(),i.isCommonUser=!e.permission.getSubscribe()||getIsCommonUser(e.permission.permission),i.isAudience=!getHasVideo(e.permission.permission),i.raiseAudioHands=e.customInfo.raiseHandsAudio,i.raiseVideoHands=e.customInfo.raiseHandsVideo,i.raiseHand=e.customInfo.raiseHand,i.raiseHandTime=e.customInfo.raiseHandTime,i.inBackground=e.customInfo.inBackground,i.isCalling=e.customInfo.isCalling,i.customInfo=e.customInfo,i.isCreate=this.boomCore.getCreator()===e.userId,i.signals=e.customInfo.signals;let s=this.boomCore.getLocalParticipant();if(!s)throw new BoomError(INVALID_PARAMETER,"BCUserVM addUser时未找到本地用户");return s.getID()==i.userId&&(i.isLocal=!0),!(null===(t=i.permission)||void 0===t?void 0:t.getManage())&&!getIsManager(null===(r=i.permission)||void 0===r?void 0:r.permission)||i.isMaster||(i.isManager=!0),new BMUser(i,i.isLocal)}sortUsers(){return sortUsers(Array.from(this.userList.values()))}sortAudiences(){return sortUsers(Array.from(this.audiencesList.values()))}sortCommonUsers(){return sortUsers(Array.from(this.commonUserList.values()))}sortSignalUsers(){return sortUsers(Array.from(this.signalList.values()))}static filterUsers(e){return e.filter((e=>!ignoreUserId.some((t=>e.userId.includes(t)))))}initUsers(){var e;return __awaiter(this,void 0,void 0,(function*(){const t=yield this.getTotalUserNumber();info(`initUsers total users num: ${t}`);const r=Math.ceil(t/BLOUD_PAGE_SIZE);let i=0;const s=[],o=e=>__awaiter(this,void 0,void 0,(function*(){e<r&&(yield this.transBloudUsers(e-1))})),n=e=>__awaiter(this,void 0,void 0,(function*(){for(const t of e)yield t(),yield sleep(50)}));if(this.localUser.isCommonUser&&(null===(e=this.room)||void 0===e?void 0:e.isBig))this.commonUserList.set(this.localUser.userId,this.localUser),yield this.transBloudUsers(-1,PERMISSION_NOT_COMMON,!0);else if(2===this.room.conferenceMode)this.room.localIsAudience&&this.audiencesList.set(this.localUser.userId,this.localUser),yield this.transBloudUsers(-1,PERMISSION_NOT_COMMON,!0);else{for(;i<r;)s.push(o.bind(null,i)),i+=1;n(s)}}))}handleUnSubCommonUser(){this.commonUserList.forEach((e=>{const t=e.getMainStreamModel();(null==t?void 0:t.hasPulled)&&t.unSubscribeStream()}))}handleCommonUserChange(){let e=new Map;this.room.bmStreamVm.streamModels.forEach((t=>{t.getUser().isCommonUser&&!t.isLocal||e.set(t.userId,t)})),this.room.bmStreamVm.streamModels=e,this.commonUserList.clear()}getUsers(e,t,r="RWPAV",i="array"){return __awaiter(this,void 0,void 0,(function*(){const{users:s,total:o}=yield this.boomCore.getUsers(e,r,t);if("map"===i){const e=new Map;return s.forEach((t=>{const r=this.toBMUser(t);e.set(r.userId,r)})),{userList:e,total:o}}{const e=[];return s.forEach((t=>{const r=this.toBMUser(t);e.push(r)})),{userList:e,total:o}}}))}getUsersList(e,t,r="",i=!1){var s,o;return __awaiter(this,void 0,void 0,(function*(){const{users:n,total:a,pageIndex:u}=yield this.boomCore.getUsersList(e,r,t,i),l=[];return n.forEach((e=>{const t=this.toBMUser(e);l.push(t)})),i&&(null===(s=this.room)||void 0===s?void 0:s.roomInfo.totalWaitRoomUserWatcher.value)!==a&&(null===(o=this.room)||void 0===o||o.roomInfo.totalWaitRoomUserWatcher.next(a)),{userList:l,total:a,pageIndex:u}}))}getTotalUserNumber(){return __awaiter(this,void 0,void 0,(function*(){const e=()=>__awaiter(this,void 0,void 0,(function*(){const{total:e}=yield this.boomCore.getUsers(0,"",1);return e})),t=r=>{e().then((e=>{r(e)})).catch((e=>{error$1("getTotalUserNumber error","","",[JSON.stringify(e)]),t(r)}))};return new Promise(((e,r)=>__awaiter(this,void 0,void 0,(function*(){t(e)}))))}))}clearUsers(){this.userList.clear(),this.commonUserList.clear(),this.audiencesList.clear(),this.signalList.clear()}searchUsers(e,t){return __awaiter(this,void 0,void 0,(function*(){try{const{users:r}=yield this.boomCore.searchUsers(e,t,!1);let i=[],s=[],o=[];return r.forEach((e=>{const t=this.userList.get(e.userId);if(t)return void i.push(t);const r=this.commonUserList.get(e.userId);if(r)return void s.push(r);const n=this.audiencesList.get(e.userId);if(n)o.push(n);else{const t=this.toBMUser(e);o.push(t)}})),{userList:i,commonUserList:s,audienceList:o}}catch(e){return Promise.reject(new BoomError(LOCAL_ERROR,"boomCore.searchUsers发生错误:"+(null==e?void 0:e.message)))}}))}searchWaitRoomUsers(e,t){return __awaiter(this,void 0,void 0,(function*(){try{const{users:r}=yield this.boomCore.searchUsers(e,t,!0),i=[];return r.forEach((e=>{const t=this.toBMUser(e);i.push(t)})),i}catch(e){return Promise.reject(new BoomError(LOCAL_ERROR,"search wait room users error"))}}))}}class BMMessageInfo{constructor(e){this.isMeetingNotice=!1,this.isEmoji=!1,this.userId=e.userId,this.message=e.message,this.role=e.role,this.isLocal=e.isLocal,this.avatar=e.avatar,this.nickName=e.nickName,this.to=e.to,this.isDanger=e.isDanger,this.seq=e.seq,this.failed=e.failed;let t=!1;e.isMeetingNotice&&(t=!0),this.isMeetingNotice=t,e.sendTime?(this.timeStamp=e.sendTime,this.time=handleTime(this.timeStamp)):(this.timeStamp=(new Date).getTime(),this.time=handleTime(this.timeStamp));const r=this.message.match(/^\[(.*?)\]$/);this.isEmoji=null!==r&&r[0].length<=20&&r[0].length>=4}}function isShareStream(e){const t=e.getStreamId();return e.getUserId().toString().endsWith(STREAM_SUFFIX_SCREEN)||t.startsWith(MOBILE_STREAM_SUFFIX_SCREEN)||e.getType&&"assist"===e.getType()}function handleBloudReconnectStreamEvent(e){var t,r;const i=e.getLocalStreamModel();if(i&&!(null==i?void 0:i.stream))e.bloudStream&&(info("brtc 已经没有流了,bloud 的流要取消掉"),e.bloudStream.unpublish(),i.updateBloudStream(void 0,e),e.bloudStream=null);else if(i&&i.stream){info("brtc 流已经重推上去了,bloud要重新发推流的逻辑");const t=i.stream.getAudioOn(),r=i.stream.getVideoOn();e.publishBloudStream(t,r).then((()=>{var s;info("brtc stream repub success bloud repub success, notify reconnect success"),e.localStreamConnectErrorWatcher.next(dist$4.BMStreamReconnectSuccess(t,r)),null===(s=i.player)||void 0===s||s.destroy(),i.player=null,i.isInBig&&i.playInBig()}))}if(e.localIsShare){info("brtc has share stream, and bloud need to republish share stream");const i=null===(t=e.room)||void 0===t?void 0:t.boomCore.shareScreenStream;if(i){const t=i.getAudioOn(),s=i.getVideoOn();try{null===(r=e.room)||void 0===r||r.boomCore.createAndPubBloudShareStream(t,s)}catch(e){error$1("bloud 共享屏幕流,断网重连重推流失败")}}}}const handleReconnectedStream=debounce((e=>{if(e.networkState.bloud&&e.networkState.brtc)try{e.streamQueue.restart()}catch(e){error$1("streamQueue restart error",JSON.stringify(e))}}),300);function handleStreamPublished(e,t,r,i){const s=e.stream;if(info("本地推流","本地推流",s.getUserId()),s){const e=t.getLocalStreamModel();if(e&&t.updateStreamModel(e,s),i[dist$4.BrtcEvents.STREAM_PUBLISHED].next({published:!0,model:e}),1===r.conferenceMode){r.getLocalParticipant().isAudience&&t.getStreamModels().forEach((e=>{e.sendMessage2Room()}))}}else i[dist$4.BrtcEvents.STREAM_PUBLISHED].next({published:!1})}function handleBloudStreamPublished(e,t,r){info("bloud publish stream"),handleBloudStreamPubAUpdate(e,t,!0),r[dist$4.BloudEvents.STREAM_PUBLISHED].next(e)}function handleBloudStreamPubAUpdate(e,t,r=!1){var i,s;info("bloud stream update","","",[JSON.stringify(e)]);const o=e.userId,n=e.isScreen,a=t.streamModels.get(o);if(a)if(n){t.shareBloudStateMap.set(o,e);const r=null===(i=t.room)||void 0===i?void 0:i.userVM.getUser(o);r&&(r.hasShare=!0);const u={id:o,isWeb:a.isWeb,isScreen:n};null===(s=t.room)||void 0===s||s.addUser2Queue(u)}else a.updateBloudStream(e,t,r),a.getUser().updateSortNum();else error$1("bloud stream update, but can not get streamModel","",o)}function handleBloudStreamUnPublished(e,t,r){info("bloud unpublish stream","","",[JSON.stringify(e)]),handleBloudStreamUnpublish(e,t),r[dist$4.BloudEvents.STREAM_REMOVED].next(e)}function handleBloudStreamUpdated(e,t,r){info("bloud stream update","","",[JSON.stringify(e)]);const i=e.streamId,s=e.userId,o=e.params.customInfo;let n;n=i.includes("_screen")?t.shareStreamModels.get(s):t.streamModels.get(s),n?n.updateBloudCustomInfo(o):error$1("bloud stream update, but can not get streamModel","",s,["streamId =>",i]),r[dist$4.BloudEvents.UPDATE_STREAM].next(e)}function handleBloudStreamUnpublish(e,t){var r,i,s,o;const n=e.userId;if(e.isScreen){const e=t.shareStreamModels.get(n),r=null===(s=t.room)||void 0===s?void 0:s.userVM.getUser(n);if(r&&(r.hasShare=!1),e){const r=e.stream;r?(r.destroy(),t.remoteStreamUnpublished(r)):t.removeShareStreamModelByUId(n);const i={id:n,isWeb:e.isWeb,isScreen:!0};null===(o=t.room)||void 0===o||o.streamQueue.removeUser(i)}else warn("bloud user unpublish share stream but can not get streamModel","",n)}else{const e=t.streamModels.get(n);if(e){e.updateBloudStream(void 0,t);const s=e.stream;s&&(null===(r=t.room.audioPlayer)||void 0===r||r.removeStream(s),t.remoteStreamUnpublished(s),s.destroy());const o={id:n,isWeb:e.isWeb,isScreen:!1};null===(i=t.room)||void 0===i||i.streamQueue.removeUser(o)}else warn("bloud user unpublish stream but can not get streamModel","",n)}}function handleRepublishLocalShare(e,t){setTimeout((()=>__awaiter(this,void 0,void 0,(function*(){info("handle republish share stream");try{const r=e.boomCore.shareScreenStream;if(r){const i=r.getAudioOn(),s=r.getVideoOn();if(yield e.boomCore.shareBrtcClient.publish(r),yield e.boomCore.createAndPubBloudShareStream(i,s),Object.keys(t.localShareCustomStats).length){const e=t.localModel.userId;yield t.updateBloudStreamCustomStats(e,`${e}_screen`,t.localShareCustomStats)}info("handle republish share stream success"),t.localShareError.next(dist$4.BMShareStreamReconnectSuccess())}else warn("no share stream exist, unpublish share stream, to prevent share stream state error"),t.toggleShareScreen(!1,void 0)}catch(e){error$1("handle republish share stream failed , now unpublish"),t.localShareError.next(dist$4.BMShareStreamReconnectFailed()),yield t.toggleShareScreen(!1,void 0)}}))),1e3)}function setupRoomInfo(e,t,r){const i=e.permission,s=e.total;i&&r.updateLocalUserPermission(i),t.isInWaitRoom=e.joinwait;const o=e.waitroom;t.roomInfo.isOpenWaitRoom.next(o),t.roomInfo.totalUserWatcher.next(s);const n=e.audiooff,a=e.selfopenaudio;n===t.roomInfo.audioOff&&a===t.roomInfo.selfopenaudio||null!=n&&null!=a&&t.roomInfo.setAudioOff(n,a)}function handleRoomConnected(e,t,r,i,s=!0){var o;return __awaiter(this,void 0,void 0,(function*(){info("room-connected",t.getLocalParticipant().userId,"room-connected",["roomId =>",t.roomInfo.roomID," local permission => ",e.permission]),t.forceId=null===(o=e.customStats.forceOn)||void 0===o?void 0:o.user,handleInitRoomInfo(e,t),setupRoomInfo(e,t,r),s&&i[dist$4.BloudEvents.ROOM_CONNECTED].next(e)}))}function handleInitJoinRoomUsers(e){return __awaiter(this,void 0,void 0,(function*(){if(info("join ready init users"),!e.isInWaitRoom)if(e.forceId&&(yield e.getForceUser(e.forceId)),yield e.userVM.initUsers(),e.localUser.isAudience)e.queryBloudUsers([e.localUser.userId]);else{const{audioEnable:t,videoEnable:r}=e.roomInfo.originJoinRoomParams;if(e.localUser.userId.startsWith("robot_"))return;info(`join ready:audioEnable:${t}, videoEnable:${r}`),t||r||e.bmStreamVm.onlyBrtcPublish().catch((t=>{info("only-brtc-pub ","publish",e.localUser.userId,[t.message])}))}}))}function handleRoomUpdated(e,t){info("update-stats "," ","",["options => ",JSON.stringify(e.options)]),e.options&&"audiooff"==e.options[0]||"selfopenaudio"==e.options[1]?t.roomInfo.setAudioOff(e.room.audiooff,e.room.selfopenaudio):e.options&&"lock"==e.options[0]?t.roomInfo.setlock(e.room.lock):e.options&&"waitroom"==e.options[0]&&t.roomInfo.isOpenWaitRoom.next(e.stats.waitroom)}function handleInitRoomInfo(e,t){t.roomInfo.msgSeq=e.msgSeq,e.customStats&&t.roomInfo.initCustomStats(e.customStats)}function exitUserUpdateStream(e,t,r,i,s){var o;e.updateUser(t,r);const n=r.stream,a=i.streamModels.get(t.userId);if(a||error$1("bmUserVM中存在该用户,但是bmStreamModelVM中不存在该用户,佛了"),!n.size){(null==a?void 0:a.bloudStream)&&(a.updateBloudStream(void 0,i),s.streamQueue.removeUser({id:t.userId,isScreen:!1}),s.streamQueue.removeUser({id:t.userId,isScreen:!0}));const e=i.shareStreamModels.get(t.userId);if(e&&!e.isLocal){try{null===(o=e.stream)||void 0===o||o.destroy()}catch(e){}i.removeShareStreamModel(e)}}n.get(`${t.userId}_screen`)&&s.addUser2Queue({id:t.userId,isScreen:!0,isWeb:t.isWeb});const u=n.get(t.userId);u&&(null==a||a.updateBloudStream({audio:u.audio_enable,video:u.video_enable,isScreen:!1},i))}function addUsers(e,t,r,i){e.isSingleColumns?t.commonUserList.forEach((s=>{const o=r.get(s.userId);if(o)return r.delete(s.userId),void exitUserUpdateStream(t,s,o,i,e);t.commonUserList.delete(s.userId),i.streamModels.delete(s.userId),i.shareStreamModels.delete(s.userId)})):t.userList.forEach((s=>{const o=r.get(s.userId);if(o)return exitUserUpdateStream(t,s,o,i,e),void(s.isCommonUser?t.userList.delete(s.userId):r.delete(s.userId));t.userList.delete(s.userId),i.streamModels.delete(s.userId),i.shareStreamModels.delete(s.userId)})),e.userVM.addBcUsersMap(r)}function handleRoomSync(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){const s=t.getLocalParticipant().userId,{users:o}=yield t.boomCore.queryUsers([s]),n=o.get(s);n&&r.updateUser(r.localUser,n);const a=t.getLocalParticipant().isCommonUser;if(t.isBig&&a){const{users:e}=yield t.boomCore.getUsersList(0,PERMISSION_NOT_COMMON,500);addUsers(t,r,e,i)}else{const e=(yield t.userVM.getTotalUserNumber())/BLOUD_PAGE_SIZE;let s=new Map;for(let r=0;r<e;r++){let{users:e}=yield t.boomCore.getUsers(r-1,"",BLOUD_PAGE_SIZE);e.forEach((e=>{s.set(e.userId,e)}))}addUsers(t,r,s,i)}handleInitRoomInfo(e,t),t.userVM.updateAllSort(),t.bmStreamVm.updateModelSort()}))}function handleBrtcRoomReconnecting(e,t,r){info("brtc room reconnecting"),t.networkState.brtc=!1,t.streamWSReconnectWatcher.next(!1),r[dist$4.BrtcEvents.BRTC_ROOM_ROCONNECTING].next(e)}function handleBrtcRoomReconnected(e,t,r){info("brtc room reconnected"),t.networkState.brtc=!0,handleReconnectedStream(t),r[dist$4.BrtcEvents.BRTC_ROOM_RECONNECTED].next(e)}function handleBloudRoomReconnecting(e,t,r){info("bloud room reconnecting"),t.networkState.bloud=!1,t.bloudWSReconnectWatcher.next(!1),r[dist$4.BloudEvents.RECONNECTING].next(e)}function handleBloudRoomReconnected(e,t,r){return __awaiter(this,void 0,void 0,(function*(){t.hasSyncPermission?(info("bloud room reconnected"),t.bloudWSReconnectWatcher.next(!1),r[dist$4.BloudEvents.MOVE_USER_ROOM].next(null),yield t.syncRoom().then((()=>{t.hasSyncPermission=!0,r[dist$4.BloudEvents.ROOM_CONNECTED].next(e)})).catch((e=>{error$1("sync room error",JSON.stringify(e));if(43===e.code)return t.hasSyncPermission=!1,void r[dist$4.BloudEvents.USER_REJOINED].next(e);t.hasSyncPermission=!1,r[dist$4.BloudEvents.TIMEOUT].next(e)}))):r[dist$4.BloudEvents.TIMEOUT].next(e)}))}function handleBloudRoomSync(e,t,r,i,s){return __awaiter(this,void 0,void 0,(function*(){info("bloud sync room completed"),setupRoomInfo(e,r,t),yield handleRoomSync(e,r,t,i),handleBloudReconnectStreamEvent(i),r.networkState.bloud=!0,handleReconnectedStream(r),r.bloudWSReconnectWatcher.next(!0),s[dist$4.BloudEvents.ROOM_SYNCED].next(e)}))}const{USER_REJOINED:USER_REJOINED,PARTICIPANT_JOINED:PARTICIPANT_JOINED,CHANGE_MASTER:CHANGE_MASTER,EVICTED:EVICTED,UPDATE_USER:UPDATE_USER,PARTICIPANT_LEFT:PARTICIPANT_LEFT,CUSTOM_MESSAGE:CUSTOM_MESSAGE,MOVE_USER_ROOM:MOVE_USER_ROOM}=dist$4.BloudEvents;function handleParticipantJoin(e,t,r,i,s,o){var n,a,u,l,c,d,h,m,p,f,g,v,y,b,S,_,E,$,I,A,M,R;const T=null===(a=null===(n=null==e?void 0:e.participant)||void 0===n?void 0:n.params)||void 0===a?void 0:a.info.sync,O=e.mode;e.user.userId,info("用户入会","用户入会",e.user.userId,["sync => ",T,"mode =>",O]);const C=t.room.isBig&&r.streamModels.size>1e3;let w=!1;if(T){let r=t.userList.get(e.user.userId);if(r||(r=t.commonUserList.get(e.user.userId)),r)return r.inBackground!=!!(null===(l=null===(u=e.user)||void 0===u?void 0:u.customInfo)||void 0===l?void 0:l.inBackground)&&(r.inBackground=!!(null===(d=null===(c=e.user)||void 0===c?void 0:c.customInfo)||void 0===d?void 0:d.inBackground),r.watcher.next({operation:"inBackground",user:r})),void(r.isCalling!=!!(null===(m=null===(h=e.user)||void 0===h?void 0:h.customInfo)||void 0===m?void 0:m.isCalling)&&(r.isCalling=!!(null===(f=null===(p=e.user)||void 0===p?void 0:p.customInfo)||void 0===f?void 0:f.isCalling),r.watcher.next({operation:"isCalling",user:r})))}if((null===(g=t.room)||void 0===g?void 0:g.isBig)&&1===O&&1===(null===(v=r.room)||void 0===v?void 0:v.conferenceMode)){if(getIsCommonUser(e.user.permission.permission)){t.userList.get(e.user.userId)&&(t.userList.delete(e.user.userId),r.streamModels.delete(e.user.userId),w=!0)}else{const i=t.commonUserList.get(e.user.userId);(null===(y=t.room)||void 0===y?void 0:y.isSingleColumns)||i&&(t.commonUserList.delete(e.user.userId),r.streamModels.delete(e.user.userId),w=!0)}}let B=t.addBCUser(e.user);if(B){B.inBackground!=!!(null===(S=null===(b=e.user)||void 0===b?void 0:b.customInfo)||void 0===S?void 0:S.inBackground)&&(B.inBackground=!!(null===(E=null===(_=e.user)||void 0===_?void 0:_.customInfo)||void 0===E?void 0:E.inBackground),B.watcher.next({operation:"inBackground",user:B})),B.isCalling!=!!(null===(I=null===($=e.user)||void 0===$?void 0:$.customInfo)||void 0===I?void 0:I.isCalling)&&(B.isCalling=!!(null===(M=null===(A=e.user)||void 0===A?void 0:A.customInfo)||void 0===M?void 0:M.isCalling),B.watcher.next({operation:"inBackground",user:B}));let n=!1;if(ignoreUserId.forEach((e=>{(null==B?void 0:B.userId.includes(e))&&(n=!0)})),w?t.updateAllSort():(null===(R=t.room)||void 0===R?void 0:R.isSingleColumns)?t.updateCommonUserSort():B?B.isCommonUser?C?t.updateDelayCommonUserSort():t.updateCommonUserSort():B.isAudience?t.updateAudienceUserSort():t.updateUserSort():t.updateAllSort(),r.updateModelSort(),!n){if(1!==e.mode){const e=new BMMessageInfo({isMeetingNotice:!0,userId:B.userId,message:B.nickName+"加入"+(2==i.roomType?"直播":"会议")});s.addMessage(e,!0)}o[PARTICIPANT_JOINED].next({user:B,mode:O,data:e})}}}function handleLeaveUsers(e,t,r,i,s,o,n){var a;const u=e.userIds;info("bloud leave users","","",["userIds =>",u]),u.length&&(u.forEach((e=>{const a=leaveUser(e,t,r,s);a&&sendLeveNotification(a,o,n,i,!0,0)})),(null===(a=t.room)||void 0===a?void 0:a.isSingleColumns)?t.updateCommonUserSort():t.updateAllSort(),s.updateModelSort())}function handleParticipantLeft(e,t,r,i,s,o,n){var a;info(`bloud participant left ===>${e.userId}, ${e.mode}`);const u=1===e.mode,l=e.userId,c=r.isBig&&s.streamModels.size>1e3;if(l){const d=leaveUser(l,t,r,s);if((null===(a=t.room)||void 0===a?void 0:a.isSingleColumns)?t.updateCommonUserSort():d?d.isCommonUser?c?t.updateDelayCommonUserSort():t.updateCommonUserSort():d.isAudience?t.updateAudienceUserSort():t.updateUserSort():t.updateAllSort(),s.updateModelSort(),u)return void i[PARTICIPANT_LEFT].next({user:d,mode:e.mode,data:e});d&&sendLeveNotification(d,o,n,i,1!==e.mode,e.mode)}else warn("participant-left触发=======>但是该用户信息不存在",LOGGER_TAG_CLIENT,null,[e.userId]),i[PARTICIPANT_LEFT].next({user:e.userId,mode:e.mode,data:e})}function sendLeveNotification(e,t,r,i,s,o){let n=!1;if(ignoreUserId.forEach((t=>{(null==e?void 0:e.userId.includes(t))&&(n=!0)})),!n){if(s){const i=new BMMessageInfo({isMeetingNotice:!0,userId:e.userId,message:(null==e?void 0:e.nickName)+"离开"+(2==t.roomType?"直播":"会议")});r.addMessage(i,!0)}i[PARTICIPANT_LEFT].next({user:e,mode:o})}}function leaveUser(e,t,r,i){const s=t.getUser(e);return t.removeUser(e),r.streamQueue.removeUser({id:e,isScreen:!1}),r.streamQueue.removeUser({id:e,isScreen:!0}),i.removeStreamModelByUId(e),i.removeShareStreamModelByUId(e),r.roomInfo.removeRaiseHandUser(e),r.roomInfo.removeVideoRaiseHandUser(e),r.roomInfo.removeSimpleRaiseHandUser(e),i.shareBloudStateMap.delete(e),s}function handleChangeMaster(e,t,r,i,s){info("changeMaster =>","changeMaster","",["master: => ",e.master,"oldMaster =>",e.oldMaster]);const o=e.master,n=e.oldMaster,a=e.isKeep;if(o){let u=t.updateMaster(o,n,a);u.master&&(u.master.watcher.next({operation:"getMaster",user:u.master}),r.userVM.masterUserWatcher.next(u.master)),u.oldMaster&&(u.oldMaster.watcher.next({operation:"removeMaster",user:u.oldMaster}),a&&u.oldMaster.watcher.next({operation:"getManager",user:u.oldMaster}));const l=s.getStreamModelByUId(n),c=s.getStreamModelByUId(o);null==l||l.updateSortNum(),null==c||c.updateSortNum(),i[CHANGE_MASTER].next({master:u.master,oldMaster:u.oldMaster,data:e})}else warn("change-master触发=======>但是房间内找不到master",LOGGER_TAG_CLIENT,null,o),i[CHANGE_MASTER].next(null)}function handleEvict(e,t,r,i,s){var o;const n=e.userId,a=t.getUser(n);info("踢出用户 => ","evict ",null==a?void 0:a.userId,["nickname => ",null==a?void 0:a.nickName]);const u=leaveUser(n,t,i,r);(null===(o=t.room)||void 0===o?void 0:o.isSingleColumns)?t.updateCommonUserSort():u?u.isCommonUser?t.updateCommonUserSort():u.isAudience?t.updateAudienceUserSort():t.updateUserSort():t.updateAllSort(),r.updateModelSort(),s[EVICTED].next(e)}function handleUpdateUser(e,t,r,i,s){var o;const n=null===(o=e.user)||void 0===o?void 0:o.userId;if(info("用户信息被改变","",n),n){let o=t.getUser(n),a=i.getStreamModelByUId(n);o?o.updateUserInfo(e.user,e.participant,r):(console.warn("participant-update: bmUser is null"),r.queryBloudUsers([n],!0)),a&&a.updateSortNum(!0),s[UPDATE_USER].next({bmUser:o,params:e.participant.params})}}const handleUserRejoined=debounce(((e,t)=>{e[USER_REJOINED].next(t)}),1e3);function handleMoveUserRoom(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){info("bloud move user room","","",[r]);const s=r.toWait;if(e.isInWaitRoom=s,s){e.handleResetOtherStreamStatus(),t.userList.clear(),t.userListWatcher.next([]),t.commonUserList.clear(),t.commonUserListWatcher.next([]),t.getForceUserWatcher.next(!1),e.bmStreamVm.streamModels.clear(),e.bmStreamVm.clearDetector(),e.bmStreamVm.speakerWatcher.next(null),i[CUSTOM_MESSAGE].next(null),e.messageWatcher.next({type:MessageType.INIT,status:!1,isNotCancelRootReport:!1}),e.audioPlayer.destroy();const r=e.bmStreamVm.localModel;r&&e.bmStreamVm.streamModels.set(r.userId,r),e.bmStreamVm.streamModelsWatcher.next([]),e.bmStreamVm.shareStreamModels.clear(),e.bmStreamVm.shareStreamModelsWatcher.next([]),e.roomInfo.raiseHandsWatcher.next([]),e.roomInfo.raiseVideoHandsWatcher.next([]),e.roomInfo.raiseSimpleHandsWatcher.next([]),i[MOVE_USER_ROOM].next(s),Object.values(e.observes).forEach((e=>{e.next(null)}))}else{const{audiooff:o,selfopenaudio:n,lock:a}=r.info;a!==e.roomInfo.lock&&e.roomInfo.setlock(a),o===e.roomInfo.audioOff&&n===e.roomInfo.selfopenaudio||e.roomInfo.setAudioOff(o,n),yield handleRoomConnected(r.info,e,t,i,!0),yield handleInitJoinRoomUsers(e),i[MOVE_USER_ROOM].next(s)}}))}function handleSendMessage(e,t,r,i){var s,o,n,a,u,l,c,d,h;let m=Object.assign({},e);if(m.message){if(m.message="string"==typeof m.message?JSON.parse(m.message):m.message,info("new-message","","",[" method => ",m.message.method]),"send-talk"===m.message.method){const i=m.user===(null===(s=t.getLocalUser())||void 0===s?void 0:s.userId),p=(null===(n=null===(o=m.message)||void 0===o?void 0:o.params)||void 0===n?void 0:n.status)||"",f=null===(l=null===(u=null===(a=m.message)||void 0===a?void 0:a.params)||void 0===u?void 0:u.stream)||void 0===l?void 0:l.avatar,g=e.seq,v=new BMMessageInfo({userId:m.user,message:p,isLocal:i,avatar:f,to:m.to,seq:g,nickName:null===(h=null===(d=null===(c=m.message)||void 0===c?void 0:c.params)||void 0===d?void 0:d.stream)||void 0===h?void 0:h.nickname,sendTime:(new Date).getTime()});r.addMessage(v,!1)}i[dist$4.BloudEvents.SEND_MESSAGE].next(m)}}function handleCustomMessage(e,t,r){var i,s,o,n,a,u,l,c,d,h,m,p,f;let g=Object.assign({},e);if(g.message)if(g.message="string"==typeof g.message?JSON.parse(g.message):g.message,info("custom-message","","",[" method => ",g.message.method]),"video-force-change"==g.message.method){const e="enabled"==g.message.params.status;info(`远端控制本地摄像头: ${e}`),t.messageWatcher.next({type:MessageType.VIDEO_FORCE_CHANGE,status:e,fromUserId:g.user})}else if("audio-force-change"==g.message.method){let e;e="checkUserAudio"==g.message.params.status?g.message.params.status:"enabled"==g.message.params.status,info(`远端控制本地麦克风: ${e}`),t.messageWatcher.next({type:MessageType.AUDIO_FORCE_CHANGE,status:e,fromUserId:g.user,isNotCancelRootReport:null===(i=g.message.params)||void 0===i?void 0:i.isNotCancelRootReport})}else if("raise-hands"===g.message.method)t.raiseHandleRespWatcher.next(g.message.params);else if("give-like"===g.message.method)null===(s=t.roomVM)||void 0===s||s.giveLikeList.push({userId:g.user,nickName:null===(a=null===(n=null===(o=g.message)||void 0===o?void 0:o.params)||void 0===n?void 0:n.stream)||void 0===a?void 0:a.nickname,time:(new Date).getTime(),type:null===(c=null===(l=null===(u=g.message)||void 0===u?void 0:u.params)||void 0===l?void 0:l.stream)||void 0===c?void 0:c.type}),null===(d=t.roomVM)||void 0===d||d.giveLikeListWatcher.next(null===(h=t.roomVM)||void 0===h?void 0:h.giveLikeList);else if("resp-to-check-devices"===g.message.method)(null===(m=g.message)||void 0===m?void 0:m.params)&&(g.message.params.fromUserId=g.user),r[dist$4.BloudEvents.CUSTOM_MESSAGE].next(g);else if("usercount"===g.message.method){if(g.message.params){let e=null===(f=null===(p=g.message)||void 0===p?void 0:p.params)||void 0===f?void 0:f.total;e?(e=Number(e),e<0&&(warn("服务返回的usercount为负数,"+e),e=0)):(warn("服务未返回usercount,"+e),e=0),t.roomInfo.totalUserWatcher.next(e)}}else if("waitusercount"===g.message.method){if(g.message.params){const e=g.message.params.total;t.roomInfo.totalWaitRoomUserWatcher.next(e)}}else r[dist$4.BloudEvents.CUSTOM_MESSAGE].next(g)}let reconnectFailed=0,shareReconnectFailed=0;const NETWORK_ERROR_QUEUE=new Set;function handleBRTCRoomError(e,t,r,i,s){return __awaiter(this,void 0,void 0,(function*(){error$1("brtc error","brtc error","",[(new Date).toLocaleTimeString(),JSON.stringify(e),e.getCode()]);if(4002===e.getCode()){t.BRTCConnectFailed=!0,t.networkState.brtc=!1,warn("brtc 信令通道错误,需要重新走入会","brtc error",""),t.streamWSReconnectWatcher.next(!1);try{yield r.brtcClient.leave("room_close")}catch(e){error$1("brtc 离会失败")}setTimeout((()=>__awaiter(this,void 0,void 0,(function*(){t.handleResetOtherStreamStatus(),yield reconnectBrtcWS(r,t,s,e).catch((t=>{info("brtc断网重连失败, 处理一下退会逻辑","","",[JSON.stringify(t)]),s[dist$4.BrtcEvents.ERROR].next(e)}))}))),1e3)}else s[dist$4.BrtcEvents.ERROR].next(e)}))}function reconnectBrtcWS(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){return new Promise(((s,o)=>{setTimeout((()=>{info("brtc重连"),e.brtcClient.join(e.roomId,e.userId,e.brtcSig).then((()=>__awaiter(this,void 0,void 0,(function*(){info("brtc断网重连成功, 重新处理拉流和推流"),t.networkState.brtc=!0,setTimeout((()=>{t.brtcNetEnableWatcher.next(!0)}),2e3),handleReconnectedStream(t),t.BRTCConnectFailed=!1,reconnectFailed=0,yield t.handleRePushSelf(),t.streamWSReconnectWatcher.next(!0),s(!0)})))).catch((s=>{const n=s.getCode();info("断网重连入会失败","","",[s,n]),reconnectFailed<=10?(reconnectFailed+=1,e.brtcClient.isJoinning=!1,setTimeout((()=>{reconnectBrtcWS(e,t,r,i)}),2e3)):(error$1("brtc断网重连失败,处理一下退会"),reconnectFailed=0,r[dist$4.BrtcEvents.ERROR].next(i),o(!1))}))}),7e3)}))}))}function reconnectBRTCShareWS(e){return __awaiter(this,void 0,void 0,(function*(){return new Promise(((t,r)=>{setTimeout((()=>{info("共享屏幕重连"),e.shareBrtcClient.join(e.roomId,e.userId,e.brtcSig).then((()=>{shareReconnectFailed=0,t(!0)})).catch((t=>{const r=t.getCode();if(info("共享屏幕断网重连入会失败","","",[t,r]),!(shareReconnectFailed<=3))throw error$1("共享屏幕用户重连失败,处理一下取消共享屏幕"),shareReconnectFailed=0,new Error("共享屏幕重连失败");shareReconnectFailed+=1,reconnectBRTCShareWS(e)}))}),7e3)}))}))}function handleBloudError(e,t,r,i,s){return __awaiter(this,void 0,void 0,(function*(){error$1("network-error","network-error","local-client",["本地链接出现问题","netconnectiong => ",e.netConnecting]),e.netConnecting?yield handleBloudRoomReconnected(i,e,s):s[dist$4.BloudEvents.TIMEOUT].next(i)}))}function handleCustomStats(e,t,r){let i=null==e?void 0:e.updateKeys;info("update-custom-stats"," "," ",["updateKeys => ",JSON.stringify(i)]),((null==i?void 0:i.includes("chatNotice"))||(null==i?void 0:i.includes("chatNoticeRich"))||(null==i?void 0:i.includes("fileUpdateLook"))||(null==i?void 0:i.includes("fileUpdateDown"))||(null==i?void 0:i.includes("fileUpdateEdit"))||(null==i?void 0:i.includes("fileUpdateModel"))||(null==i?void 0:i.includes("screenShareModel"))||(null==i?void 0:i.includes("onlyOnePersonShare"))||(null==i?void 0:i.includes("chatEnable"))||(null==i?void 0:i.includes("giveLikeEnable"))||(null==i?void 0:i.includes("cloudRecord"))||(null==i?void 0:i.includes("joinAudioEnable"))||(null==i?void 0:i.includes("joinVideoEnable"))||(null==i?void 0:i.includes("userListEnable"))||(null==i?void 0:i.includes("audioEnable"))||(null==i?void 0:i.includes("videoEnable"))||(null==i?void 0:i.includes("modifyNameEnable"))||(null==i?void 0:i.includes("backgroundAIEnable"))||(null==i?void 0:i.includes("recordEnable"))||(null==i?void 0:i.includes("joinMicrophoneDisable"))||(null==i?void 0:i.includes("joinCameraDisable"))||(null==i?void 0:i.includes("raiseHandEnable"))||(null==i?void 0:i.includes("forceOpenUserMic"))||(null==i?void 0:i.includes("forceOpenUserCamera"))||(null==i?void 0:i.includes("joinCueVoice")))&&t.roomInfo.updateOperationPermission(e.customStats),((null==i?void 0:i.includes("chatNotice"))||(null==i?void 0:i.includes("chatNoticeRich")))&&t.roomInfo.chatNoticeWatcher.next(e),r[dist$4.BloudEvents.UPDATE_CUSTOM_STATS].next(e)}var dist={},eventemitter3={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,r="~";function i(){}function s(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function o(e,t,i,o,n){if("function"!=typeof i)throw new TypeError("The listener must be a function");var a=new s(i,o||e,n),u=r?r+t:t;return e._events[u]?e._events[u].fn?e._events[u]=[e._events[u],a]:e._events[u].push(a):(e._events[u]=a,e._eventsCount++),e}function n(e,t){0==--e._eventsCount?e._events=new i:delete e._events[t]}function a(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),(new i).__proto__||(r=!1)),a.prototype.eventNames=function(){var e,i,s=[];if(0===this._eventsCount)return s;for(i in e=this._events)t.call(e,i)&&s.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},a.prototype.listeners=function(e){var t=r?r+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var s=0,o=i.length,n=new Array(o);s<o;s++)n[s]=i[s].fn;return n},a.prototype.listenerCount=function(e){var t=r?r+e:e,i=this._events[t];return i?i.fn?1:i.length:0},a.prototype.emit=function(e,t,i,s,o,n){var a=r?r+e:e;if(!this._events[a])return!1;var u,l,c=this._events[a],d=arguments.length;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),d){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,i),!0;case 4:return c.fn.call(c.context,t,i,s),!0;case 5:return c.fn.call(c.context,t,i,s,o),!0;case 6:return c.fn.call(c.context,t,i,s,o,n),!0}for(l=1,u=new Array(d-1);l<d;l++)u[l-1]=arguments[l];c.fn.apply(c.context,u)}else{var h,m=c.length;for(l=0;l<m;l++)switch(c[l].once&&this.removeListener(e,c[l].fn,void 0,!0),d){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,t);break;case 3:c[l].fn.call(c[l].context,t,i);break;case 4:c[l].fn.call(c[l].context,t,i,s);break;default:if(!u)for(h=1,u=new Array(d-1);h<d;h++)u[h-1]=arguments[h];c[l].fn.apply(c[l].context,u)}}return!0},a.prototype.on=function(e,t,r){return o(this,e,t,r,!1)},a.prototype.once=function(e,t,r){return o(this,e,t,r,!0)},a.prototype.removeListener=function(e,t,i,s){var o=r?r+e:e;if(!this._events[o])return this;if(!t)return n(this,o),this;var a=this._events[o];if(a.fn)a.fn!==t||s&&!a.once||i&&a.context!==i||n(this,o);else{for(var u=0,l=[],c=a.length;u<c;u++)(a[u].fn!==t||s&&!a[u].once||i&&a[u].context!==i)&&l.push(a[u]);l.length?this._events[o]=1===l.length?l[0]:l:n(this,o)}return this},a.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&n(this,t)):(this._events=new i,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=r,a.EventEmitter=a,e.exports=a}(eventemitter3);var pTimeout$1={exports:{}},pFinally$1=(e,t)=>(t=t||(()=>{}),e.then((e=>new Promise((e=>{e(t())})).then((()=>e))),(e=>new Promise((e=>{e(t())})).then((()=>{throw e})))));const pFinally=pFinally$1;class TimeoutError extends Error{constructor(e){super(e),this.name="TimeoutError"}}const pTimeout=(e,t,r)=>new Promise(((i,s)=>{if("number"!=typeof t||t<0)throw new TypeError("Expected `milliseconds` to be a positive number");if(t===1/0)return void i(e);const o=setTimeout((()=>{if("function"==typeof r){try{i(r())}catch(e){s(e)}return}const o=r instanceof Error?r:new TimeoutError("string"==typeof r?r:`Promise timed out after ${t} milliseconds`);"function"==typeof e.cancel&&e.cancel(),s(o)}),t);pFinally(e.then(i,s),(()=>{clearTimeout(o)}))}));pTimeout$1.exports=pTimeout,pTimeout$1.exports.default=pTimeout,pTimeout$1.exports.TimeoutError=TimeoutError;var priorityQueue={},lowerBound$1={};function lowerBound(e,t,r){let i=0,s=e.length;for(;s>0;){const o=s/2|0;let n=i+o;r(e[n],t)<=0?(i=++n,s-=o+1):s=o}return i}Object.defineProperty(lowerBound$1,"__esModule",{value:!0}),lowerBound$1.default=lowerBound,Object.defineProperty(priorityQueue,"__esModule",{value:!0});const lower_bound_1=lowerBound$1;class PriorityQueue{constructor(){Object.defineProperty(this,"_queue",{enumerable:!0,configurable:!0,writable:!0,value:[]})}enqueue(e,t){const r={priority:(t=Object.assign({priority:0},t)).priority,run:e};if(this.size&&this._queue[this.size-1].priority>=t.priority)return void this._queue.push(r);const i=lower_bound_1.default(this._queue,r,((e,t)=>t.priority-e.priority));this._queue.splice(i,0,r)}dequeue(){const e=this._queue.shift();return null==e?void 0:e.run}filter(e){return this._queue.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this._queue.length}}priorityQueue.default=PriorityQueue,Object.defineProperty(dist,"__esModule",{value:!0});const EventEmitter=eventemitter3.exports,p_timeout_1=pTimeout$1.exports,priority_queue_1=priorityQueue,empty=()=>{},timeoutError=new p_timeout_1.TimeoutError;class PQueue extends EventEmitter{constructor(e){var t,r,i,s;if(super(),Object.defineProperty(this,"_carryoverConcurrencyCount",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_isIntervalIgnored",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_intervalCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_intervalCap",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_interval",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_intervalEnd",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_intervalId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_timeoutId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_queue",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_queueClass",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_pendingCount",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_concurrency",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_isPaused",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_resolveEmpty",{enumerable:!0,configurable:!0,writable:!0,value:empty}),Object.defineProperty(this,"_resolveIdle",{enumerable:!0,configurable:!0,writable:!0,value:empty}),Object.defineProperty(this,"_timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_throwOnTimeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),!("number"==typeof(e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:priority_queue_1.default},e)).intervalCap&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${null!==(r=null===(t=e.intervalCap)||void 0===t?void 0:t.toString())&&void 0!==r?r:""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${null!==(s=null===(i=e.interval)||void 0===i?void 0:i.toString())&&void 0!==s?s:""}\` (${typeof e.interval})`);this._carryoverConcurrencyCount=e.carryoverConcurrencyCount,this._isIntervalIgnored=e.intervalCap===1/0||0===e.interval,this._intervalCap=e.intervalCap,this._interval=e.interval,this._queue=new e.queueClass,this._queueClass=e.queueClass,this.concurrency=e.concurrency,this._timeout=e.timeout,this._throwOnTimeout=!0===e.throwOnTimeout,this._isPaused=!1===e.autoStart}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount<this._intervalCap}get _doesConcurrentAllowAnother(){return this._pendingCount<this._concurrency}_next(){this._pendingCount--,this._tryToStartAnother()}_resolvePromises(){this._resolveEmpty(),this._resolveEmpty=empty,0===this._pendingCount&&(this._resolveIdle(),this._resolveIdle=empty)}_onResumeInterval(){this._onInterval(),this._initializeIntervalIfNeeded(),this._timeoutId=void 0}_isIntervalPaused(){const e=Date.now();if(void 0===this._intervalId){const t=this._intervalEnd-e;if(!(t<0))return void 0===this._timeoutId&&(this._timeoutId=setTimeout((()=>{this._onResumeInterval()}),t)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}_tryToStartAnother(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){const e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother)return this.emit("active"),this._queue.dequeue()(),e&&this._initializeIntervalIfNeeded(),!0}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval((()=>{this._onInterval()}),this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(e){if(!("number"==typeof e&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this._concurrency=e,this._processQueue()}async add(e,t={},r=null){return new Promise(((i,s)=>{this._queue.enqueue((async()=>{this._pendingCount++,this._intervalCount++;try{const o=void 0===this._timeout&&void 0===t.timeout?e():p_timeout_1.default(Promise.resolve(e()),void 0===t.timeout?this._timeout:t.timeout,(()=>{(void 0===t.throwOnTimeout?this._throwOnTimeout:t.throwOnTimeout)&&s(timeoutError),r&&r("resolve-timeout")}));r&&r("resolving"),i(await o),this._isPaused?r&&r("resolve-paused"):r&&r("resolve")}catch(e){this._isPaused?r&&r("resolve-paused"):r&&r("resolve"),s(e)}this._next()}),t),this._tryToStartAnother()}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){return this._isPaused?(this._isPaused=!1,this._processQueue(),this):this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(0!==this._queue.size)return new Promise((e=>{const t=this._resolveEmpty;this._resolveEmpty=()=>{t(),e()}}))}async onIdle(){if(0!==this._pendingCount||0!==this._queue.size)return new Promise((e=>{const t=this._resolveIdle;this._resolveIdle=()=>{t(),e()}}))}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}}var _default=dist.default=PQueue;class Pqueue{constructor(e,t=!0){this.queue=new _default({concurrency:e,autoStart:t,carryoverConcurrencyCount:!0,timeout:3e3,completeAction:e=>{console.log("task complete",e)}}),this.queueArray=[],this.isTaskPending=t}addQueue(e,t,r=0,i=""){this.queue.isPaused&&this.queue.start();let s={};s.taskID=t,s.status="pending",this.queue.add(e,{priority:r,timeout:3e3},(e=>{if(s.status=e,"resolve"===s.status||"resolve-paused"===s.status||"resolve-timeout"===s.status){const e=this.queueArray.findIndex((e=>s.taskID===e.taskID));-1!==e&&this.queueArray.splice(e,1)}})),this.queueArray.push(s)}clearQueue(){this.queue.clear(),this.queueArray=[],this.queue.onEmpty().then((e=>{})),this.queue.onIdle().then((e=>{console.log("clearQueue全部完事")}))}startQueue(){this.queue.start()}pauseQueue(){return this.queue.pause(),console.log(`size:${this.size()}`),this.isTaskPending=!1,this.queue.onEmpty().then((e=>{})),this.queue.onIdle().then((e=>{})),this.queueArray}size(){return this.queue.size}pending(){return this.queue.pending}checkTaskStatus(){return this.isTaskPending}setTaskStatus(e){this.isTaskPending=e}onIdle(){return this.queue.onIdle()}onEmpty(){return this.queue.onEmpty()}}const streamPullQueue=new Pqueue(4),eventQueue=new Pqueue(10);var MessageType;function attachEvents(e,t,r,i,s){info("attachEvents init");let o={};e.on("toggle-screen-share",(()=>{error$1("share stream video track ended, now unpublish share stream"),r.localShareError.next(dist$4.BMShareStreamReconnectFailed()),r.localShareEndedError.next(!0)})),e.on("client-banned",(()=>__awaiter(this,void 0,void 0,(function*(){yield s.boomCore.leaveShare()})))),e.on("share-brtc-error",(t=>__awaiter(this,void 0,void 0,(function*(){if(4002===t.getCode())try{info("brtc share client disconnected, reconnecting"),yield e.shareBrtcClient.leave("room_close"),reconnectBRTCShareWS(e).then((()=>__awaiter(this,void 0,void 0,(function*(){if(info("brtc share client reconnected, retry repub share stream"),yield sleep(1e3),e.shareScreenStream){const t=e.shareScreenStream.getAudioOn(),r=e.shareScreenStream.getVideoOn();e.shareBrtcClient.publish(e.shareScreenStream),e.createAndPubBloudShareStream(t,r)}})))).catch((()=>{throw new Error("共享屏幕重新入会失败")}))}catch(e){r.toggleShareScreen(!1,void 0).then((()=>{})).catch((e=>{error$1("共享发生错误退会失败","","",[JSON.stringify(e)])}))}}))));let n=[];return n=n.concat(Object.values(dist$4.BloudEvents)),n=n.concat(Object.values(dist$4.BrtcEvents)),n=n.concat(Object.values(dist$4.CustomEvents)),n.forEach((e=>{o[e]=new BehaviorSubject(null)})),n.forEach((n=>{switch(n){case dist$4.BrtcEvents.STREAM_PUBLISHED:e.on(dist$4.BrtcEvents.STREAM_PUBLISHED,(e=>{eventQueue.addQueue(handleStreamPublished.bind(null,e,r,s,o),dist$4.BrtcEvents.STREAM_PUBLISHED)}));break;case dist$4.BrtcEvents.BRTC_SYNC_ROOM_COMPLETED:e.on(dist$4.BrtcEvents.BRTC_SYNC_ROOM_COMPLETED,(()=>__awaiter(this,void 0,void 0,(function*(){eventQueue.addQueue(s.handleResetOtherStreamStatus.bind(s),dist$4.BrtcEvents.BRTC_SYNC_ROOM_COMPLETED)}))));break;case dist$4.CustomEvents.BRTC_SHARE_SYNC_ROOM_COMPLETED:e.on(dist$4.CustomEvents.BRTC_SHARE_SYNC_ROOM_COMPLETED,(()=>{info("brtc share client sync completed, retry publish share stream"),eventQueue.addQueue(handleRepublishLocalShare.bind(null,s,r),dist$4.CustomEvents.BRTC_SHARE_SYNC_ROOM_COMPLETED)}));break;case dist$4.BrtcEvents.BRTC_ROOM_ROCONNECTING:e.on(dist$4.BrtcEvents.BRTC_ROOM_ROCONNECTING,(e=>{eventQueue.addQueue(handleBrtcRoomReconnecting.bind(null,e,s,o),dist$4.BrtcEvents.BRTC_ROOM_ROCONNECTING)}));break;case dist$4.BrtcEvents.BRTC_ROOM_RECONNECTED:e.on(dist$4.BrtcEvents.BRTC_ROOM_RECONNECTED,(e=>__awaiter(this,void 0,void 0,(function*(){eventQueue.addQueue(handleBrtcRoomReconnected.bind(null,e,s,o),dist$4.BrtcEvents.BRTC_ROOM_RECONNECTED)}))));break;case dist$4.BrtcEvents.CLIENT_BANNED:e.on(dist$4.BrtcEvents.CLIENT_BANNED,(e=>{info("brtc client banned"),handleUserRejoined(o,e)}));break;case dist$4.BrtcEvents.ERROR:e.on(dist$4.BrtcEvents.ERROR,(t=>__awaiter(this,void 0,void 0,(function*(){s.netConnecting?eventQueue.addQueue(handleBRTCRoomError.bind(null,t,s,e,r,o),dist$4.BrtcEvents.ERROR):NETWORK_ERROR_QUEUE.add(handleBRTCRoomError.bind(null,t,s,e,r,o))}))));break;case dist$4.BloudEvents.SYNC_FAILED:e.on(dist$4.BloudEvents.SYNC_FAILED,(e=>{error$1("bloud sync failed, leave room"),o[dist$4.BloudEvents.TIMEOUT].next(e)}));break;case dist$4.BloudEvents.ROOM_CONNECTED:e.on(dist$4.BloudEvents.ROOM_CONNECTED,(e=>__awaiter(this,void 0,void 0,(function*(){return handleRoomConnected(e,s,t,o)}))));break;case dist$4.CustomEvents.JOIN_READY:e.on(dist$4.CustomEvents.JOIN_READY,(()=>handleInitJoinRoomUsers(s)));break;case dist$4.BloudEvents.PARTICIPANT_JOINED:e.on(dist$4.BloudEvents.PARTICIPANT_JOINED,(n=>__awaiter(this,void 0,void 0,(function*(){s.isInWaitRoom||eventQueue.addQueue(handleParticipantJoin.bind(null,n,t,r,e,i,o),dist$4.BloudEvents.PARTICIPANT_JOINED)}))));break;case dist$4.BloudEvents.PARTICIPANT_LEFT:e.on(dist$4.BloudEvents.PARTICIPANT_LEFT,(n=>{s.isInWaitRoom||eventQueue.addQueue(handleParticipantLeft.bind(null,n,t,s,o,r,e,i),dist$4.BloudEvents.PARTICIPANT_LEFT)}));break;case dist$4.BloudEvents.LEAVE_USERS:e.on(dist$4.BloudEvents.LEAVE_USERS,(n=>eventQueue.addQueue(handleLeaveUsers.bind(null,n,t,s,o,r,e,i),dist$4.BloudEvents.LEAVE_USERS)));break;case dist$4.BloudEvents.CHANGE_MASTER:e.on(dist$4.BloudEvents.CHANGE_MASTER,(e=>{eventQueue.addQueue(handleChangeMaster.bind(null,e,t,s,o,r),dist$4.BloudEvents.CHANGE_MASTER)}));break;case dist$4.BloudEvents.SEND_MESSAGE:e.on(dist$4.BloudEvents.SEND_MESSAGE,(e=>{eventQueue.addQueue(handleSendMessage.bind(null,e,t,i,o),dist$4.BloudEvents.SEND_MESSAGE)}));break;case dist$4.BloudEvents.CUSTOM_MESSAGE:e.on(dist$4.BloudEvents.CUSTOM_MESSAGE,(e=>{eventQueue.addQueue(handleCustomMessage.bind(null,e,s,o),dist$4.BloudEvents.CUSTOM_MESSAGE)}));break;case dist$4.BloudEvents.EVICTED:e.on(dist$4.BloudEvents.EVICTED,(e=>__awaiter(this,void 0,void 0,(function*(){eventQueue.addQueue(handleEvict.bind(null,e,t,r,s,o),dist$4.BloudEvents.EVICTED)}))));break;case dist$4.BloudEvents.UPDATE_USER:e.on(dist$4.BloudEvents.UPDATE_USER,(e=>{eventQueue.addQueue(handleUpdateUser.bind(null,e,t,s,r,o),dist$4.BloudEvents.UPDATE_USER)}));break;case dist$4.BloudEvents.UPDATE_STATS:e.on(dist$4.BloudEvents.UPDATE_STATS,(e=>{eventQueue.addQueue(handleRoomUpdated.bind(null,e,s),dist$4.BloudEvents.UPDATE_STATS)}));break;case dist$4.BloudEvents.UPDATE_CUSTOM_STATS:e.on(dist$4.BloudEvents.UPDATE_CUSTOM_STATS,(e=>{eventQueue.addQueue(handleCustomStats.bind(null,e,s,o),dist$4.BloudEvents.UPDATE_CUSTOM_STATS)}));break;case dist$4.BloudEvents.TIMEOUT:e.on(dist$4.BloudEvents.TIMEOUT,(t=>{eventQueue.addQueue(handleBloudError.bind(null,s,e,r,t,o),dist$4.BloudEvents.TIMEOUT)}));break;case dist$4.BloudEvents.USER_REJOINED:e.on(dist$4.BloudEvents.USER_REJOINED,(e=>{info("bloud user rejoined"),handleUserRejoined(o,e)}));break;case dist$4.BloudEvents.RECONNECTING:e.on(dist$4.BloudEvents.RECONNECTING,(e=>{eventQueue.addQueue(handleBloudRoomReconnecting.bind(null,e,s,o),dist$4.BloudEvents.RECONNECTING)}));break;case dist$4.BloudEvents.RECONNECTED:e.on(dist$4.BloudEvents.RECONNECTED,(e=>__awaiter(this,void 0,void 0,(function*(){eventQueue.addQueue(handleBloudRoomReconnected.bind(null,e,s,o),dist$4.BloudEvents.RECONNECTED)}))));break;case dist$4.BloudEvents.ROOM_SYNCED:e.on(dist$4.BloudEvents.ROOM_SYNCED,(e=>__awaiter(this,void 0,void 0,(function*(){eventQueue.addQueue(handleBloudRoomSync.bind(null,e,t,s,r,o),dist$4.BloudEvents.ROOM_SYNCED)}))));break;case dist$4.BloudEvents.STREAM_PUBLISHED:e.on(dist$4.BloudEvents.STREAM_PUBLISHED,(e=>__awaiter(this,void 0,void 0,(function*(){eventQueue.addQueue(handleBloudStreamPublished.bind(null,e,r,o),dist$4.BloudEvents.STREAM_PUBLISHED)}))));break;case dist$4.BloudEvents.STREAM_REMOVED:e.on(dist$4.BloudEvents.STREAM_REMOVED,(e=>__awaiter(this,void 0,void 0,(function*(){eventQueue.addQueue(handleBloudStreamUnPublished.bind(null,e,r,o),dist$4.BloudEvents.STREAM_REMOVED)}))));break;case dist$4.BloudEvents.UPDATE_STREAM:e.on(dist$4.BloudEvents.UPDATE_STREAM,(e=>__awaiter(this,void 0,void 0,(function*(){eventQueue.addQueue(handleBloudStreamUpdated.bind(null,e,r,o),dist$4.BloudEvents.UPDATE_STREAM)}))));break;case dist$4.BloudEvents.STREAM_UPDATE:e.on(dist$4.BloudEvents.STREAM_UPDATE,(e=>__awaiter(this,void 0,void 0,(function*(){eventQueue.addQueue(handleBloudStreamPubAUpdate.bind(null,e,r),dist$4.BloudEvents.STREAM_UPDATE)}))));break;case dist$4.BloudEvents.MOVE_USER_ROOM:e.on(dist$4.BloudEvents.MOVE_USER_ROOM,(e=>__awaiter(this,void 0,void 0,(function*(){eventQueue.addQueue(handleMoveUserRoom.bind(null,s,t,e,o),dist$4.BloudEvents.MOVE_USER_ROOM)}))));break;default:e.on(n,(e=>o[n].next(e)))}})),o}!function(e){e.INIT="init",e.VIDEO_FORCE_CHANGE="video-force-change",e.AUDIO_FORCE_CHANGE="audio-force-change"}(MessageType||(MessageType={}));class BMRoomVM{constructor(e,t,r){this.room=null,this.tipQueueObj={},this.roomInfo=r,this.userVM=t,this.boomCore=e,this.giveLikeList=[],this.giveLikeListWatcher=new Subject}initWithRoom(e){this.room=e}evictUser(e,t){return __awaiter(this,void 0,void 0,(function*(){if(!e)return Promise.reject(dist$4.BmEvictUserError("未传递用户id"));if(!this.userVM.checkLocalHasMaster())return Promise.reject(dist$4.BmEvictUserError("只有主持人权限才能踢出用户"));if(this.userVM.checkIsMaster(e))return Promise.reject(dist$4.BmEvictUserError("主持人不能被踢出"));try{yield this.boomCore.evictUser(e,t)}catch(e){return Promise.reject(dist$4.BmEvictUserError(`踢出用户失败${JSON.stringify(e)}`))}}))}updateUser(e,t){return __awaiter(this,void 0,void 0,(function*(){return e?t?void(yield this.boomCore.updateUser(e,{customInfo:t}).catch((e=>Promise.reject(dist$4.BmUpdateUserError(`boomCore updateUser出错 ${JSON.stringify(e)}`))))):Promise.reject(dist$4.BmUpdateUserError("info为空,请写入要更新的信息")):Promise.reject(dist$4.BmUpdateUserError("未传递目标用户id"))}))}changeMaster(e,t){var r;return __awaiter(this,void 0,void 0,(function*(){if(!e)return Promise.reject(dist$4.BmChangeMasterError("未传递主持人id"));if(!this.userVM.checkLocalHasMaster()&&!(null===(r=this.userVM.getUser(e))||void 0===r?void 0:r.isCreate))return console.error("该用户没有管理员权限, 无法改变主持人",LOGGER_TAG_CLIENT,e),Promise.reject(dist$4.BmChangeMasterError("您没有管理员权限, 无法改变主持人"));try{yield this.boomCore.changeMaster(e,t)}catch(e){return Promise.reject(dist$4.BmChangeMasterError(`boomCore changeMaster error ${e}`))}}))}updateManager(e,t,r=!0){return __awaiter(this,void 0,void 0,(function*(){return e?this.userVM.checkLocalHasMaster()?this.userVM.updateManager(e,t,r):(console.error("该用户没有管理员权限, 无法改变联席主持人",LOGGER_TAG_CLIENT,e),Promise.reject(dist$4.BmUpdateManagerError("该用户没有管理员权限, 无法改变主持人"))):Promise.reject(dist$4.BmUpdateManagerError("未传递联席主持人id"))}))}changeNickName(e,t){return __awaiter(this,void 0,void 0,(function*(){const r={nickname:t};yield this.updateUser(e,r)}))}sendMessageWithMaster(e,t){return __awaiter(this,void 0,void 0,(function*(){if(!this.userVM.checkLocalHasMaster())return Promise.reject(dist$4.BmSetRemoteAudioEnable("您不是主持人,没有该权限"));if(t){if(!this.userVM.getUser(t))return Promise.reject(dist$4.BmSetRemoteAudioEnable(`uid: ${t} 未找到用户`))}try{yield this.boomCore.customMessage(JSON.stringify(e),t)}catch(e){return Promise.reject(e)}}))}setRemoteAudioEnable(e,t,r){return __awaiter(this,void 0,void 0,(function*(){let i=e?"enabled":"disabled";"enabled"==i&&r&&(i="checkUserAudio");let s={domain:"room-control",method:"audio-force-change",params:{status:i,isNotCancelRootReport:r,fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(s,t).catch((e=>Promise.reject(dist$4.BmSetRemoteAudioEnable(`boomCore.sendMessage发生错误 ${e}`))))}))}setRemoteVideoEnable(e,t){return __awaiter(this,void 0,void 0,(function*(){let r={domain:"room-control",method:"video-force-change",params:{status:e?"enabled":"disabled",fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(r,t).catch((e=>Promise.reject(dist$4.BmSetRemoteVideoEnable(`boomCore.sendMessage发生错误 ${e}`))))}))}closeRemoteShare(e){return __awaiter(this,void 0,void 0,(function*(){let t={domain:"room-control",method:"close-remote-share",params:{fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(t,e).catch((e=>Promise.reject(dist$4.BmSetRemoteAudioEnable(`boomCore.sendMessage发生错误 ${e}`))))}))}tipUser(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){let s={domain:"room-control",method:"tip-user",params:{fromUserId:this.boomCore.getLocalParticipant().getID(),message:t,richMsg:r}};i?this.tipQueueObj[e]=setTimeout((()=>{this.sendMessageWithMaster(s,e)}),60*(i.minutes||0)*1e3+1e3*(i.seconds||0)):this.sendMessageWithMaster(s,e).catch((e=>Promise.reject(dist$4.BmSetRemoteAudioEnable(`boomCore.sendMessage发生错误 ${JSON.stringify(e)}`))))}))}raiseHands(e,t){var r;return __awaiter(this,void 0,void 0,(function*(){const i=null===(r=this.room)||void 0===r?void 0:r.getLocalParticipant().getID();let s={};"raiseHand"===e?(s.raiseHand=t,s.raiseHandTime=Math.floor((new Date).getTime()/1e3)):s["audio"===e?"raiseHandsAudio":"raiseHandsVideo"]=t,yield this.updateUser(i,s)}))}handleRaiseHands(e,t,r){var i,s,o;return __awaiter(this,void 0,void 0,(function*(){let n={domain:"user-control",method:"raise-hands",params:{raiseHandsType:e,raiseHands:t}};try{if(r)yield this.boomCore.customMessage(JSON.stringify(n),r);else{const t=null===(i=this.room)||void 0===i?void 0:i.roomInfo.raiseHandsWatcher.getValue(),r=null===(s=this.room)||void 0===s?void 0:s.roomInfo.raiseVideoHandsWatcher.getValue(),a=null===(o=this.room)||void 0===o?void 0:o.roomInfo.raiseSimpleHandsWatcher.getValue();0===e&&(null==t||t.forEach((e=>{this.boomCore.customMessage(JSON.stringify(n),e.userId)})),null==r||r.forEach((e=>{this.boomCore.customMessage(JSON.stringify(n),e.userId)}))),1===e&&(null==t||t.forEach((e=>{this.boomCore.customMessage(JSON.stringify(n),e.userId)}))),2===e&&(null==r||r.forEach((e=>{this.boomCore.customMessage(JSON.stringify(n),e.userId)}))),3===e&&(null==a||a.forEach((e=>{this.boomCore.customMessage(JSON.stringify(n),e.userId)})))}}catch(e){return Promise.reject(new BoomError(LOCAL_ERROR,"boomCore.sendMessage发生错误"))}}))}updateCustomStats(e,t=!1){return __awaiter(this,void 0,void 0,(function*(){yield this.boomCore.updateCustomStats(e,t).catch((t=>Promise.reject(dist$4.updateCustomStatsError(`${JSON.stringify(e)} - ${JSON.stringify(t)}`))))}))}sendChatNotice(e,t,r){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({chatNotice:e,chatNoticeRich:t,showTipNotice:r}).catch((e=>e))}))}giveLikeEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({giveLikeEnable:e}).catch((e=>e))}))}changeAutoMute(e){return __awaiter(this,void 0,void 0,(function*(){return this.updateCustomStats({autoMute:e})}))}allUserReceiveJoinLeaveMessages(e){return __awaiter(this,void 0,void 0,(function*(){return this.updateCustomStats({allUserReceiveJoinLeaveMessages:e})}))}userJoinMasterVoice(e){return __awaiter(this,void 0,void 0,(function*(){return this.updateCustomStats({userJoinMasterVoice:e})}))}userGiveLike(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){let i=(new Date).getTime(),s={domain:"room-control",method:"give-like",params:{stream:{user:this.userVM.localUser.userId,avatar:this.userVM.localUser.avatar,sendTime:i,nickname:this.userVM.localUser.nickName,type:e||1}}},o=this.userVM.getLocalUser();try{yield this.boomCore.customMessage(JSON.stringify(s),void 0),this.giveLikeList.push({userId:null===(t=this.room)||void 0===t?void 0:t.getLocalParticipant().userId,nickName:null===(r=this.room)||void 0===r?void 0:r.getLocalParticipant().nickName,time:(new Date).getTime(),type:e}),this.giveLikeListWatcher.next(this.giveLikeList)}catch(e){throw error$1(e,LOGGER_TAG_CLIENT,null==o?void 0:o.userId),new BoomError(CLIENT_BANNED,"用户点赞==>sendMessage出错")}}))}chatEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({chatEnable:e}).catch((e=>e))}))}joinAudioEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({joinAudioEnable:e}).catch((e=>e))}))}joinVideoEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({joinVideoEnable:e}).catch((e=>e))}))}userListEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({userListEnable:e}).catch((e=>e))}))}audioEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({audioEnable:e}).catch((e=>e))}))}videoEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({videoEnable:e}).catch((e=>e))}))}modifyNameEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({modifyNameEnable:e}).catch((e=>e))}))}backgroundAIEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({backgroundAIEnable:e}).catch((e=>e))}))}forceOpenUserCamera(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({forceOpenUserCamera:e}).catch((e=>e))}))}forceOpenUserMic(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({forceOpenUserMic:e}).catch((e=>e))}))}joinCueVoice(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({joinCueVoice:e}).catch((e=>e))}))}recordEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({recordEnable:e}).catch((e=>e))}))}raiseHandEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({raiseHandEnable:e}).catch((e=>e))}))}joinMicrophoneDisable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({joinMicrophoneDisable:e}).catch((e=>e))}))}joinCameraDisable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({joinCameraDisable:e}).catch((e=>e))}))}changeFileUpdateModelPermission(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({fileUpdateModel:e}).catch((e=>e))}))}changeFileUpdateLookPermission(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({fileUpdateLook:e}).catch((e=>e))}))}changeFileUpdateDownPermission(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({fileUpdateDown:e}).catch((e=>e))}))}changeFileUpdateEditPermission(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({fileUpdateEdit:e}).catch((e=>e))}))}changeScreenShareModelPermission(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({screenShareModel:e}).catch((e=>e))}))}changeOnlyOnePersonSharePermission(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({onlyOnePersonShare:e}).catch((e=>e))}))}setForceOnUser(e){return __awaiter(this,void 0,void 0,(function*(){yield this.updateCustomStats({forceOn:{user:e}}).catch((e=>e))}))}updateCloudRecord(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.updateCustomStats({cloudRecord:{userId:e.userId,recordStatus:e.recordStatus}}).catch((e=>e))}))}updateSafeHideSec(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.updateCustomStats({safeHideSec:e}).catch((e=>e))}))}updateHostLayout(e,t=!1){return __awaiter(this,void 0,void 0,(function*(){if(this.userVM.checkLocalHasMaster())return this.updateCustomStats({from:{fromTag:"masterId"},hostLayout:e},t);info("您不是主持人,没有该上报权限",LOGGER_TAG_CLIENT)}))}checkDevices(e){return __awaiter(this,void 0,void 0,(function*(){const t={domain:"user-control",method:"check-devices",params:{fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(t,e).catch((e=>Promise.reject(dist$4.BmCheckDeviceError(`检测对方设备send-message发生错误: ${e}`))))}))}resp2CheckDevices(e,t){return __awaiter(this,void 0,void 0,(function*(){const r={domain:"user-control",method:"resp-to-check-devices",params:Object.assign(Object.assign({},e),{fromUserId:this.boomCore.getLocalParticipant().getID()})};if(!t)return Promise.reject(dist$4.BmCheckDeviceError(`响应设备检测: uid: ${t} 未找到用户`));try{yield this.boomCore.customMessage(JSON.stringify(r),t)}catch(e){return Promise.reject(dist$4.BmCheckDeviceError(`响应响应设备检测send-message发生错误 ${e}`))}}))}changeRemoteVideoProfile(e,t){return __awaiter(this,void 0,void 0,(function*(){const r={domain:"user-control",method:"change-video-profile",params:Object.assign(Object.assign({},e),{fromUserId:this.boomCore.getLocalParticipant().getID()})};this.sendMessageWithMaster(r,t).catch((e=>Promise.reject(dist$4.BmChangeVideoProfileError(`调节对方的视频分辨率send-message发生错误: ${e}`))))}))}resp2ChangeRemoteVideoProfile(e,t,r){return __awaiter(this,void 0,void 0,(function*(){const i={domain:"user-control",method:"resp-to-change-video-profile",params:{status:e,profile:r,fromUserId:this.boomCore.getLocalParticipant().getID()}};if(!t)return Promise.reject(dist$4.BmChangeVideoProfileError(`响应调节视频分辨率: uid: ${t} 未找到用户`));try{yield this.boomCore.customMessage(JSON.stringify(i),t)}catch(e){return Promise.reject(dist$4.BmChangeVideoProfileError(`响应调节视频分辨率send-message发生错误 ${e}`))}}))}changeRemoteAudioProfile(e,t){return __awaiter(this,void 0,void 0,(function*(){const r={domain:"user-control",method:"change-audio-profile",params:{microphoneDevice:e.microphoneDevice,speakerDevice:e.speakerDevice,echoCancellation:e.echoCancellation,noiseSuppression:e.noiseSuppression,autoGainControl:e.autoGainControl,speakerVolume:e.speakerVolume,microVolume:e.microVolume,fromUserId:this.boomCore.getLocalParticipant().getID()}};this.sendMessageWithMaster(r,t).catch((e=>Promise.reject(dist$4.BmChangeAudioProfileError(`调节音频send-message发生错误 ${JSON.stringify(e)}`))))}))}resp2ChangeRemoteAudioProfile(e,t){return __awaiter(this,void 0,void 0,(function*(){const r={domain:"user-control",method:"resp-to-change-audio-profile",params:{status:e,fromUserId:this.boomCore.getLocalParticipant().getID()}};if(!t)return Promise.reject(dist$4.BmChangeAudioProfileError(`响应调节音频: uid: ${t} 未找到用户`));try{yield this.boomCore.customMessage(JSON.stringify(r),t)}catch(e){return Promise.reject(dist$4.BmChangeAudioProfileError(`响应调节音频send-message发生错误 ${e}`))}}))}}class BMChatVM{constructor(e,t,r){this.messageList=[],this.hasDangerMessageWatcher=new Subject,this.notificationMessageList=debounce((()=>{this.messageListWatcher.next(this.messageList)}),500),this.boomCore=e,this.userVM=t,this.bmRoom=r,this.messageListWatcher=new BehaviorSubject(this.messageList)}sendMessage(e,t,r){return __awaiter(this,void 0,void 0,(function*(){let i=e.replace(/(^\s*)|(\s*$)/g,""),s=(new Date).getTime(),o={domain:"room-control",method:"send-talk",params:{stream:{user:this.userVM.localUser.userId,avatar:this.userVM.localUser.avatar,sendTime:s,nickname:this.userVM.localUser.nickName},status:i}},n=this.userVM.getLocalUser();try{let e,a=!1,u=r;u||(yield this.boomCore.sendMessage(JSON.stringify(o),t).then((t=>{e=t.seq})).catch((e=>{warn("sendmessage 出错","",null==n?void 0:n.userId,[e]),e&&39===e.code&&(a=!0,this.hasDangerMessageWatcher.next(!0))})));const l=new BMMessageInfo({userId:null==n?void 0:n.userId,message:i,isLocal:null==n?void 0:n.isLocal,avatar:null==n?void 0:n.avatar,nickName:null==n?void 0:n.nickName,sendTime:s,to:t,isDanger:a,seq:e,failed:u});return this.addMessage(l,!1),u?Promise.reject(l):Promise.resolve()}catch(e){throw error$1(e,LOGGER_TAG_CLIENT,null==n?void 0:n.userId),new BoomError(CLIENT_BANNED,"发送聊天消息==>sendMessage出错")}}))}addMessage(e,t){if(!t||this.bmRoom.participantNotice){if(0==this.messageList.length||e.timeStamp-this.messageList[this.messageList.length-1].timeStamp>=notGetTalkInterval){const e=new BMMessageInfo({isMeetingNotice:!0,message:""});this.messageList.push(e)}this.messageList.push(e),this.notificationMessageList()}}updateMessageListWatcher(e){this.messageList=e,this.messageListWatcher.next(this.messageList)}getHistoryMessage(){return __awaiter(this,void 0,void 0,(function*(){const e=yield this.boomCore.getMessages(0,this.boomCore.getMsgSeq());let t=[];return e.items.forEach((e=>{if(e.private||e.to)return!1;if(0==e.msg.length||-1==e.msg.indexOf("{"))return!1;const r=JSON.parse(e.msg);if("send-talk"!=r.method)return!1;const i=e.seq;let s=r.params,o=s.stream.user?s.stream.user:e.userId;s.stream.nickname,s.status,(new Date).getTime();const n=new BMMessageInfo({userId:o,message:s.status,nickName:s.stream.nickname,isLocal:o==this.userVM.localUser.userId,avatar:s.stream.avatar,sendTime:s.stream.sendTime,seq:i});t.push(n)})),Promise.resolve(t)}))}generateInfo(e){return new BMMessageInfo(e)}}class BMSpeaker{constructor(e,t){this.user=e,this.stream=t}getID(){return this.stream.getStreamId()}getUser(){return this.user}}function getMasterSort(e,t){return 16|~~e<<1|~~t}function getLocalSort(e,t){return 12|~~e<<1|~~t}function getManagerSort(e,t){return 8|~~e<<1|~~t}function getGuestSort(e,t){return 4|~~e<<1|~~t}function getTimestamp(){return Date.now()}function benchmark(){const e=getTimestamp();return function(){return getTimestamp()-e}}var __spreadArray=function(e,t,r){if(r||2===arguments.length)for(var i,s=0,o=t.length;s<o;s++)!i&&s in t||(i||(i=Array.prototype.slice.call(t,0,s)),i[s]=t[s]);return e.concat(i||Array.prototype.slice.call(t))},BrowserInfo=function(e,t,r){this.name=e,this.version=t,this.os=r,this.type="browser"},NodeInfo=function(e){this.version=e,this.type="node",this.name="node",this.os=process.platform},SearchBotDeviceInfo=function(e,t,r,i){this.name=e,this.version=t,this.os=r,this.bot=i,this.type="bot-device"},BotInfo=function(){this.type="bot",this.bot=!0,this.name="bot",this.version=null,this.os=null},ReactNativeInfo=function(){this.type="react-native",this.name="react-native",this.version=null,this.os=null},SEARCHBOX_UA_REGEX=/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/,SEARCHBOT_OS_REGEX=/(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/,REQUIRED_VERSION_PARTS=3,userAgentRules=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["edge-ios",/EdgiOS\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["miui",/MiuiBrowser\/([0-9\.]+)$/],["beaker",/BeakerBrowser\/([0-9\.]+)/],["edge-chromium",/EdgA?\/([0-9\.]+)/],["chromium-webview",/(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)/],["pie",/^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/],["pie",/^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/],["netfront",/^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FB[AS]V\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Gecko\)$/],["curl",/^curl\/([0-9\.]+)$/],["searchbot",SEARCHBOX_UA_REGEX]],operatingSystemRules=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Windows CE",/Windows CE|WinCE|Microsoft Pocket Internet Explorer/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/]];function detect(e){return e?parseUserAgent(e):"undefined"==typeof document&&"undefined"!=typeof navigator&&"ReactNative"===navigator.product?new ReactNativeInfo:"undefined"!=typeof navigator?parseUserAgent(navigator.userAgent):getNodeVersion()}function matchUserAgent(e){return""!==e&&userAgentRules.reduce((function(t,r){var i=r[0],s=r[1];if(t)return t;var o=s.exec(e);return!!o&&[i,o]}),!1)}function parseUserAgent(e){var t=matchUserAgent(e);if(!t)return null;var r=t[0],i=t[1];if("searchbot"===r)return new BotInfo;var s=i[1]&&i[1].split(".").join("_").split("_").slice(0,3);s?s.length<REQUIRED_VERSION_PARTS&&(s=__spreadArray(__spreadArray([],s,!0),createVersionParts(REQUIRED_VERSION_PARTS-s.length),!0)):s=[];var o=s.join("."),n=detectOS(e),a=SEARCHBOT_OS_REGEX.exec(e);return a&&a[1]?new SearchBotDeviceInfo(r,o,n,a[1]):new BrowserInfo(r,o,n)}function detectOS(e){for(var t=0,r=operatingSystemRules.length;t<r;t++){var i=operatingSystemRules[t],s=i[0];if(i[1].exec(e))return s}return null}function getNodeVersion(){return void 0!==process&&process.version?new NodeInfo(process.version.slice(1)):null}function createVersionParts(e){for(var t=[],r=0;r<e;r++)t.push("0");return t}const browser=detect(),isSafari="safari"===(null==browser?void 0:browser.name)||"ios"===(null==browser?void 0:browser.name);var PlayerState;!function(e){e[e.NO_CONTAINER=0]="NO_CONTAINER",e[e.NO_PLAYING=1]="NO_PLAYING",e[e.PLAYING=2]="PLAYING"}(PlayerState||(PlayerState={}));const namespace$1=`.streammodel${Math.random()}`;class BMStreamModel{constructor(e,t,r=!1){this.streamType=STREAM_TYPE.OTHER,this.pullFailedNum=0,this._video_enable=!1,this._audio_enable=!1,this.videoEnableWatcher=new BehaviorSubject(this._video_enable),this.audioEnableWatcher=new BehaviorSubject(this._audio_enable),this.streamUpdateWatcher=new Subject,this.isSubScribedWatcher=new Subject,this.playStateChangeWatcher=new Subject,this.noContainerWatcher=new Subject,this.noBigContainerWatcher=new Subject,this.audioLevelWatcher=new Subject,this.isCurrentDisplay=!1,this.isDisplay=!1,this.isDisplayObserve=new Subject,this.isInBig=!1,this.isInBigObserve=new Subject,this._hasPulled=!1,this.playerId="",this.shouldPull=!1,this.smallPlayFailed=0,this._pulledStreamType="small",this.pulledStreamGoal="small",this.bigPlayerId="",this.isPlayingBig=!1,this.muted=!1,this.checkVideoTimer=null,this.checkCount=0,this.sortNum=-1,this.isWhiteboard=!1,this.handleDisplayChange=e=>{this.isDisplay!==e&&(this.isDisplay=e,this.isDisplay||(this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),this.checkVideoTimer=null,this.checkCount=0,this.pulledStreamType="small"),this.sendMessage2Room())},this.onPlayerStateChange=e=>{var t,r;"error"===e.type&&e.reason&&"NotAllowedError"===e.reason.name&&(info("播放失败, 需要调用 resume 方法"),this.playStateChangeWatcher.next(this)),"PAUSED"!==e.state&&"pause"!==e.reason||(this.player&&(null===(t=this.player)||void 0===t||t.resume()),null===(r=this.stream)||void 0===r||r.resume())},this.handleStreamConnectError=()=>{info("流出现的connect-error userId","",this.userId,["streamId ==>",this.streamId,"nickname =>",this.nickname,"isLocal => ",this.isLocal]),this.isLocal?BoomEmitter.emitter.emit(HANDLE_STREAM_CONNECT_ERROR,{stream:this,isLocal:!0}):BoomEmitter.emitter.emit(HANDLE_STREAM_CONNECT_ERROR,{stream:this,isLocal:!1})},this.bindElement=e=>{this.playerId=e,(this.isLocal||this.stream&&this.stream.isSubscribed())&&this.emitBindElement()},this.bindBigElement=e=>{this.bigPlayerId=e,(this.isLocal||this.stream&&this.stream.isSubscribed())&&this.emitBindBigElement()},this.sendMessage2Room=debounce((()=>{BoomEmitter.emitter.emit(RECEIVE_SUBSCRIBE_MESSAGE,{stream:this})}),100),this.emitBindElement=debounce((()=>{BoomEmitter.emitter.emit(BIND_ELEMENT,{stream:this})}),50),this.emitBindBigElement=debounce((()=>{BoomEmitter.emitter.emit(BIND_BIG_ELEMENT,{stream:this})}),50),this.currentIsPlaying=(e,t=!0)=>{var r;const i=document.getElementById(e);if(!i)return PlayerState.NO_CONTAINER;let s,o,n=0;const a=Array.from(i.children);return s=a.length>0,o=a.length,a.forEach((e=>{0===e.children.length&&(n+=1)})),n>0&&(warn(`check stream current is playing failed, ${e}`),t?this.stop():(null===(r=this.player)||void 0===r||r.destroy(),this.player=null)),s&&o>n?PlayerState.PLAYING:PlayerState.NO_PLAYING},this.play=(e=!1)=>__awaiter(this,void 0,void 0,(function*(){var t,r;if(!this.playerId)return void warn(`no playerId, do not play :${this.nickname} - ${this.userId} - ${this.streamId}`);const i=this.stream;if(i){if(!this.isLocal&&!i.isSubscribed())return;const s=benchmark();if(this.isDisplay&&this.videoEnable){if(e)return this.stop(),yield i.play(this.playerId,{backgroundColor:"#202020",fit:"contain",audio:!autoPlayAudio}),null===(t=BoomEmitter.emitter)||void 0===t||t.emit(STREAM_PLAY,{uid:this.userId}),void info(`播放耗时: ${s()}`,"",this.userId);const o=this.currentIsPlaying(this.playerId);if(o===PlayerState.NO_CONTAINER)warn("找不到播放器容器","stream play",this.userId,["流 id =>",this.streamId,"nickname =>",this.nickname,"playerId =>",this.playerId]),this.playerId||BoomEmitter.emitter.emit(NO_CONTAINER,{type:this.isShare?"share":"normal",id:this.userId,container:"small"});else if(o===PlayerState.NO_PLAYING)try{info("远端流开始播放","",this.userId),yield i.play(this.playerId,{backgroundColor:"#202020",fit:"contain",audio:!autoPlayAudio}),null===(r=BoomEmitter.emitter)||void 0===r||r.emit(STREAM_PLAY,{uid:this.userId}),info("远端流播放结束",this.userId,this.streamId,[this.nickname]),info(`播放耗时: ${s()}`,"",this.userId),this.smallPlayFailed=0,this.checkSmallVideo()}catch(e){this.stop(),setTimeout((()=>{error$1("播放小流失败, 尝试重新播放","播放",this.userId,[this.streamId,this.stream,"error => ",JSON.stringify(e)]),this.play()}),2e3)}}else this.stop()}})),this.playInBig=(e=!1)=>__awaiter(this,void 0,void 0,(function*(){var t,r,i,s;if(!this.bigPlayerId)return void warn(`no bigPlayerId, do not play in big :${this.nickname} - ${this.userId} - ${this.streamId}`);const o=this.stream;if(o){if(!this.isLocal&&!o.isSubscribed())return;if(this.isInBig&&this.videoEnable&&this.bigPlayerId){const s=benchmark();if(e)return this.initBigPlayer(),yield null===(t=this.player)||void 0===t?void 0:t.play(o),null===(r=BoomEmitter.emitter)||void 0===r||r.emit(STREAM_PLAY,{uid:this.userId}),void info(`大流播放耗时: ${s()}`,"",this.userId);const n=this.currentIsPlaying(this.bigPlayerId,!1);n===PlayerState.NO_CONTAINER?(warn("找不到 bigPlayerId","大流播放",this.userId,["流 id =>",this.streamId]),this.bigPlayerId||BoomEmitter.emitter.emit(NO_CONTAINER,{type:this.isShare?"share":"normal",id:this.userId,container:"big"})):n===PlayerState.NO_PLAYING&&(info("远端流大流开始播放","",this.userId),this.initBigPlayer(),this.player&&(yield this.player.play(o),null===(i=BoomEmitter.emitter)||void 0===i||i.emit(STREAM_PLAY,{uid:this.userId}),this.isPlayingBig=!0,this.checkBigVideo()),info("远端流大流播放结束",this.userId,this.streamId,[this.nickname]),info(`大流播放耗时: ${s()}`,"",this.userId))}else null===(s=this.player)||void 0===s||s.destroy(),this.player=null,this.isPlayingBig=!1}})),this.collectAudioLevel=()=>{this.stream?(this.stream.off("audio-level"+namespace$1,this.handleAudioLevel),this.stream.on("audio-level"+namespace$1,this.handleAudioLevel)):warn("collection audio level but not have brtc stream")},this.handleAudioLevel=e=>{this.audioLevelWatcher.next(e)},this.checkSmallVideo=()=>__awaiter(this,void 0,void 0,(function*(){if(this.videoEnable&&this.stream&&!this.isShare){if(!!document.getElementById(this.playerId)){const e=`video_${this.stream.getStreamId()}`;if(!!document.getElementById(e))return void this.checkVideoDecodeFrame(e);error$1(`stream is display, but no video element, should replay now: ${this.smallPlayFailed}`),this.smallPlayFailed<3&&(this.smallPlayFailed+=1,yield sleep(1e3),this.stop(),yield this.play())}}})),this.checkBigVideo=debounce((()=>{var e;if(this.videoEnable&&this.stream){const t=`video_${this.stream.getStreamId()}_big`;if(!this.isShare&&this.isDisplay&&this.playerId){const r=!!document.getElementById(t);if(this.isInBig){if(r)return void this.checkVideoDecodeFrame(t);error$1("stream is playing in big, but no video element, replay now"),null===(e=this.player)||void 0===e||e.destroy(),this.player=null,this.playInBig()}}this.isShare&&this.isInBig&&this.bigPlayerId&&this.checkVideoDecodeFrame(t)}}),2e3),this.checkStreamIsPlaying=debounce((()=>{if(this.isDisplay&&this.videoEnable){if(!this.stream)return;if(!document.getElementById(this.playerId))return;this.currentIsPlaying(this.playerId)===PlayerState.PLAYING||(error$1(`${this.userId} - ${this.nickname}: current is ${this.isDisplay}, but there is no player, try play again`),this.play())}}),1e3),this.user=e,this.updateUser(e),this._stream=t,this.isDisplayObserve.subscribe((e=>{this.handleDisplayChange(e)})),this.isInBigObserve.subscribe((e=>{this.handleIsInBig(e)})),this.updateSortNum(!1),this.isWhiteboard=r}get hasPulled(){return this._hasPulled}set hasPulled(e){this._hasPulled=e}get pulledStreamType(){return this._pulledStreamType}set pulledStreamType(e){this._pulledStreamType=e}get uuid(){return this.isShare?`${this.userId}_share`:this.isWhiteboard?`${this.userId}_whiteboard`:this.userId}get isAudience(){return this.user.isAudience}get canShow(){return!this.isAudience||this.user.audienceEnableSpeaking}changeMute(e){this.muted!==e&&(this.muted=e,this.handleSpeakerChange())}handleSpeakerChange(){var e,t;this.isLocal||(this.muted?null===(e=this.stream)||void 0===e||e.setAudioVolume(0):null===(t=this.stream)||void 0===t||t.setAudioVolume(1))}get isToupingma(){return this.user.isToupingma}get isMixer(){return this.user.isMixer}get isSignal(){return this.user.isSignal}genReceiveSubMsg(){let e;return e=this.isDisplay?{audio:!0,video:!0,streamType:"small"}:{audio:!0,video:!1,streamType:"small"},e}handleIsInBig(e){this.isInBig!==e&&(this.isInBig=e,info("isInBig change","",this.userId,["streamId =>",this.streamId,"isInBig => ",e]),this.isInBig?this.pulledStreamGoal="big":this.pulledStreamGoal="small",this.sendMessage2Room(),this.isShare&&(this.isInBig||(this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),this.checkVideoTimer=null,this.checkCount=0)))}setVideoEnable(e){this._video_enable!==e&&(this._video_enable=e,this.videoEnableWatcher.next(e))}setAudioEnable(e){this._audio_enable!==e&&(this._audio_enable=e,this.audioEnableWatcher.next(e))}updateStream(e,t=!0,r){this._stream&&this._stream.off(namespace$1),this._stream=e,e?(this.audioEnable&&(this.isShare||r.addToDetector(new BMSpeaker(this.user,e)),this.collectAudioLevel()),e.on("player-state-changed"+namespace$1,this.onPlayerStateChange),e.on("connect-error"+namespace$1,this.handleStreamConnectError),e.on("stream-connection-error"+namespace$1,this.handleStreamConnectError),!this.isLocal&&t&&this.sendMessage2Room()):(this.hasPulled=!1,this.pulledStreamType="small",this.streamType=STREAM_TYPE.OTHER)}updateBloudStream(e,t,r=!1){var i,s,o,n,a;let u=!1,l=!1;e?(this.bloudStream={audio:e.audio,video:e.video,isScreen:e.isScreen},e.customInfo&&(this.bloudStream.customInfo&&(null===(i=this.bloudStream.customInfo)||void 0===i?void 0:i.volume)===e.customInfo.volume||Number.isNaN(e.customInfo.volume)||this.setRemoteAudioLevel(e.customInfo.volume),this.bloudStream.customInfo=e.customInfo),this.stream&&(this.bloudStream.audio?this.isShare||(t.addToDetector(new BMSpeaker(this.user,this.stream)),this.collectAudioLevel()):t.removeFromDetector(this.stream.getStreamId())),this.bloudStream.video!==this._video_enable&&(u=!0),this.bloudStream.audio!=this._audio_enable&&(l=!0),this.setVideoEnable(this.bloudStream.video),this.setAudioEnable(this.bloudStream.audio),this.isLocal&&(this.isDisplay&&this.play(),this.isInBig&&this.playInBig()),r&&(this.destroyBrtcStream(),null===(s=this.player)||void 0===s||s.destroy(),this.stream&&(null===(o=t.room.audioPlayer)||void 0===o||o.removeStream(this.stream)),this._stream=void 0),l&&!this.audioEnable&&this.stream&&(null===(n=t.room.audioPlayer)||void 0===n||n.removeStream(this.stream)),(this.bloudStream.audio||this.bloudStream&&this.isDisplay)&&(!this.stream||r?BoomEmitter.emitter.emit(ADD_PULL_USER,{id:this.userId,isWeb:this.isWeb,isScreen:this.isShare}):(this.isLocal||this.hasPulled&&this.stream.isSubscribed()||this.sendMessage2Room(),u&&(this.isDisplay&&this.playerId&&this.emitBindElement(),this.isInBig&&this.bigPlayerId&&this.emitBindBigElement()),!this.isLocal&&l&&this.audioEnable&&this.stream.isSubscribed()&&BoomEmitter.getInstance().emit(ADD_AUDIO_PLAY,{stream:this})))):(this.bloudStream=void 0,this.setVideoEnable(!1),this.setAudioEnable(!1),null===(a=this.player)||void 0===a||a.destroy(),this.stream&&t.removeFromDetector(this.stream.getStreamId())),this.updateSortNum(!0),this.streamUpdateWatcher.next(!0)}updateBloudCustomInfo(e){var t;this.bloudStream?(this.bloudStream.customInfo&&(null===(t=this.bloudStream.customInfo)||void 0===t?void 0:t.volume)===e.volume||Number.isNaN(e.volume)||this.setRemoteAudioLevel(e.volume),this.bloudStream.customInfo=e):error$1("updateBloudCustomInfo, but bloudStream is undefined","","",["userId =>",this.userId])}get streamId(){return this._stream?this._stream.getStreamId():this.userId}get bStreamId(){return this.isShare?`${this.userId}_screen`:this.userId}get userId(){return this.user.userId}get stream(){return this._stream}get isLocal(){return this.user.isLocal}get isShare(){var e,t,r;return this.stream?this.user.isWeb?null===(t=null===(e=this.stream)||void 0===e?void 0:e.getUserId().toString())||void 0===t?void 0:t.endsWith(STREAM_SUFFIX_SCREEN):this.stream&&this.stream.getType&&"assist"===this.stream.getType():!!(null===(r=this.bloudStream)||void 0===r?void 0:r.isScreen)}get isWeb(){return this.user.isWeb}get isMobile(){return this.user.isMobile}get audioEnable(){return this._audio_enable}get videoEnable(){return this._video_enable}get brtcPlayerId(){return`player_${this.stream.getStreamId()}`}get selfPlayerId(){return`player_${this.stream.getStreamId()}_big_container`}get nickname(){var e;return this.user.isToupingma?`${this.user.nickName}(的投屏)`:(null===(e=this.streamId)||void 0===e?void 0:e.includes(STREAM_SUFFIX_SCREEN))?`${this.user.nickName}(的屏幕共享)`:this.user.nickName}get audioLevel(){var e;return(null===(e=this._stream)||void 0===e?void 0:e.getAudioLevel())||0}getUser(){return this.user}setRemoteAudioLevel(e){if(this.isLocal)throw new Error("不能设置本地流的音量");BoomEmitter.emitter.emit(SET_VOLUME,{streamId:this.streamId,volume:e})}getStats(){var e;return null===(e=this._stream)||void 0===e?void 0:e.getStats()}initBigPlayer(){try{if(this.bigPlayerId){const e=document.querySelector(`#${this.bigPlayerId}`);if(!e)return void console.error("播放大流失败,找不到大流容器",this.userId,this.streamId,this.bigPlayerId);this.player&&this.player.destroy(),this.player=null,this.player=new dist$1.Player(e,{fit:"contain"}),this.player.on("player-state-changed",(e=>{var t;this.stream&&(info("big player state change","","",[JSON.stringify(e)]),"error"===e.type&&e.reason&&"NotAllowedError"===e.reason.name&&this.playStateChangeWatcher.next(this),"PAUSED"===e.state&&(null===(t=this.player)||void 0===t||t.resume()))}))}}catch(e){error$1("初始化大窗口的播放器失败",this.userId,this.streamId,e.message)}}stop(){var e;try{null===(e=this._stream)||void 0===e||e.stop()}catch(e){}}destroyBrtcStream(){var e;try{null===(e=this._stream)||void 0===e||e.destroy()}catch(e){}}isPlaying(){var e;return null===(e=this._stream)||void 0===e?void 0:e.isPlaying()}replay(){var e;return null===(e=this._stream)||void 0===e?void 0:e.replay()}resume(){var e,t;null===(e=this._stream)||void 0===e||e.resume(),null===(t=this.player)||void 0===t||t.resume()}hasAudio(){var e;return(null===(e=this._stream)||void 0===e?void 0:e.hasAudio())||!1}hasVideo(){var e;return(null===(e=this._stream)||void 0===e?void 0:e.hasVideo())||!1}updateUser(e){this.user=e;const t=this.user.userInfo.pos;this.isWhiteboard?this.streamType=STREAM_TYPE.OTHER:t?t.includes("web")||t.includes("pc")?this.streamType=STREAM_TYPE.SUB_MAIN:t.includes("_toupingma")?this.streamType=STREAM_TYPE.SHARE:this.streamType=STREAM_TYPE.SINGLE:this.streamType=STREAM_TYPE.SINGLE}updateSortNum(e=!0){const t=this.getSortNum();this.setSortNum(t,e)}setSortNum(e,t){this.sortNum!==e&&(this.sortNum=e,t&&(BoomEmitter.emitter.emit(MODEL_SORT_NUM_CHANGE,null),this.user.updateSortNum(!0)))}getSortNum(){return this.user.isMaster?getMasterSort(this.audioEnable,this.videoEnable):this.user.isLocal?getLocalSort(this.audioEnable,this.videoEnable):this.user.isManager?getManagerSort(this.audioEnable,this.videoEnable):getGuestSort(this.audioEnable,this.videoEnable)}checkVideoDecodeFrame(e){if(this.isLocal||isSafari)return;const t=document.getElementById(e);if(this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),!t)return info("黑帧检测没有播放容器",this.userId,"",["streamId =>",this.streamId,"isShare =>",this.isShare,"playerId =>",this.playerId,"bigPlayerId =>",this.bigPlayerId,"isDisplay => ",this.isDisplay,"isInbig =>",this.isInBig]),void(this.isShare&&this.isInBig&&this.bigPlayerId&&(warn("share stream has no video player, retry play"),this.playInBig(!0)));this.checkVideoTimer=setTimeout((()=>{var r,i,s;const o=(null==t?void 0:t.getVideoPlaybackQuality)&&(null===(r=null==t?void 0:t.getVideoPlaybackQuality())||void 0===r?void 0:r.totalVideoFrames)||0;if(!t||t.getVideoPlaybackQuality){if(!(o>0))return this.checkCount>10?(error$1("检测超过了十次,还没有视频流,需要重新拉取","黑帧检测",this.userId,["streamId =>",this.streamId,"nickname =>",this.nickname,"videoContainer => ",e]),this.checkVideoTimer&&clearTimeout(this.checkVideoTimer),this.checkVideoTimer=null,this.checkCount=0,this.hasPulled=!1,this.pulledStreamType="small",null===(i=this._stream)||void 0===i||i.off(namespace$1),this.destroyBrtcStream(),null===(s=this.player)||void 0===s||s.destroy(),this.player=null,this._stream=void 0,void this.sendMessage2Room()):(this.checkCount+=1,void this.checkVideoDecodeFrame(e));clearTimeout(this.checkVideoTimer)}else this.checkVideoTimer&&clearTimeout(this.checkVideoTimer)}),200)}subscribeStream(){this.shouldPull=!0,BoomEmitter.emitter.emit(MANUAL_SUBSCRIPTION,{stream:this})}unSubscribeStream(){this.shouldPull=!1,BoomEmitter.emitter.emit(UNSUBSCRIBE_STREAM,{stream:this})}unAttach(e){var t,r;"all"===e?(this.stop(),null===(t=this.player)||void 0===t||t.destroy(),this.playerId="",this.bigPlayerId=""):"big"===e?(null===(r=this.player)||void 0===r||r.destroy(),this.bigPlayerId=""):"small"===e&&(this.stop(),this.playerId="")}}function getHTMLMediaStreamOptions(e){let t=null;const r=e.videoElement,i=r.offsetWidth,s=r.offsetHeight;if(r.captureStream?t=r.captureStream():r.mozCaptureStream&&(t=r.mozCaptureStream()),t){const e=t.getVideoTracks()[0],r=t.getAudioTracks()[0];return{video:!!e,audio:!!r,videoSource:e,audioSource:r,width:i,height:s}}return null}function getMediaStreamInfo(e,t){try{const r=e.getVideoTracks()[0],i=e.getAudioTracks()[0];return{video:!!r,audio:!!i,videoSource:r,audioSource:i,width:t.width,height:t.height}}catch(e){return console.log("获取共享音频参数有误",e),null}}function transShareScreen2User(e){return e.split("_")[0]}const namespace=`.streammuteevent${Math.random()}`;class BMStreamModelVM{constructor(){this.streamModels=new Map,this.streamModelsWatcher=new BehaviorSubject(BMStreamModelVM.filterStreamModels(this.sortStreamModels())),this.shareStreamModels=new Map,this.shareStreamModelsWatcher=new BehaviorSubject(Array.from(this.shareStreamModels.values())),this.localStreamErrorWatcher=new Subject,this.localModel=null,this.room=null,this.bloudStream=null,this.whiteboard=null,this.whiteboardWatcher=new BehaviorSubject(this.whiteboard),this.brtcStream=null,this.videoStream=null,this.audioStream=null,this.localIsShare=!1,this.isShareWatcher=new Subject,this.localShareCustomStats={},this._speaker_enable=!0,this.speakerEnableWatcher=new BehaviorSubject(this._speaker_enable),this.mixStreamUid=null,this.mixStreamModelWatcher=new BehaviorSubject(null),this.canvasTimer=null,this._recorder=void 0,this._isRecording=!1,this._slicingRecord=!1,this.isRecordingWatcher=new BehaviorSubject(this._isRecording),this._speaker=null,this._speakers=new Map,this.speakerWatcher=new BehaviorSubject(this._speaker),this.rtcPublishing=!1,this.noContainerWatcher=new Subject,this.noBigContainerWatcher=new Subject,this.localStreamConnectErrorWatcher=new Subject,this.localShareError=new Subject,this.localShareEndedError=new Subject,this.shareBloudStateMap=new Map,this.streamPlayWatcher=new Subject,this.handleStreamPlay=e=>{this.streamPlayWatcher.next(e)},this.updateModelSort=debounce((()=>{const e=this.sortStreamModels();this.streamModelsWatcher.next(BMStreamModelVM.filterStreamModels(e))}),200,{maxWait:500}),this.handleNoContainer=e=>{const{type:t,container:r,id:i}=e;let s;s="share"===t?this.shareStreamModels.get(i):this.streamModels.get(i),s&&("small"===r?this.noContainerWatcher.next(s):this.noBigContainerWatcher.next(s))},this.getHTMLMediaStream=getHTMLMediaStreamOptions,this.getMediaStream=getMediaStreamInfo,setTimeout((()=>{this.createCanvas(),this.canvasDisplay()}),100),BoomEmitter.emitter.on(MODEL_SORT_NUM_CHANGE,this.updateModelSort),BoomEmitter.emitter.on(NO_CONTAINER,this.handleNoContainer),BoomEmitter.emitter.on(STREAM_PLAY,this.handleStreamPlay),this.muteHandlerVideo=this.muteHandler.bind(this,"video"),this.muteHandlerAudio=this.muteHandler.bind(this,"audio")}get mixStreamModel(){return this.mixStreamUid?this.streamModels.get(this.mixStreamUid):null}static filterStreamModels(e){return e.filter((e=>!e.isToupingma)).filter((e=>!ignoreUserId.some((t=>e.userId.includes(t))))).filter((e=>e.canShow))}initWithRoom(e){return this.room=e,this}setSpeakerEnable(e){var t;this._speaker_enable!==e&&(null===(t=this.room.audioPlayer)||void 0===t||t.mute(!e),this._speaker_enable=e,this.speakerEnableWatcher.next(e))}getStreamModels(){return Array.from(this.streamModels.values())}getStreamModelByUId(e){return this.streamModels.get(e)}getShareStreamModelByUId(e){return this.shareStreamModels.get(e)}getLocalStreamModel(){return this.localModel}createWhiteBoard(e){var t;const r=null===(t=this.room)||void 0===t?void 0:t.userVM.getUser(e);if(r)return this.whiteboard=new BMStreamModel(r,void 0,!0),this.whiteboardWatcher.next(this.whiteboard),this.whiteboard;error$1("创建白板失败,找不到对应的用户","创建白板",e)}removeWhiteBoard(){this.whiteboard=null,this.whiteboardWatcher.next(this.whiteboard)}createStreamModel(e,t){const r=new BMStreamModel(e,void 0);return t&&r.updateStream(t,!0,this),r.isShare?(e.addStream(`${e.userId}${STREAM_SUFFIX_SCREEN}`,r),this.addShareStreamModel(r)):(e.addStream(e.userId,r),this.addStreamModel(r)),r.isMixer&&(this.mixStreamUid=r.userId,this.mixStreamModel&&this.mixStreamModelWatcher.next(this.mixStreamModel)),r}addStreamModel(e){e&&(e.isLocal?this.localModel||(this.localModel=e,this.localModel.audioEnableWatcher.subscribe((e=>{this._recorder&&this._recorder.muteAudio(!e)})),this.streamModels.set(this.localModel.userId,this.localModel)):this.streamModels.set(e.userId,e))}addShareStreamModel(e){e&&(e.isLocal?e.audioEnable&&e.stream&&this.addToRecorder(e.stream):(this.shareStreamModels.set(e.userId,e),this.shareStreamModelsWatcher.next(Array.from(this.shareStreamModels.values()))))}removeStreamModel(e){if(!e)return;e.isShare&&e.isLocal&&this.removeFromRecorder(e.stream);const t=e.getUser();this.streamModels.delete(e.userId),t.removeStream(e.userId)}removeShareStreamModelByUId(e){var t,r,i;const s=this.shareStreamModels.get(e);if(s){try{null===(t=s.stream)||void 0===t||t.destroy()}catch(e){}s.audioEnable&&s.stream&&(null===(i=null===(r=this.room)||void 0===r?void 0:r.audioPlayer)||void 0===i||i.removeStream(s.stream)),this.removeShareStreamModel(s)}}removeShareStreamModel(e){if(!e)return;const t=e.getUser();this.shareStreamModels.delete(e.userId),t.removeStream(`${e.userId}${STREAM_SUFFIX_SCREEN}`),t.updateSortNum(!0),this.shareStreamModelsWatcher.next(Array.from(this.shareStreamModels.values()))}removeStreamModelByUId(e){var t,r,i;const s=this.getStreamModelByUId(e);if(s){if(s.stream){this.removeFromDetector(s.streamId);try{s.stream.destroy()}catch(e){}}s.audioEnable&&(s.stream?null===(r=null===(t=this.room)||void 0===t?void 0:t.audioPlayer)||void 0===r||r.removeStream(s.stream):null===(i=this.room)||void 0===i||i.audioPlayer.removeStreamByUid(e)),this.removeStreamModel(s)}return s}remoteStreamPublished(e){var t;const r=e.getStreamId(),i=e.getUserId().toString();let s,o=this.getStreamModelByUId(i);if(o||(s=transShareScreen2User(String(i)),o=this.getStreamModelByUId(s)),o){if(isShareStream(e)){let r;if(s){const e=null===(t=this.room)||void 0===t?void 0:t.userVM.getUser(s);if(e&&!e.hasShare)return void warn("share stream published, but user has no share","",s);r=this.shareStreamModels.get(s)}if(r){if(r.isLocal)return;r.hasPulled=!1,r.pulledStreamType="small",r.updateStream(e,!0,this),this.shareStreamModelsWatcher.next(Array.from(this.shareStreamModels.values()))}else{const t=this.createStreamModel(o.getUser(),e),r=e.getVideoOn(),i=e.getAudioOn(),s=this.shareBloudStateMap.get(o.userId);s?t.updateBloudStream({audio:s.audio,video:s.video,isScreen:!0,customInfo:s.customInfo},this):t.updateBloudStream({audio:i,video:r,isScreen:!0},this),t.streamType=STREAM_TYPE.SHARE}}else o.hasPulled=!1,o.pulledStreamType="small",this.updateStreamModel(o,e);this.changeSingleStreamSpeaker(o).catch((e=>{error$1("设置单股流的扬声器的播放出现了问题","设置播放音量",null==o?void 0:o.userId)}))}else error$1("brtc有人推流了,但是找不到对应的streamModel, 找不到对应的用户","",i,["streamId => ",r,"types =>",e.getType&&e.getType()])}remoteStreamUnpublished(e){var t,r,i;let s;const o=e.getUserId().toString(),n=e.getStreamId();let a=!1;if(o.includes(STREAM_SUFFIX_SCREEN)){const e=transShareScreen2User(String(o));if(e==(null===(r=null===(t=this.room)||void 0===t?void 0:t.getLocalParticipant())||void 0===r?void 0:r.userId))return info("本地用户取消共享屏幕","取消共享屏幕",o),void this.localModel.getUser().removeStream(o);s=this.getShareStreamModelByUId(e),a=!0}else n.startsWith(MOBILE_STREAM_SUFFIX_SCREEN)||e.getType&&"assist"===e.getType()?(s=this.getShareStreamModelByUId(o),a=!0):s=this.getStreamModelByUId(o);if(this.removeFromDetector(n),this.removeFromRecorder(e),!s)return void error$1("brtc有人取消推流 但是找不到对应的streamModel","取消推流",o,[n]);const u=null===(i=s.stream)||void 0===i?void 0:i.getStreamId();if(u===n)return s.hasPulled=!1,s.pulledStreamType="small",a||s.streamType===STREAM_TYPE.SHARE?(s.updateStream(void 0,!0,this),void this.removeShareStreamModel(s)):(s.updateStream(void 0,!0,this),s);error$1("当前取消推流的和当前绑定的不是同一股流","",o,["streamId =>",n,"streamModel.streamId",u])}sortStreamModels(){return sortStreamModels(Array.from(this.streamModels.values()))}updateStreamModel(e,t){e.updateStream(t,!0,this)}updateShareStreamModel(e,t){e.updateStream(t,!0,this)}setLocalVideoEnable(e,t){var r,i,s,o,n,a,u;return __awaiter(this,void 0,void 0,(function*(){if(!(null===(r=this.room)||void 0===r?void 0:r.networkState.brtc)||!this.room.netConnecting)return void error$1("断网期间开本地摄像头,不与响应");if(!this.room.mediaPermission.camera)return Promise.reject(dist$4.BMCameraNotAuthError());const l=this.getLocalStreamModel();if(info(`开关本地摄像头, 状态 => ${e}`,"publish",null==l?void 0:l.userId),l)if(e)if(null==l?void 0:l.stream){if(t)yield l.stream.replaceTrack(t).catch((e=>{error$1("美颜 videoTrack replace 失败","","",JSON.stringify(e))}));else{const e=null===(i=null==l?void 0:l.stream)||void 0===i?void 0:i.getVideoTrack(),t=null==l?void 0:l.stream.hasVideo();if(e&&"CanvasCaptureMediaStreamTrack"!==(null==e?void 0:e.constructor.name)&&0!=t){if(warn(`setLocalVideoEnable: no videoTrack, trackName:${null==e?void 0:e.constructor.name}`,"publish",null==l?void 0:l.userId),isH5()){const e=yield this.createVideoStreamTrack().catch((e=>Promise.reject(e)));yield l.stream.replaceTrack(e)}}else{const e=yield this.createVideoStreamTrack().catch((e=>Promise.reject(e)));yield l.stream.replaceTrack(e).then((()=>{l.stream.setVideoProfile(this.room.videoProfile),info("replace video track success")})).catch((e=>(error$1(`本地视频流更换视频流失败,当前麦克风状态 => ${null==l?void 0:l.audioEnable}`,"publish",null==l?void 0:l.userId,[JSON.stringify(e)]),(null==l?void 0:l.audioEnable)||this.handleStreamUpdateFailed(),Promise.reject(dist$4.BMOpenCameraError()))))}}if(!(yield l.stream.unmuteVideo()))return error$1(`brtc unmuteVideo失败,当前麦克风状态=> ${null==l?void 0:l.audioEnable} hasVideo=>${l.stream.hasVideo()}`,"publish",null==l?void 0:l.userId),(null==l?void 0:l.audioEnable)||this.handleStreamUpdateFailed(),Promise.reject(dist$4.BMOpenCameraError());if(info("brtc unmute video success"),!this.bloudStream.published)return void(yield this.publishBloudStream(!1,!0));yield this.bloudStream.setVideoEnabled(!0).then((()=>{l.updateStream(l.stream,!0,this),l.updateBloudStream({video:!0,audio:l.audioEnable,isScreen:!1},this),l.playInBig(!0)})).catch((e=>{error$1("bloud unmuteVideo失败","publish","",[JSON.stringify(e)]),this.handleStreamUpdateFailed()}))}else try{yield this.createStreamAndPublish(!1,!0,l,t),l.playInBig(!0)}catch(e){return this.rtcPublishing=!1,error$1("开启本地摄像头失败","","",[JSON.stringify(e)]),null===(o=null===(s=this.localModel)||void 0===s?void 0:s.stream)||void 0===o||o.destroy(),(null===(n=this.bloudStream)||void 0===n?void 0:n.published)&&this.bloudStream.unpublish(),null===(a=this.localModel)||void 0===a||a.updateStream(void 0,!0,this),null===(u=this.localModel)||void 0===u||u.updateBloudStream(void 0,this),Promise.reject(e)}else{l.stream&&(yield this.muteOrUnpublishStream("video",!0,l).catch((e=>(error$1("关闭本地摄像头失败","","",[e]),Promise.reject(dist$4.BmSetLocalVideoEnable(e))))))}}))}handleStreamUpdateFailed(){var e;return __awaiter(this,void 0,void 0,(function*(){error$1("brtc unmute stream failed, now unpublish","publish",null===(e=this.localModel)||void 0===e?void 0:e.userId),yield this.unpublishStream()}))}setLocalAudioEnable(e){var t;return __awaiter(this,void 0,void 0,(function*(){const r=this.getLocalStreamModel();if((null===(t=this.room)||void 0===t?void 0:t.networkState.brtc)&&this.room.netConnecting){if(!this.room.mediaPermission.microphone)return Promise.reject(dist$4.BMMicNotAuthError());if(info(`开关本地麦克风, 状态 => ${e}`,"publish",null==r?void 0:r.userId),r)if(e)if(null==r?void 0:r.stream){if(!r.stream.hasAudio()){const e=yield this.createLocalAudioStream();if(!e)return Promise.reject(dist$4.BMOpenMicroError());const t=e.getAudioTrack();yield r.stream.replaceTrack(t).then((()=>{info("replace audio track success","publish",r.userId)})).catch((e=>(error$1("本地视频流更换音频流失败","publish","",JSON.stringify(e)),this.handleStreamUpdateFailed(),Promise.reject(dist$4.BMOpenMicroError()))))}const e=yield r.stream.unmuteAudio().catch((e=>{var t;info("brtc unmuteAudio:err, hasAudio="+(null===(t=r.stream)||void 0===t?void 0:t.hasAudio()),"publish","",[e])}));if(!e)return error$1(`unmute local stream audio res失败,当前摄像头状态 => ${null==r?void 0:r.videoEnable} hasAudio=>${r.stream.hasAudio()}`,"publish",null==r?void 0:r.userId),(null==r?void 0:r.videoEnable)||(yield this.handleStreamUpdateFailed()),Promise.reject(dist$4.BMOpenMicroError());if(info("unmute audio success","publish",r.userId),!this.bloudStream.published)return void(yield this.publishBloudStream(!0,!1));yield this.bloudStream.setAudioEnabled(!0).then((()=>{info("bloud stream set audio enable","publish",r.userId),r.updateStream(r.stream,!1,this),r.updateBloudStream({audio:!0,video:r.videoEnable,isScreen:!1},this)})).catch((e=>{error$1(`bloud unmuteAudio失败,当前摄像头状态 => ${null==r?void 0:r.videoEnable}`,"publish",null==r?void 0:r.userId,[JSON.stringify(e)]),(null==r?void 0:r.videoEnable)||this.handleStreamUpdateFailed()}))}else yield this.createStreamAndPublish(!0,!1,r).catch((e=>{var t,i,s,o,n;return error$1("开启本地麦克风失败","publish",null==r?void 0:r.userId,[e]),this.rtcPublishing=!1,null===(i=null===(t=this.localModel)||void 0===t?void 0:t.stream)||void 0===i||i.destroy(),(null===(s=this.bloudStream)||void 0===s?void 0:s.published)&&this.bloudStream.unpublish(),null===(o=this.localModel)||void 0===o||o.updateStream(void 0,!0,this),null===(n=this.localModel)||void 0===n||n.updateBloudStream(void 0,this),Promise.reject(e)}));else{const e=r.stream;if(e){this.removeFromDetector(e.getStreamId());try{yield this.muteOrUnpublishStream("audio",!0,r)}catch(e){return error$1("关闭本地麦克风失败","publish",r.userId,[JSON.stringify(e)]),Promise.reject(dist$4.BmSetLocalAudioEnable(e))}}}}else error$1("断网期间开本地麦克风,不与响应","publish",null==r?void 0:r.userId)}))}joinWithAudioAndAudio(e,t){return __awaiter(this,void 0,void 0,(function*(){info("join with audio and video","publish","",[e,t]);const r=this.getLocalStreamModel();return this.brtcStream?(e&&(yield this.brtcStream.unmuteAudio()),t&&(yield this.brtcStream.unmuteVideo()),void(yield this.publishBloudStream(e,t))):yield this.createStreamAndPublish(e,t,r).catch((e=>{var t,r,i,s,o,n;return error$1("join create and publish failed","publish",null===(t=this.localModel)||void 0===t?void 0:t.userId,[JSON.stringify(e)]),this.rtcPublishing=!1,null===(i=null===(r=this.localModel)||void 0===r?void 0:r.stream)||void 0===i||i.destroy(),(null===(s=this.bloudStream)||void 0===s?void 0:s.published)&&this.bloudStream.unpublish(),null===(o=this.localModel)||void 0===o||o.updateStream(void 0,!0,this),null===(n=this.localModel)||void 0===n||n.updateBloudStream(void 0,this),Promise.reject(e)}))}))}changeSpeaker(e,t=!1){var r;return __awaiter(this,void 0,void 0,(function*(){if(info("change speaker","device","",[JSON.stringify(e)]),!(null==e?void 0:e.deviceId))throw new dist$4.BoomError(LOCAL_ERROR,"切换扬声器失败!,原因: 选择的设备没有deviceId"+(null==e?void 0:e.name));try{this.room.setSelectSpeakerDevice(e),null===(r=this.room.audioPlayer)||void 0===r||r.setDevice(e.deviceId,t)}catch(e){throw error$1("切换扬声器失败","device","",["error",null==e?void 0:e.message,JSON.stringify(e)]),new dist$4.BoomError(LOCAL_ERROR,"切换扬声器失败")}}))}changeSingleStreamSpeaker(e){return __awaiter(this,void 0,void 0,(function*(){const t=this.room.selectAudioOutputDevice;t&&(e.isLocal||e.stream&&(yield e.stream.setAudioOutput(t.deviceId)))}))}changeAudioInput(e){var t,r,i,s,o;return __awaiter(this,void 0,void 0,(function*(){info("change audio input device","device","",[JSON.stringify(e)]),e||warn("changeAudioInput, device is null","device");const n=null===(t=this.localModel)||void 0===t?void 0:t.stream;if(null===(r=this.room)||void 0===r||r.setSelectAudioDevice(e),n){return"ended"!==(null===(i=n.getAudioTrack())||void 0===i?void 0:i.readyState)||(null===(s=this.room)||void 0===s?void 0:s.deviceChanging)?(yield n.switchDevice("audio",e.deviceId).catch((e=>{info("switchDevice:error","device","",[JSON.stringify(e)])})),null===(o=this._recorder)||void 0===o||o.setMicDevice(e.deviceId),!0):(error$1("try to change audio input device but audio track is ended","device"),!1)}}))}changeVideoInput(e){var t,r,i,s;return __awaiter(this,void 0,void 0,(function*(){info("change video input device","device","",[JSON.stringify(e)]);const o=null===(t=this.localModel)||void 0===t?void 0:t.stream;if(null===(r=this.room)||void 0===r||r.setSelectVideoDevice(e),o){return"ended"===(null===(i=o.getVideoTrack())||void 0===i?void 0:i.readyState)?(error$1("try to change video input device but video track is ended","device"),!1):(yield o.switchDevice("video",e.deviceId).catch((e=>{info("switchDevice:error","device","",[e])})),(null===(s=this.localModel)||void 0===s?void 0:s.isDisplay)&&this.localModel.isInBig&&this.localModel.playInBig(!0),!0)}}))}muteSpeaker(e){return __awaiter(this,void 0,void 0,(function*(){info("静音扬声器 状态 =>","device","",["status =>",e]);try{this.setSpeakerEnable(e)}catch(t){return Promise.reject(dist$4.BmSetLocalSpeakerEnable(`开关扬声器失败 ${e} error: ${JSON.stringify(t)}`))}}))}createLocalAudioStream(){return __awaiter(this,void 0,void 0,(function*(){return this.audioStream||(this.audioStream=yield this.room.createSingleLocalStream({video:!1,audio:!0},this.localModel.userId).catch((e=>(error$1("create brtc stream error","publish","",[JSON.stringify(e)]),Promise.reject(e))))),this.audioStream}))}onlyBrtcPublish(){return __awaiter(this,void 0,void 0,(function*(){const e=this.localModel,t=!!isH5();return this.audioStream=yield this.room.createSingleLocalStream({video:t,audio:!0},e.userId).catch((e=>(error$1("create brtc stream error","publish","",[JSON.stringify(e)]),Promise.reject(e)))),this.bloudStream=this.room.boomCore.creteBloudLocalStream({audio_enable:!1,video_enable:!1},e.userId),info("onlyBrtcPublish","publish",e.userId),this.createStreamAndPublish(!1,!1,e).catch((e=>(this.rtcPublishing=!1,Promise.reject(e))))}))}createStreamAndPublish(e,t,r,i){var s,o,n,a,u,l,c,d,h;return __awaiter(this,void 0,void 0,(function*(){if(this.rtcPublishing)return warn(`createStreamAndPublish(audio:${e},video:${t}), rtcPublishing ignore`,"publish",r.userId),!1;if(this.rtcPublishing=!0,info(`createStreamAndPublish(audio:${e},video:${t})`,"publish",r.userId),(null===(s=this.brtcStream)||void 0===s?void 0:s.published)&&(yield null===(o=this.room)||void 0===o?void 0:o.unpublish(this.brtcStream)),t)if(null===(u=this.brtcStream)||void 0===u||u.destroy(),this.brtcStream=null,(null===(l=this.room)||void 0===l?void 0:l.audioDevices.length)||(error$1("当前电脑中没有音频输入设备,重新获取","publish"),yield null===(c=this.room)||void 0===c?void 0:c.initDevices()),(null===(d=this.room)||void 0===d?void 0:d.videoDevices.length)||(error$1("当前电脑中没有视频输入设备, 重新获取","publish"),yield null===(h=this.room)||void 0===h?void 0:h.initDevices()),this.room.audioDevices.length>0)try{this.brtcStream=yield this.room.createSingleLocalStream({video:!0,audio:this.room.mediaPermission.microphone},r.userId).catch((e=>(error$1("create brtc audio and video stream failed","publish","",[JSON.stringify(e)]),Promise.reject(e))))}catch(e){info("create brtc audio and video stream failed, recreate brtc stream with audio close and video open"),this.brtcStream=yield this.room.createSingleLocalStream({video:!0,audio:!1},r.userId).catch((e=>(error$1("create brtc audio and video stream failed","publish","",[JSON.stringify(e)]),Promise.reject(e))))}else warn("没有音频输入设备,只能创建视频流","publish"),this.brtcStream=yield this.room.createSingleLocalStream({video:!0,audio:!1},r.userId).catch((e=>(error$1("create brtc video stream failed","publish","",[JSON.stringify(e)]),Promise.reject(e))));else{const e=BMStreamModelVM.getCanvasStream().getVideoTracks()[0];this.audioStream||(this.audioStream=yield this.room.createSingleLocalStream({video:!1,audio:!0},r.userId).catch((e=>(error$1("create brtc stream error","publish","",[JSON.stringify(e)]),Promise.reject(e)))));const t=null===(n=this.audioStream)||void 0===n?void 0:n.getAudioTrack();if(!t||t&&t.muted)throw null===(a=this.audioStream)||void 0===a||a.destroy(),this.audioStream=null,this.localStreamErrorWatcher.next("audio"),error$1("麦克风设备不可用","publish","",["muted => ?",null==t?void 0:t.muted]),dist$4.getStreamError("麦克风");this.brtcStream=null,0==this.room.videoDevices.length?(warn("当前电脑中没有视频输入设备, createSingleLocalStream video:false","publish",r.userId),this.brtcStream=this.audioStream):isH5()?this.brtcStream=this.audioStream:this.brtcStream=yield this.room.createSingleLocalStream({video:!0,audio:!0,videoSource:e,audioSource:t},r.userId).catch((e=>Promise.reject(e)))}return this.brtcStream&&(t||(yield this.brtcStream.muteVideo()),e||(yield this.brtcStream.muteAudio()),i&&(yield this.brtcStream.replaceTrack(i).catch((e=>{error$1("美颜 videoTrack replace 失败","publish","",JSON.stringify(e))}))),yield this.room.publish(this.brtcStream).catch((e=>{var t,r;return null===(t=this.brtcStream)||void 0===t||t.destroy(),this.brtcStream=null,null===(r=this.localModel)||void 0===r||r.updateBloudStream(void 0,this),Promise.reject(e)})),this.brtcStreamAddEvent(),(e||t)&&(yield this.publishBloudStream(e,t))),this.rtcPublishing=!1,!0}))}brtcStreamAddEvent(){var e,t,r,i;null===(e=this.brtcStream)||void 0===e||e.on("video-track-mute"+namespace,this.muteHandlerVideo),null===(t=this.brtcStream)||void 0===t||t.on("video-track-ended"+namespace,this.muteHandlerVideo),null===(r=this.brtcStream)||void 0===r||r.on("audio-track-mute"+namespace,this.muteHandlerAudio),null===(i=this.brtcStream)||void 0===i||i.on("audio-track-ended"+namespace,this.muteHandlerAudio)}brtcStreamRemoveEvent(){var e,t,r,i;null===(e=this.brtcStream)||void 0===e||e.off("video-track-mute"+namespace,this.muteHandlerVideo),null===(t=this.brtcStream)||void 0===t||t.off("video-track-ended"+namespace,this.muteHandlerVideo),null===(r=this.brtcStream)||void 0===r||r.off("audio-track-mute"+namespace,this.muteHandlerAudio),null===(i=this.brtcStream)||void 0===i||i.off("audio-track-ended"+namespace,this.muteHandlerAudio)}publishBloudStream(e,t){var r;return __awaiter(this,void 0,void 0,(function*(){const i=this.localModel.userId;this.bloudStream=this.room.boomCore.creteBloudLocalStream({audio_enable:e,video_enable:t},i),yield this.bloudStream.publish({video_enable:t,audio_enable:e}),null===(r=this.localModel)||void 0===r||r.updateBloudStream({video:t,audio:e,isScreen:!1},this)}))}muteHandler(e){var t,r,i;const s=()=>__awaiter(this,void 0,void 0,(function*(){var e,t,r,i,s,o,n,a,u;(null===(e=this.localModel)||void 0===e?void 0:e.stream)&&(yield null===(t=this.room)||void 0===t?void 0:t.unpublish(this.localModel.stream).catch((e=>{error$1("brtc local stream has problem and unpublish failed","publish","",[String(e)])}))),null===(i=null===(r=this.localModel)||void 0===r?void 0:r.stream)||void 0===i||i.destroy(),null===(s=this.audioStream)||void 0===s||s.destroy(),null===(o=this.videoStream)||void 0===o||o.destroy(),null===(n=this.brtcStream)||void 0===n||n.destroy(),this.brtcStream=null,this.audioStream=null,this.videoStream=null,null===(a=this.localModel)||void 0===a||a.updateStream(void 0,!0,this),yield this.bloudStream.unpublish(),null===(u=this.localModel)||void 0===u||u.updateBloudStream(void 0,this)})),o=null===(t=this.localModel)||void 0===t?void 0:t.videoEnable,n=null===(r=this.localModel)||void 0===r?void 0:r.audioEnable,a=null===(i=this.brtcStream)||void 0===i?void 0:i.getAudioDeviceId();o||n?setTimeout((()=>__awaiter(this,void 0,void 0,(function*(){var t,r,i,o,n,u,l,c,d,h,m,p,f,g,v,y,b,S,_,E;if(null===(t=this.localModel)||void 0===t?void 0:t.stream){const t=null===(r=this.localModel)||void 0===r?void 0:r.videoEnable,$=null===(i=this.localModel)||void 0===i?void 0:i.audioEnable;if(a!=(null===(o=this.localModel)||void 0===o?void 0:o.stream.getAudioDeviceId()))return void info("muteHandler:设备已经切换无需处理","publish");if(null===(n=this.room)||void 0===n?void 0:n.deviceChanging)return void info("muteHandler:设备正在切换中","publish");if("video"===e){if(!t)return void info("muteHandler:视频已关,无需处理","publish");const r=null===(u=this.localModel.stream.getVideoTrack())||void 0===u?void 0:u.muted,i=null===(l=this.localModel.stream.getVideoTrack())||void 0===l?void 0:l.label,o=null===(c=this.localModel.stream.getVideoTrack())||void 0===c?void 0:c.enabled,n=null===(d=this.localModel.stream.getVideoTrack())||void 0===d?void 0:d.readyState,a="ended"===n;if(info(`muteHandler:brtc video track status:${r},enabled:${o},readyState:${n},label:${i} `,"publish",""),!a&&!r&&o)return;info("video track has problem, now try recreate and publish","publish"),error$1("brtc本地流出现异常,需要重新推流处理","publish","",["videoEnable:",t,"audioEnable:",$,"type:",e]),this.localStreamConnectErrorWatcher.next(dist$4.BMStreamDisconnectedError("摄像头")),(null===(h=this.localModel)||void 0===h?void 0:h.stream)&&(yield null===(m=this.room)||void 0===m?void 0:m.unpublish(this.localModel.stream).catch((e=>{error$1("brtc local stream has problem and unpublish failed","publish","",[String(e)])})),null===(p=this.localModel)||void 0===p||p.updateStream(void 0,!0,this),null===(g=null===(f=this.localModel)||void 0===f?void 0:f.stream)||void 0===g||g.destroy(),null===(v=this.localModel.player)||void 0===v||v.destroy(),null===(y=this.brtcStream)||void 0===y||y.destroy(),this.brtcStream=null,null===(b=this.videoStream)||void 0===b||b.destroy(),this.videoStream=null);try{yield this.createStreamAndPublish($,t,this.localModel),this.localModel.isInBig&&this.localModel.bigPlayerId&&this.localModel.playInBig(!0)}catch(e){this.rtcPublishing=!1,error$1("brtc video stream has problem and republish stream failed","publish","",[JSON.stringify(e)]),yield s(),this.localStreamConnectErrorWatcher.next(dist$4.BmSyncStreamFailError())}}else{if(!$)return void console.log("muteHandler:音频已关,无需处理","publish");error$1("brtc本地流出现异常,需要重新推流处理","publish","",["videoEnable",t,"audioEnable",$,"type",e]),this.localStreamConnectErrorWatcher.next(dist$4.BMStreamDisconnectedError("麦克风")),null===(S=this.audioStream)||void 0===S||S.destroy(),null===(_=this.localModel.player)||void 0===_||_.destroy(),this.audioStream=null,this.audioStream=yield this.room.createPBSingleLocalStream({video:!1,audio:!0});const r=null===(E=this.audioStream)||void 0===E?void 0:E.getAudioTrack();r&&!r.muted?this.localModel.stream&&(yield this.localModel.stream.replaceTrack(r).then((()=>{this.localModel.isInBig&&this.localModel.bigPlayerId&&this.localModel.playInBig(!0)})).catch((e=>{error$1("本地流出现异常, 重新创建audio stream replace 失败","publish","",[JSON.stringify(e)]),this.localStreamConnectErrorWatcher.next(dist$4.BmSyncStreamFailError()),s()}))):(error$1("recreate audio stream failed, now unpublish","publish"),this.localStreamConnectErrorWatcher.next(dist$4.BmSyncStreamFailError()),s())}}this.localStreamErrorWatcher.next(e)}))),1e3):info("muteHandler:音视频已关,无需处理","publish")}unpublishStream(e=!1){var t,r,i,s,o;return __awaiter(this,void 0,void 0,(function*(){info("unpublish stream","publish",null===(t=this.localModel)||void 0===t?void 0:t.userId);const n=this.getLocalStreamModel();if(n){const t=n.stream;t&&!0===e&&(yield null===(r=this.room)||void 0===r?void 0:r.unpublish(t).catch((e=>{error$1("brtc 取消发布失败","publish",n.userId,[JSON.stringify(e)])})),null===(i=this.brtcStream)||void 0===i||i.destroy(),this.brtcStream=null);try{this.removeFromRecorder(t),null===(s=this.videoStream)||void 0===s||s.destroy(),this.videoStream=null,(null===(o=this.bloudStream)||void 0===o?void 0:o.published)&&(yield this.bloudStream.unpublish().catch((e=>{error$1("bloud unpublish stream failed","publish",n.userId,[JSON.stringify(e),null==e?void 0:e.code,null==e?void 0:e.message])}))),n.updateBloudStream(void 0,this)}catch(e){error$1("stream destroy failed","publish",n.userId,[JSON.stringify(e)])}}}))}muteOrUnpublishStream(e,t,r){return __awaiter(this,void 0,void 0,(function*(){const t=r.stream;let i=!0;if("audio"===e?i=r.videoEnable:"video"===e&&(i=r.audioEnable),i)if("audio"===e){(yield t.muteAudio())||error$1("brtc muteAudio失败","publish","本地"),yield this.bloudStream.setAudioEnabled(!1).catch((e=>{error$1("bloud setAudioEnabled 失败","publish","本地",[JSON.stringify(e)])})),r.updateBloudStream({audio:!1,video:!0,isScreen:!1},this)}else"video"===e&&(yield this.justReplaceVideoTrack(t),yield this.bloudStream.setVideoEnabled(!1).catch((e=>{error$1("bloud setVideoEnabled 失败","publish","本地",[JSON.stringify(e)])})),r.updateBloudStream({video:!1,audio:!0,isScreen:!1},this));else{if("video"==e)this.justReplaceVideoTrack(t);else if("audio"==e){(yield t.muteAudio())||error$1("brtc muteAudio失败","publish","本地")}yield this.unpublishStream()}}))}justReplaceVideoTrack(e){var t;return __awaiter(this,void 0,void 0,(function*(){const r=BMStreamModelVM.getCanvasStream().getVideoTracks()[0];try{yield e.replaceTrack(r),yield e.muteVideo()}catch(e){error$1("关闭本地视频失败","publish","本地",[JSON.stringify(e)])}try{null===(t=this.videoStream)||void 0===t||t.destroy(),this.videoStream=null}catch(e){error$1("this.videoStream destroy failed","publish")}}))}toggleShareScreen(e,t={},r){var i,s,o,n,a;return __awaiter(this,void 0,void 0,(function*(){info("开关共享屏幕","publish","开关共享屏幕",["stats => ",e]),!e&&(null===(i=this.room)||void 0===i?void 0:i.boomCore.shareScreenStream)&&this.removeFromRecorder(null===(s=this.room)||void 0===s?void 0:s.boomCore.shareScreenStream),e||(this.localShareCustomStats={});const u=null===(o=this.room)||void 0===o?void 0:o.voiceMode;return t.audioHint=u,yield this.room.boomCore.toggleShareScreen(e,t,r).then((()=>{if(this.localModel.getUser().hasShare=!0,info("bmStreamVm toggleShareScreen success","切换共享屏幕","",["enable =>",e]),e){const e=this.room.boomCore.shareScreenStream;e&&this.remoteStreamPublished(e)}else this.localModel.getUser().hasShare=!1,this.localModel.getUser().removeStream(`${this.localModel.userId}_screen`),this.localModel.getUser().updateSortNum(!0)})).catch((t=>(error$1("bmStreamVm toggleShareScreen error","切换共享屏幕","",["enable =>",e]),Promise.reject(t)))),e&&(null===(n=this.room)||void 0===n?void 0:n.boomCore.shareScreenStream)&&this.addToRecorder(null===(a=this.room)||void 0===a?void 0:a.boomCore.shareScreenStream),this.localIsShare=e,this.isShareWatcher.next(e),Promise.resolve(!0)}))}setShareScreenContentHint(e){var t;null===(t=this.room)||void 0===t||t.boomCore.setShareScreenContentHint(e)}createCanvas(){const e=document.createElement("canvas");e.id="tarCanvas",e.style.width="1px",e.style.height="1px",e.style.position="absolute",e.style.bottom="0",document.body.appendChild(e)}canvasDisplay(){let e=document.getElementById("tarCanvas");if(e){e.width=640,e.height=360;let t=e.getContext("2d");t.fill(),t.beginPath(),t.fillStyle="rgb(0,0,0)",t.fillRect(0,0,e.width,e.height),this.canvasTimer&&clearTimeout(this.canvasTimer),this.canvasTimer=setTimeout((()=>{this.canvasDisplay()}),1e3)}}static getCanvasStream(){return document.getElementById("tarCanvas").captureStream()}createVideoStreamTrack(){var e;return __awaiter(this,void 0,void 0,(function*(){return null===(e=this.videoStream)||void 0===e||e.destroy(),this.videoStream=null,this.videoStream=yield this.room.createPBSingleLocalStream({video:!0,audio:!1},this.localModel.userId).catch((e=>(error$1("createPBSingleLocalStream error","publish","",[JSON.stringify(e)]),Promise.reject(e)))),this.videoStream.getVideoTrack()}))}startRecord(e){var t;return __awaiter(this,void 0,void 0,(function*(){if(this._recorder)return;this._recorder=null===(t=this.room)||void 0===t?void 0:t.boomCore.createRecorder(e),this._recorder.on("track-ended",(()=>{this.stopRecord(),info("record: ended","record")})),this._recorder.on("started",(()=>{var e;info("record: started.","record"),this._recorder.muteAudio(!(null===(e=this.localModel)||void 0===e?void 0:e.audioEnable))}));let r=!0;try{yield this._recorder.start(),this._isRecording=!0,this.isRecordingWatcher.next(!0),this.shareStreamModels.forEach((e=>{e.stream&&!e.stream.isLocalStream()&&e.stream.isSubscribed()&&this.addToRecorder(e.stream)})),this.streamModels.forEach((e=>{e.stream&&!e.stream.isLocalStream()&&e.stream.isSubscribed()&&this.addToRecorder(e.stream)}))}catch(e){warn("record: error","record","",[JSON.stringify(e)]);let t=this._recorder;this._recorder=void 0,this._isRecording=!1,this.isRecordingWatcher.next(!1),r=!1,yield null==t?void 0:t.stop()}return r}))}addToRecorder(e){var t;e.isLocalStream()&&!e.isScreenStream()||this._isRecording&&!this._slicingRecord&&(e.on("audio-track-ended",(()=>{this.removeFromRecorder(e)})),null===(t=this._recorder)||void 0===t||t.addStream(e))}removeFromRecorder(e){var t;this._isRecording&&!this._slicingRecord&&(null===(t=this._recorder)||void 0===t||t.removeStream(e))}stopRecord(){return __awaiter(this,void 0,void 0,(function*(){info("record:stopRecord","record"),this._recorder?(this._isRecording=!1,this.isRecordingWatcher.next(!1),yield this._recorder.stop(),this._recorder=void 0):warn("stopRecord recorder is null","record","")}))}sliceRecord(e,t,r){var i,s,o;return __awaiter(this,void 0,void 0,(function*(){if(!this._isRecording)return;let n=null===(i=this._recorder)||void 0===i?void 0:i._opts;this._slicingRecord=!0;try{yield null===(s=this._recorder)||void 0===s?void 0:s.stop()}catch(e){error$1("record:stop record exception","","",[JSON.stringify(e)])}n.filename=e,this._recorder=null===(o=this.room)||void 0===o?void 0:o.boomCore.createRecorder(n),this._recorder.on("track-ended",(()=>{this.stopRecord(),info("record:record ended.")})),this._recorder.on("started",(()=>{var e;info("record:record started."),this._recorder.muteAudio(!(null===(e=this.localModel)||void 0===e?void 0:e.audioEnable))}));let a=!0;try{yield this._recorder.start(t,r),this._slicingRecord=!1,this.shareStreamModels.forEach((e=>{e.stream&&!e.stream.isLocalStream()&&e.stream.isSubscribed()&&this.addToRecorder(e.stream)})),this.streamModels.forEach((e=>{e.stream&&!e.stream.isLocalStream()&&e.stream.isSubscribed()&&this.addToRecorder(e.stream)}))}catch(e){let t=this._recorder;this._recorder=void 0,this._isRecording=!1,this.isRecordingWatcher.next(!1),this._slicingRecord=!1,a=!1,console.log("record:stopRecord.error",e),yield null==t?void 0:t.stop()}return a}))}startSpeakerDetector(){var e;this._speaker=null,this._speakerDetector=null===(e=this.room)||void 0===e?void 0:e.boomCore.createSpeakerDetector(),this._speakerDetector.on("speaker",(e=>{var t,r,i;let s=!0;e?((null===(t=this._speaker)||void 0===t?void 0:t.getUserInfo().userId)===e.getUser().userId&&(s=!1),this._speaker=e.getUser()):(this._speaker||(s=!1),this._speaker=null),s&&(info("当前讲话人","语音激励",null===(r=this._speaker)||void 0===r?void 0:r.userId,["nickname => ",null===(i=this._speaker)||void 0===i?void 0:i.nickname]),this.speakerWatcher.next(this._speaker))}))}addToDetector(e){this._speakers.set(e.getID(),e),this._speakerDetector&&this._speakerDetector.addStream(e)}removeFromDetector(e){let t=this._speakers.get(e);this._speakerDetector&&t&&(this._speakers.delete(e),this._speakerDetector.removeStream(t))}clearDetector(){const e=[];this._speakers.forEach(((t,r)=>{e.push(r)})),e.forEach((e=>{this.removeFromDetector(e)}))}shareCustomMedia(e,t){var r;return __awaiter(this,void 0,void 0,(function*(){return null===(r=this.room)||void 0===r?void 0:r.boomCore.shareHTMLMedia(e,t)}))}updateBloudStreamCustomStats(e,t,r){var i,s;return __awaiter(this,void 0,void 0,(function*(){info("update bloud stream custom stats","",e,[t,JSON.stringify(r)]);const o=yield null===(i=this.room)||void 0===i?void 0:i.boomCore.updateStream(e,t,r);(null===(s=this.localModel)||void 0===s?void 0:s.userId)===e&&t.startsWith(e)&&t.endsWith("_screen")&&o.customInfo&&(this.localShareCustomStats=o.customInfo)}))}checkStreamStats(e){info("check stream stats","","",[e]),this.streamModels.size<100&&this.streamModels.forEach((e=>{e.checkStreamIsPlaying()}))}clearCache(){var e,t,r,i,s;try{null===(t=null===(e=this.localModel)||void 0===e?void 0:e.stream)||void 0===t||t.destroy(),null===(r=this.videoStream)||void 0===r||r.destroy(),null===(i=this.audioStream)||void 0===i||i.destroy()}catch(e){}this.canvasTimer&&clearTimeout(this.canvasTimer),this.canvasTimer=null,this.streamModels.clear(),this.shareStreamModels.clear(),null===(s=this.room)||void 0===s||s.userVM.clearUsers(),this.shareBloudStateMap.clear()}}class BMRoomInfo{constructor(e){this._roomName="",this.msgSeq="",this.roomID="",this.audioOff=!1,this.selfopenaudio=!1,this.lock=!1,this.leaveNotice=!1,this.openSelf=!1,this.chatNotice="",this.chatNoticeRich="",this.raiseHandsList=new Map,this.raiseHandsWatcher=new BehaviorSubject(Array.from(this.raiseHandsList.values())),this.raiseVideoHandsList=new Map,this.raiseVideoHandsWatcher=new BehaviorSubject(Array.from(this.raiseVideoHandsList.values())),this.raiseSimpleHandsList=new Map,this.raiseSimpleHandsWatcher=new BehaviorSubject(Array.from(this.raiseSimpleHandsList.values())),this.operationPermissionWatcher=new Subject,this.chatNoticeWatcher=new Subject,this.totalUserWatcher=new BehaviorSubject(0),this.totalWaitRoomUserWatcher=new BehaviorSubject(0),this.isOpenWaitRoom=new Subject,this.originJoinRoomParams={},this.originRespInfo={},this.audioOffWatcher=new Subject,this.lockWatcher=new BehaviorSubject(this.lock),this.leaveNoticeWatcher=new BehaviorSubject(this.leaveNotice),this.openSelfWatcher=new BehaviorSubject(this.openSelf),this.setRaiseHandsWatcherValue=debounce((()=>{this.raiseHandsWatcher.next(Array.from(this.raiseHandsList.values()))}),1e3),this.setVideoRaiseHandsWatcherValue=debounce((()=>{this.raiseVideoHandsWatcher.next(Array.from(this.raiseVideoHandsList.values()))}),1e3),this.setSimpleRaiseHandsWatcherValue=debounce((()=>{this.raiseSimpleHandsWatcher.next(Array.from(this.raiseSimpleHandsList.values()))}),1e3),this.room=e,BoomEmitter.emitter.on(RAISE_HAND,(e=>{"raiseHandsAudio"===e.status?e.user.raiseAudioHands?this.addRaiseHandUser(e.user):this.removeRaiseHandUser(e.user.userId):"raiseHandsVideo"===e.status?e.user.raiseVideoHands?this.addVideoRaiseHandUser(e.user):this.removeVideoRaiseHandUser(e.user.userId):"raiseHand"===e.status&&(e.user.raiseHand?this.addSimpleRaiseHandUser(e.user):this.removeSimpleRaiseHandUser(e.user.userId))}))}get roomName(){return this._roomName||(this._roomName=this.room.getName()),this._roomName}get isBigRoom(){return this.room.isBig}get startup(){var e;return null===(e=this.room.boomCore.client)||void 0===e?void 0:e.startup}setup(e){this.roomID=e.room,this.handleInitParams(),this.originRespInfo=e}initCustomStats(e){this.operationPermission=e,void 0!==e.chatNotice&&(this.chatNotice=e.chatNotice),void 0!==e.chatNoticeRich&&(this.chatNoticeRich=e.chatNoticeRich),this.operationPermissionWatcher.next(this.operationPermission)}updateOperationPermission(e){this.operationPermission=Object.assign(Object.assign({},this.operationPermission),e),void 0!==e.chatNotice&&(this.chatNotice=e.chatNotice),void 0!==e.chatNoticeRich&&(this.chatNoticeRich=e.chatNoticeRich),this.operationPermissionWatcher.next(this.operationPermission)}handleInitParams(){const e=this.room.boomCore.getAudioOff(),t=this.room.boomCore.getSelfOpenAudio();this.setAudioOff(e,t)}setAudioOff(e,t){this.audioOff=e,this.selfopenaudio=t,this.audioOffWatcher.next({audioOff:e,selfopenaudio:t})}setlock(e){this.lock=e,this.lockWatcher.next(e)}setLeaveNotice(e){this.leaveNotice=e,this.leaveNoticeWatcher.next(e)}setRaiseHandsList(e){e.forEach((e=>{e.raiseAudioHands&&this.raiseHandsList.set(e.getID(),e),e.raiseVideoHands&&this.raiseVideoHandsList.set(e.getID(),e),e.raiseHand&&this.raiseSimpleHandsList.set(e.getID(),e)})),this.setRaiseHandsWatcherValue(),this.setVideoRaiseHandsWatcherValue(),this.setSimpleRaiseHandsWatcherValue()}addRaiseHandUser(e){this.raiseHandsList.set(e.getID(),e),this.setRaiseHandsWatcherValue()}removeRaiseHandUser(e){this.raiseHandsList.delete(e),this.setRaiseHandsWatcherValue()}addVideoRaiseHandUser(e){this.raiseVideoHandsList.set(e.getID(),e),this.setVideoRaiseHandsWatcherValue()}removeVideoRaiseHandUser(e){this.raiseVideoHandsList.delete(e),this.setVideoRaiseHandsWatcherValue()}addSimpleRaiseHandUser(e){this.raiseSimpleHandsList.set(e.getID(),e),this.setSimpleRaiseHandsWatcherValue()}removeSimpleRaiseHandUser(e){this.raiseSimpleHandsList.delete(e),this.setSimpleRaiseHandsWatcherValue()}}var name="@hysc/meeting",version="10.5.6",description="boom meeting",main="./dist/index.js",module$1="./dist/index.js",types="./dist/index.d.ts",files=["dist","umd"],scripts={build:"tsup ./src/index.ts --format cjs,esm --dts --minify",dev:"tsup ./src/index.ts --format esm,cjs --watch --dts"},author="yangliye",license="MIT",dependencies={"@hysc/bloud":"workspace:*","@hysc/core":"workspace:*","@hysc/p-queue":"6.3.0","@hysc/utils":"workspace:*","detect-browser":"^5.3.0",immutable:"5.0.0-beta.4","lodash-es":"^4.17.21",mitt:"^3.0.0",rxjs:"^7.5.5",typescript:"^4.6.3"},peerDependencies={"@hysc/core":"workspace:*"},devDependencies={"@hysc/brtc":"workspace:*","@types/lodash-es":"^4.17.6"},PackageJson={name:name,version:version,description:description,private:!1,main:main,module:module$1,types:types,files:files,scripts:scripts,author:author,license:license,dependencies:dependencies,peerDependencies:peerDependencies,devDependencies:devDependencies};class SingletonQueue{constructor(e){this.pullMap=new Map,this.room=e}addUser(e){let t=e.id;e.isScreen&&(t=`${t}_screen`),this.pullMap.set(t,e)}removeUser(e){let t=e.id;e.isScreen&&(t=`${t}_screen`),this.pullMap.delete(t)}restart(){this.room.restartPullUsers(this.pullMap)}}class BMLiveVM{constructor(e){this.room=e}get localBMUser(){return this.room.getLocalParticipant()}get localIsAudience(){return this.room.getLocalParticipant().isAudience}handlePull(e){return __awaiter(this,void 0,void 0,(function*(){if(this.localIsAudience){if(e.isMixer)return void(yield this.room.handlePull(e));if(this.localBMUser.audienceEnableSpeaking&&e.audioEnable)return void(yield this.room.handlePull(e))}else e.isMixer||(yield this.room.handlePull(e))}))}handleChangeStreamType(e){return __awaiter(this,void 0,void 0,(function*(){yield this.room.handleChangeStreamType(e)}))}handlePlay(e,t){return __awaiter(this,void 0,void 0,(function*(){this.localIsAudience&&!this.localBMUser.audienceEnableSpeaking?e.isMixer&&(yield this.room.handlePlay(e)):yield this.room.handlePlay(e)}))}handleAudienceDisable(){return __awaiter(this,void 0,void 0,(function*(){this.room.bmStreamVm.getStreamModels().forEach((e=>{var t;e.isMixer||!e.isLocal&&e.stream&&(null===(t=e.stream)||void 0===t?void 0:t.isSubscribed())&&e.hasPulled&&(e.hasPulled=!1,e.pulledStreamType="small",this.room.unsubscribe(e.stream).then((()=>{console.log("观众取消订阅这股流",e.userId,e.nickname,e.isDisplay,e.isCurrentDisplay)})))})),this.handleMixStream(!1)}))}handleAudienceEnable(){return __awaiter(this,void 0,void 0,(function*(){this.handleMixStream(!0),this.room.bmStreamVm.getStreamModels().forEach((e=>{e.isMixer||streamPullQueue.addQueue(this.room.handleQueueTask.bind(this,e),e.streamId,0,e.nickname)}))}))}handleMixStream(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){const i=this.room.bmStreamVm.mixStreamUid;if(i){const s=this.room.bmStreamVm.streamModels.get(i);e?null===(t=null==s?void 0:s.stream)||void 0===t||t.muteAudio().then((()=>{info("静音混流成功")})):null===(r=null==s?void 0:s.stream)||void 0===r||r.unmuteAudio().then((()=>{info("取消静音混流成功")}))}}))}}function addBrtcNetEvent(e){var t,r;null===(t=e.brtcClient.client)||void 0===t||t.signal.channel.on("reconnecting",(()=>e.fire(dist$4.BrtcEvents.BRTC_ROOM_ROCONNECTING))),null===(r=e.brtcClient.client)||void 0===r||r.signal.channel.on("reconnected",(()=>e.fire(dist$4.BrtcEvents.BRTC_ROOM_RECONNECTED)))}class AudioPlay{constructor(e,t){var r;this.playMap=new WeakSet,this.playerMap=new Map,this.muted=!1,this.playStateChangeWatcher=new Subject;const i=document.getElementById(e);if(!i)throw new Error("no container found, play failed");this.container=i,this.room=t,this.deviceId=null===(r=t.selectAudioOutputDevice)||void 0===r?void 0:r.deviceId}addStream(e,t=!1){this.room.shouldPlayAudio&&this.room.autoPlayAudio&&e.isSubscribed()&&(!t&&this.playMap.has(e)||(info("add stream to player","",e.getUserId(),["streamId ",e.getStreamId()]),this.playMap.add(e),this.play(e)))}removeStream(e){const t=e.getStreamId();let r=this.playerMap.get(t);r&&r.destroy(),info("remove audio player","","",["streamId =>",t]),this.playerMap.delete(t),this.playMap.delete(e)}removeStreamByUid(e){let t=new Map;this.playerMap.forEach((r=>{isShareStream(r.stream)||r.stream.getUserId()===e&&t.set(r.stream.getStreamId(),r)})),t.forEach(((e,t)=>{e.off(),e.destroy(),this.playerMap.delete(t),this.playMap.delete(e.stream)})),t.clear()}play(e){var t;return __awaiter(this,void 0,void 0,(function*(){if(e.hasAudio()&&this.container){const r=new dist$1.AudioPlayer(this.container,{});this.addPlayerEvent(r),yield r.play(e);const i=transShareScreen2User(e.getUserId().toString());if(this.deviceId?yield r.setSinkId(this.deviceId):(warn("audioPlayer play() this.deviceId is null ","",i,["streamId =>",e.getStreamId()]),isH5()&&(yield r.setSinkId("default"))),this.muted)r.setVolume(0);else{let s;if(s=isShareStream(e)?this.room.bmStreamVm.shareStreamModels.get(i):this.room.bmStreamVm.streamModels.get(i),s){const e=null===(t=s.bloudStream)||void 0===t?void 0:t.customInfo;e&&e.volume&&(r.audioLevel=e.volume,r.setVolume(e.volume))}}this.playerMap.set(e.getStreamId(),r)}}))}mute(e){this.muted=e,e?this.playerMap.forEach((e=>e.setVolume(0))):this.playerMap.forEach((e=>{e.audioLevel>0?e.setVolume(e.audioLevel):e.setVolume(1)}))}setVolume(e,t){const r=this.playerMap.get(e);if(r){if(r.audioLevel=t,this.muted)return;r.setVolume(t)}else error$1("设置了流的音量,但是没有找到对应的播放器",e)}setDevice(e,t=!1){return __awaiter(this,void 0,void 0,(function*(){info("setDevice:","","",[e]),e&&(this.deviceId=e,this.playerMap.forEach((t=>t.setSinkId(e))))}))}addPlayerEvent(e){e.on("player-state-changed",(t=>{e.stream&&(info("audio player state change","","",[JSON.stringify(t)]),"error"===t.type&&t.reason&&"NotAllowedError"===t.reason.name&&this.playStateChangeWatcher.next(e),"PAUSED"===t.state&&e.resume())}))}clear(){info("audio play clear"),this.playerMap.forEach((e=>e.destroy())),this.playerMap.clear(),this.playMap=new WeakSet}destroy(){info("audio play destroy"),this.playerMap.forEach((e=>e.destroy())),this.playerMap.clear(),this.playMap=new WeakSet}}let _selfSortType=1;const subscribeOptions={audio:!0,video:!0,streamType:"small",videoEnable:!0,audioEnable:!0};let autoPlayAudio=!0;class BMRoom{constructor({initDevices:e}={initDevices:!0}){this.roomVM=null,this.videoDevices=[],this.audioDevices=[],this.audioOutputDevices=[],this.selectVideoDevice=null,this.selectAudioDevice=null,this.selectAudioOutputDevice=null,this.streamQueue=new SingletonQueue(this),this.userListColumns=1,this.sortType=1,this.BRTCConnectFailed=!1,this.pubFailedNum=0,this.streamConnectedErrorQueue=[],this.conferenceMode=1,this.isBig=!1,this.selectVideoDeviceWatcher=new BehaviorSubject(this.selectVideoDevice),this.selectAudioDeviceWatcher=new BehaviorSubject(this.selectAudioDevice),this.selectAudioOutputDeviceWatcher=new BehaviorSubject(this.selectAudioOutputDevice),this.audioDevicesWatcher=new Subject,this.videoDevicesWatcher=new Subject,this.audioOutputDevicesWatcher=new Subject,this.raiseHandleRespWatcher=new Subject,this.enableAudienceSpeakingWatcher=new Subject,this.deviceChangeWatcher=new Subject,this.mediaPermission={microphone:!0,camera:!0,screen:!0},this.videoProfile="360p",this.audioProfile=null,this.voiceMode="",this.videoEncodeConfig=null,this.streamWSReconnectWatcher=new Subject,this.bloudWSReconnectWatcher=new Subject,this.netConnecting=!0,this.netConnectingWatcher=new Subject,this.hasSyncPermission=!0,this.meetingControlOptions={cancelAutoPull:!1},this.forceId="",this.networkState={bloud:!0,brtc:!0},this.brtcNetEnableWatcher=new Subject,this.autoPlayAudio=!0,this.pubFailedTimer=null,this.messageWatcher=new BehaviorSubject({type:MessageType.INIT,status:!1,isNotCancelRootReport:!1}),this.isInWaitRoom=!1,this.shouldPlayAudio=!0,this.deviceChanging=!1,this.handleReprocessStreamError=()=>{this.netConnecting&&this.networkState.brtc&&this.networkState.bloud&&this.streamConnectedErrorQueue.length&&(info("brtc 网络恢复正常,处理重推逻辑","","",this.streamConnectedErrorQueue),this.streamConnectedErrorQueue.forEach((e=>{this.handleStreamConnectError(e)})),this.streamConnectedErrorQueue=[])},this.handleMediaDevicesChange=e=>__awaiter(this,void 0,void 0,(function*(){info("media devices change"),this.deviceChanging=!0,delay$1((()=>{this.deviceChanging=!1}),1200);const{changed:e,selectAudioDevice:t,selectAudioOutputDevice:r,selectVideoDevice:i}=yield this.initDevices(!0);let s=t,o=r;e&&(this.deviceChangeWatcher.next(!0),s=this.selectAudioDevice,o=this.selectAudioOutputDevice),i&&(yield this.bmStreamVm.changeVideoInput(i)),yield this.bmStreamVm.changeAudioInput(s),yield this.bmStreamVm.changeSpeaker(o).catch((e=>{}))})),this.enumVideoDevices=()=>dist$1.enumVideoDevices().then((e=>{if(!isH5())return e;const t=[];return e.forEach(((e,r)=>{e.name.includes("front")||e.name.includes("前置")?e.name=`前置${r.toString().padStart(2,"0")}`:(e.name.includes("back")||e.name.includes("后置"))&&(e.name=`后置${r.toString().padStart(2,"0")}`),t.push(e)})),t})),this.enumAudioInputDevices=()=>dist$1.enumAudioInputDevices().then((e=>{const t=e,r=e.find((e=>e.default));if(r){const e=Object.assign({},r);e.name=`系统默认(${null==r?void 0:r.name})`,t.unshift(e)}return t})),this.enumAudioOutputDevices=()=>dist$1.enumAudioOutputDevices().then((e=>{const t=e,r=e.find((e=>e.default));if(r){const e=Object.assign({},r);e.name=`系统默认(${null==r?void 0:r.name})`,t.unshift(e)}return t})),this.getPermissions=dist$1.getPermissions,this.checkSystemSupport=dist$1.checkSystemSupport,this.createStream=dist$1.createStream,this.participantNotice=!1,this.handleQueueTask=(e,t=!1)=>__awaiter(this,void 0,void 0,(function*(){this.BRTCConnectFailed||(e.isLocal||!this.meetingControlOptions.cancelAutoPull||e.shouldPull)&&(this.streamModelExits(e)?yield this.handleStreamTask(e,t):warn(`streamModel is not exits, userId: ${e.userId}, isShare: ${e.isShare}, ignore`))})),this.republishLocalStream=debounce((e=>__awaiter(this,void 0,void 0,(function*(){const t=e.getAudioOn()||this.localUser.audioEnable||!1,r=e.getVideoOn()||this.localUser.videoEnable||!1;info("republish local stream ","","",[t,r]),yield this.publish(e).then((()=>__awaiter(this,void 0,void 0,(function*(){this.bmStreamVm.bloudStream=null,yield this.bmStreamVm.publishBloudStream(t,r),info("local stream connect error, and republish success, bloud stream republish success","","",["audio =>",t," video => ",r]),this.bmStreamVm.localStreamConnectErrorWatcher.next(dist$4.BMStreamReconnectSuccess(t,r))})))).catch((()=>{info("local stream connect error, and republish failed","","",["audio =>",t," video => ",r]),this.bmStreamVm.localStreamConnectErrorWatcher.next(dist$4.BMStreamReconnectFailed())}))}))),1e3),this.processUser=(e,t=0)=>__awaiter(this,void 0,void 0,(function*(){let r="";if(e.isScreen){const t=this.bmStreamVm.getShareStreamModelByUId(e.id);t&&(t.stream||t.isLocal)||(r=e.isWeb?`${e.id}_screen`:e.id)}else{let t=this.bmStreamVm.streamModels.get(e.id);!t||t.stream||t.isLocal||(r=e.id)}if(r){info("brtc query streams","","",["queryId => ",r]);try{const i=yield this.queryBrtcStreams([r]);if(i&&i.length){const e=i.map((e=>[e.getUserId(),e.getStreamId()]));info("brtc query streams result ","","",["streamInfo =>",JSON.stringify(e)]),i&&this.handleAddStreams(i)}else t<10?(t+=1,yield sleep(1e3),this.processUser(e,t)):warn(`query stream error: uId:${e}`)}catch(r){error$1("query stream error","","",[JSON.stringify(r),t]),t<10&&(t+=1,yield sleep(1e3),this.processUser(e,t))}}})),dist$4.Logger.setLogLevel(dist$4.LOGLEVEL.INFO),info(`\n******************************************************************************\n* 欢迎使用 BoomCore(${PackageJson.version})\n******************************************************************************\n `),dist$4.Logger.info("this is formatted by hysc/logger module");const t=BoomEmitter.getInstance();this.localUser=new BMUser({},!0),this.roomInfo=new BMRoomInfo(this),this.bmLiveVM=new BMLiveVM(this),this.bmStreamVm=(new BMStreamModelVM).initWithRoom(this),this.boomCore=new dist$1({}),t.on(RECEIVE_SUBSCRIBE_MESSAGE,(e=>{this.handleSubMessage(e)})),t.on(HANDLE_STREAM_CONNECT_ERROR,(e=>{this.handleStreamConnectError(e)})),t.on(ADD_PULL_USER,(e=>{this.addUser2Queue(e)})),t.on(MANUAL_SUBSCRIPTION,(e=>{this.manualSubscribeStreamModel(e.stream)})),t.on(UNSUBSCRIBE_STREAM,(e=>{this.handleUnsubscribe(e.stream)})),t.on(BIND_ELEMENT,(e=>{this.handleStreamBindElement(e.stream)})),t.on(BIND_BIG_ELEMENT,(e=>{this.handleStreamBindBigElement(e.stream)})),t.on(SET_VOLUME,(e=>{var t;null===(t=this.audioPlayer)||void 0===t||t.setVolume(e.streamId,e.volume)})),t.on(ADD_AUDIO_PLAY,(e=>{const t=e.stream.stream;t&&!t.isLocalStream()&&(this.audioPlayer.playMap.has(t)||this.audioPlayer.addStream(t))})),window.addEventListener("offline",(()=>{this.netConnecting=!1,this.netConnectingWatcher.next(!1)})),window.addEventListener("online",(()=>{var e,t;this.netConnecting=!0,this.netConnectingWatcher.next(!0),NETWORK_ERROR_QUEUE.forEach((e=>{e()})),NETWORK_ERROR_QUEUE.clear(),this.boomCore.client.reconnect(),null===(t=null===(e=this.boomCore.brtcClient)||void 0===e?void 0:e.client)||void 0===t||t.signal.channel.transport.reconnect(),this.handleReprocessStreamError()})),window.navigator.mediaDevices&&e&&(window.navigator.mediaDevices.addEventListener("devicechange",debounce(this.handleMediaDevicesChange,100)),this.initDevices()),this.brtcNetEnableWatcher.subscribe((e=>{e&&this.handleReprocessStreamError()})),this.bloudWSReconnectWatcher.subscribe((e=>{e&&this.handleReprocessStreamError()}))}setVoiceMode(e){this.voiceMode=e}get isSingleColumns(){return 1===this.userListColumns}get localIsAudience(){var e;return null===(e=this.getLocalParticipant())||void 0===e?void 0:e.isAudience}get shouldIgnoreStream(){return 2===this.conferenceMode&&this.isBig&&this.localIsAudience&&!this.localUser.audioEnable}get isWorkShop(){return 2===this.conferenceMode}setAutoPlayAudio(e){this.autoPlayAudio=e,autoPlayAudio=e}setMediaPermission(e){this.mediaPermission=Object.assign(Object.assign({},this.mediaPermission),e),info("current media permission is ","","",[JSON.stringify(this.mediaPermission)])}setShouldPlayAudio(e){this.shouldPlayAudio=e}initAudioPlayer(e){info("init audio player"),this.audioPlayer=new AudioPlay(e,this)}setupMeetingControlOptions(e){e&&(this.meetingControlOptions=Object.assign(Object.assign({},this.meetingControlOptions),e))}handleSubMessage(e){streamPullQueue.addQueue(this.handleQueueTask.bind(this,e.stream),`${e.stream.streamId} - 订阅流 - display ${e.stream.isDisplay} - currentDisplay - ${e.stream.isCurrentDisplay}`,0,e.stream.nickname)}configSM(e){e&&this.boomCore.configSM(e)}setVideoProfile(e){e&&(info(`set video profile ${e} `),this.videoProfile=e)}setCustomVideoEncodeConfig(e){this.videoEncodeConfig=e}setUserListColumns(e){const t=toNumber(e);if(!isNumber(t))throw new Error("参数必须是数字");this.userListColumns=t}setSortType(e){const t=toNumber(e);if(t>2||t<1)throw new Error("排序映射只能为 2 或者 1");this.sortType=t,_selfSortType=this.sortType}setAudioProfile(e){this.audioProfile=e}setSig(e){this.boomCore.setShareSig(e)}benchmark(){const e=Date.now();return function(){return Date.now()-e}}initDevices(e=!1){var t;return __awaiter(this,void 0,void 0,(function*(){const e=this.benchmark();let r=!1;const i=yield this.enumVideoDevices();info("videoDevices:"+JSON.stringify(i)),this.videoDevices.length!==i.length&&(r=!0);let s=i.filter((e=>{var t;return e.name==(null===(t=this.selectVideoDevice)||void 0===t?void 0:t.name)}))[0];this.videoDevices=i,this.videoDevicesWatcher.next(i);const o=s||this.filterDevice(this.videoDevices),n=(null==o?void 0:o.deviceId)!=(null===(t=this.selectVideoDevice)||void 0===t?void 0:t.deviceId);o&&this.setSelectVideoDevice(o);const a=yield this.enumAudioInputDevices();this.audioDevices.length!==a.length&&(r=!0);let u=this.selectAudioDevice;if(!u||u.name.startsWith("系统默认(")){const e=this.filterDevice(a,!0);e&&(u=e)}else if(!u.name.startsWith("系统默认(")){const e=a.slice().reverse().find((e=>e.deviceId==u.deviceId));u=e||this.filterDevice(a)}this.audioDevices=a.filter((e=>"default"!==e.deviceId&&"communications"!==e.deviceId)),this.audioDevicesWatcher.next(a),u||(u=this.filterDevice(a),this.audioDevices=a),u&&this.setSelectAudioDevice(u);const l=yield this.enumAudioOutputDevices();this.audioOutputDevices.length!==l.length&&(r=!0);let c=this.selectAudioOutputDevice;if(!c||c.name.startsWith("系统默认(")){const e=this.filterDevice(l,!0);e&&(c=e)}else if(!c.name.startsWith("系统默认(")){const e=l.slice().reverse().find((e=>e.deviceId==c.deviceId));c=e||this.filterDevice(l)}return this.audioOutputDevices=l.filter((e=>"default"!==e.deviceId&&"communications"!==e.deviceId)),this.audioOutputDevicesWatcher.next(l),c||(c=this.filterDevice(l),this.audioOutputDevices=l),c!=this.selectAudioOutputDevice&&this.setSelectSpeakerDevice(c),info(`initDevices耗时 : ${e()}`),{videoDevices:this.videoDevices,audioDevices:this.audioDevices,audioOutputDevices:this.audioOutputDevices,selectVideoDevice:n?o:null,selectAudioDevice:u,selectAudioOutputDevice:c,changed:r}}))}filterDevice(e,t=!1){if(t){return e.filter((e=>e.default))[0]}const r=e.filter((e=>e.default))[0];return r||e[0]}setSelectAudioDevice(e){var t;(null===(t=this.selectAudioDevice)||void 0===t?void 0:t.deviceId)===e.deviceId&&this.selectAudioDevice.default===e.default&&this.selectAudioDevice.name===e.name||(info("setSelectAudioDevice","","",["deviceId =>",e.deviceId,"name =>",e.name]),this.selectAudioDevice=e,this.selectAudioDeviceWatcher.next(e))}setSelectVideoDevice(e){var t;(null===(t=this.selectVideoDevice)||void 0===t?void 0:t.deviceId)===e.deviceId&&this.selectVideoDevice.default===e.default||(info("setSelectVideoDevice","","",["deviceId =>",null==e?void 0:e.deviceId,"name =>",null==e?void 0:e.name]),this.selectVideoDevice=e,this.selectVideoDeviceWatcher.next(e))}setSelectSpeakerDevice(e){var t,r,i;(null===(t=this.selectAudioOutputDevice)||void 0===t?void 0:t.deviceId)===e.deviceId&&this.selectAudioOutputDevice.default===e.default&&(null===(r=this.selectAudioOutputDevice)||void 0===r?void 0:r.name)==e.name||(null===(i=this.audioPlayer)||void 0===i||i.setDevice(e.deviceId),info("setSelectSpeakerDevice","","",["deviceId =>",e.deviceId,"name =>",null==e?void 0:e.name]),this.selectAudioOutputDevice=e,this.selectAudioOutputDeviceWatcher.next(e))}observe(e,t){var r;return this.observes[e]?null===(r=this.observes[e])||void 0===r?void 0:r.subscribe(t):null}join(e){return __awaiter(this,void 0,void 0,(function*(){const t=e.brtc_host;t&&this.setCustomUrl(t);try{if(this.boomCore.client)return error$1("重复 join,请先调用 destroy"),Promise.reject(dist$4.RepeatJoinError);this.conferenceMode=e.roomType,this.isBig=e.is_big,info("========================","join info",e.userId,["roomId: ",e.room," roomType: ",e.roomType," roomName: ",e.name]),this.localUser.setup(e.userId,e.userinfo,e.nickname,e.customInfo),this.bmStreamVm.createStreamModel(this.localUser),this.userVM=new BMUserVM(this.boomCore,this.localUser,this),this.isBig&&(this.userVM.commTimer=1e3),this.roomInfo.originJoinRoomParams=Object.assign({},e),this.roomVM=new BMRoomVM(this.boomCore,this.userVM,this.roomInfo),this.roomVM.initWithRoom(this),this.chatVM=new BMChatVM(this.boomCore,this.userVM,this),this._attachEvents(),yield this.boomCore.join(e).catch((e=>Promise.reject(e))),this.roomInfo.setup(this.boomCore.getRoomInfo());for(let e in this.observes)this.observe(e,(()=>{}));this.bmStreamVm.startSpeakerDetector(),this.roomInfo.setlock(this.boomCore.client.lock),addBrtcNetEvent(this.boomCore)}catch(e){return error$1("join room error","","",[JSON.stringify(e)]),Promise.reject(e)}}))}leave(){var e,t,r;return __awaiter(this,void 0,void 0,(function*(){try{this.bmStreamVm.brtcStream&&(null===(e=this.bmStreamVm.brtcStream)||void 0===e?void 0:e.published)&&(yield this.unpublish(this.bmStreamVm.brtcStream).catch((e=>{error$1("leave brtc unpublish fail:"+e.message,"unpublish")}))),this.pubFailedTimer&&clearTimeout(this.pubFailedTimer),this.pubFailedNum=0,BoomEmitter.removeEmitter(),autoPlayAudio=!0,null===(t=this.audioPlayer)||void 0===t||t.destroy(),this.bmStreamVm.clearCache(),this.bmStreamVm.canvasTimer&&clearTimeout(this.bmStreamVm.canvasTimer);const i=yield this.boomCore.leave().catch((()=>{error$1("bloud离会失败")}));for(let e in this.observes)null===(r=this.observes[e])||void 0===r||r.unsubscribe();return this.observes={},i}catch(e){return error$1("leave room error","","",[JSON.stringify(e)]),Promise.reject(dist$4.BmLeaveError(JSON.stringify(e)))}}))}releaseRoom(){return __awaiter(this,void 0,void 0,(function*(){yield this.boomCore.releaseRoom()}))}startRecord(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.bmStreamVm.startRecord(e)}))}stopRecord(){return __awaiter(this,void 0,void 0,(function*(){return yield this.bmStreamVm.stopRecord()}))}sliceRecord(e,t,r){return __awaiter(this,void 0,void 0,(function*(){return yield this.bmStreamVm.sliceRecord(e,t,r)}))}close(){this.bmStreamVm.clearCache(),this.boomCore.close()}setRemoteVideoEnable(e,t){return __awaiter(this,void 0,void 0,(function*(){yield this.roomVM.setRemoteVideoEnable(e,t).catch((e=>Promise.reject(e)))}))}setRemoteAudioEnable(e,t,r){return __awaiter(this,void 0,void 0,(function*(){yield this.roomVM.setRemoteAudioEnable(e,t,r).catch((e=>Promise.reject(e)))}))}setLocalVideoEnable(e,t){return __awaiter(this,void 0,void 0,(function*(){yield this.bmStreamVm.setLocalVideoEnable(e,t).catch((e=>Promise.reject(e)))}))}setLocalAudioEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.bmStreamVm.setLocalAudioEnable(e).catch((e=>Promise.reject(e)))}))}setLocalSpeakerEnable(e){return __awaiter(this,void 0,void 0,(function*(){yield this.bmStreamVm.muteSpeaker(e).catch((e=>Promise.reject(e)))}))}_attachEvents(){this.observes=attachEvents(this.boomCore,this.userVM,this.bmStreamVm,this.chatVM,this)}createSingleLocalStream(e={video:!0,audio:!0},t){var r,i;return __awaiter(this,void 0,void 0,(function*(){const s={video:e.video,audio:e.audio,cameraId:null===(r=this.selectVideoDevice)||void 0===r?void 0:r.deviceId,microphoneId:null===(i=this.selectAudioDevice)||void 0===i?void 0:i.deviceId,sourceType:"camera"};e.videoSource&&(s.videoSource=e.videoSource),e.audioSource&&(s.audioSource=e.audioSource),s.echoCancellation=!0,s.noiseSuppression=!0,s.autoGainControl=!0,this.voiceMode&&(s.audioHint=this.voiceMode,s.noiseSuppression=!1);const o=yield this.boomCore.createLocalStream(s,t).catch((t=>(error$1("create brtc stream error","publish","",[JSON.stringify(t),null==t?void 0:t.message]),Promise.reject(dist$4.getStreamError(e.video?"摄像头":"麦克风")))));return e.video&&(this.videoEncodeConfig?o.setVideoEncoderConfiguration(this.videoEncodeConfig):"720p"===this.videoProfile?o.setVideoEncoderConfiguration({width:1280,height:720,bitrate:1500,frameRate:25}):o.setVideoProfile(this.videoProfile)),yield this.handleStreamInit(e,o),o}))}createPBSingleLocalStream(e={video:!0,audio:!0},t){var r,i;return __awaiter(this,void 0,void 0,(function*(){const s={video:e.video,audio:e.audio,cameraId:null===(r=this.selectVideoDevice)||void 0===r?void 0:r.deviceId,microphoneId:null===(i=this.selectAudioDevice)||void 0===i?void 0:i.deviceId,sourceType:"camera",echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0};this.voiceMode&&(s.audioHint=this.voiceMode,s.noiseSuppression=!1);const o=yield this.boomCore.createPBLocalStream(s,t).catch((e=>Promise.reject(e)));return"720p"===this.videoProfile?o.setVideoEncoderConfiguration({width:1280,height:720,bitrate:1500,frameRate:25}):o.setVideoProfile(this.videoProfile),yield this.handleStreamInit(e,o),o}))}handleStreamInit(e={video:!0,audio:!0},t){return __awaiter(this,void 0,void 0,(function*(){try{yield t.init()}catch(t){if(error$1("brtc init stream failed","publish","",[null==t?void 0:t.message]),String(t).includes("Permission denied")){if(e.video)return Promise.reject(dist$4.BMCameraNotAuthError());if(e.audio)return Promise.reject(dist$4.BMMicNotAuthError())}else{if(String(t).includes("Could not start video source"))return Promise.reject(dist$4.BMCameraOccupyError());if(String(t).includes("Could not start audio source"))return Promise.reject(dist$4.BMMicOccupyError())}const r=e.video?"摄像头":"麦克风";return Promise.reject(dist$4.BMCreateStreamError(r,null==t?void 0:t.message))}}))}subscribe(e,t){return __awaiter(this,void 0,void 0,(function*(){return this.boomCore.subscribe(e,t)}))}unsubscribe(e){return this.boomCore.unsubscribe(e).catch((e=>Promise.reject(e)))}publish(e){return new Promise(((t,r)=>{this.boomCore.publish(e).then((()=>{info("brtc stream publish success"),this.pubFailedNum=0,t(!0)})).catch((i=>__awaiter(this,void 0,void 0,(function*(){this.pubFailedNum<=3?(this.pubFailedNum+=1,this.pubFailedTimer&&clearTimeout(this.pubFailedTimer),this.pubFailedTimer=setTimeout((()=>{var s;return error$1(`local publish stream failed, retry failed num: ${this.pubFailedNum}, msg: ${i.message}`,"publish",null===(s=this.localUser)||void 0===s?void 0:s.userId),this.publish(e).then(t).catch(r)}),3e3)):(error$1("retry publish local stream failed, ubpublish now"),yield this.bmStreamVm.unpublishStream(!0),r(!1))}))))}))}unpublish(e){return this.boomCore.unpublish(e).catch((e=>Promise.reject(e)))}getUser(e){return this.userVM.getUser(e)}changeMaster(e,t=!1){var r;return __awaiter(this,void 0,void 0,(function*(){return null===(r=this.roomVM)||void 0===r?void 0:r.changeMaster(e,t).catch((e=>e))}))}updateManager(e,t,r=!0){return __awaiter(this,void 0,void 0,(function*(){return this.roomVM.updateManager(e,t,r).catch((e=>e))}))}getMaster(){return this.boomCore.getMaster()}getCreator(){return this.boomCore.getCreator()}getName(){return this.boomCore.getName()}evictUser(e,t){var r;return __awaiter(this,void 0,void 0,(function*(){return null===(r=this.roomVM)||void 0===r?void 0:r.evictUser(e,t)}))}updateUser(e,t){var r;return __awaiter(this,void 0,void 0,(function*(){return null===(r=this.roomVM)||void 0===r?void 0:r.updateUser(e,t)}))}getMsgSeq(){return this.boomCore.getMsgSeq()}getLimits(){return this.boomCore.getLimits()}getSwitch(){return this.boomCore.getSwitch()}syncRoom(){return this.boomCore.syncRoom()}update(e){return this.boomCore.update(e)}getUsers(){return this.userVM.userList}getTotalUsers(){return this.userVM.userList.size}sendMessage(e,t){return this.boomCore.sendMessage(e,t)}customMessage(e,t,r=!1){return this.boomCore.customMessage(e,t,r)}getMessages(e,t){return this.boomCore.getMessages(e,t)}getLocalParticipant(){var e;let t=null===(e=this.userVM)||void 0===e?void 0:e.getLocalUser();return t||(t=this.localUser),t}getAudioOff(){return this.boomCore.getAudioOff()}getSelfOpenAudio(){return this.boomCore.getSelfOpenAudio()}getVideoOff(){return this.boomCore.getVideoOff()}getMsgOff(){return this.boomCore.getMsgOff()}getLock(){return this.boomCore.getLock()}getRoomInfo(){return this.roomInfo}setAudioOff(e,t){return __awaiter(this,void 0,void 0,(function*(){return yield this.boomCore.setAudioOff(e,t).catch((e=>Promise.reject(dist$4.BmSetAudioOffError(`boomCore.setAudioOff error ${JSON.stringify(e)}`))))}))}updateRoom(e){return __awaiter(this,void 0,void 0,(function*(){return this.boomCore.client.update(e)}))}setVideoOff(e){return this.boomCore.setVideoOff(e).catch((e=>Promise.reject(dist$4.BmSetVideoOffError(`boomCore.setVideoOff error ${JSON.stringify(e)}`))))}setMsgOff(e){return this.boomCore.setMsgOff(e).catch((e=>Promise.reject(dist$4.BmSetMsgOffError(`boomCore.setMsgOff error ${JSON.stringify(e)}`))))}setSwitch(e){return this.boomCore.setSwitch(e)}setLock(e){return __awaiter(this,void 0,void 0,(function*(){return yield this.boomCore.setLock(e),this.boomCore.getLock()}))}sendChatMessage(e,t,r){if(!this.chatVM)throw new BoomError(INVALID_OPERATION,"未初始化chatVM, 无法发送聊天信息");return this.chatVM.sendMessage(e,t,r)}getChatMessage(){if(!this.chatVM)throw new BoomError(INVALID_OPERATION,"未初始化chatVM, 无法获取聊天室消息");return this.chatVM.messageList}getHistoryMessage(){return __awaiter(this,void 0,void 0,(function*(){return this.chatVM.getHistoryMessage()}))}updateCustomStats(e,t){return info("updateCustomStats","","",[JSON.stringify(e)]),this.boomCore.updateCustomStats(Object.assign(Object.assign({},e),{pos:"web"}),t).catch((e=>Promise.reject(dist$4.BmUpdateCustomStatsError(`.boomCore.updateCustomStats ${JSON.stringify(e)}`))))}getCustomStats(){return this.boomCore.getCustomStats()}getDuration(){return this.boomCore.getDuration()}checkUserHasMaster(e){return this.userVM.checkUserHasMaster(e)}changeNickName(e,t){var r;return __awaiter(this,void 0,void 0,(function*(){return null===(r=this.roomVM)||void 0===r?void 0:r.changeNickName(e,t)}))}streamModelExits(e){const t=e.userId;return e.isShare?this.bmStreamVm.shareStreamModels.has(t):this.bmStreamVm.streamModels.has(t)}handleStreamTask(e,t=!1){return __awaiter(this,void 0,void 0,(function*(){this.streamModelExits(e)?e.stream?1===this.conferenceMode?(yield this.handlePull(e),yield this.handleChangeStreamType(e)):(yield this.bmLiveVM.handlePull(e),yield this.bmLiveVM.handleChangeStreamType(e)):((e.isDisplay||e.isInBig)&&e.bloudStream||e.audioEnable)&&(yield this.addUser2Queue({id:e.userId,isScreen:e.isShare,isWeb:e.isWeb})):warn(`streamModel is not exits, userId: ${e.userId}, isShare: ${e.isShare}, ignore`)}))}handlePull(e){var t;return __awaiter(this,void 0,void 0,(function*(){e.isLocal||(e.isMixer&&(yield this.handleSubscribeSteam(e)),(e.isDisplay!==e.isCurrentDisplay||e.isInBig&&e.pulledStreamType!==e.pulledStreamGoal||!e.hasPulled)&&(e.isCurrentDisplay=e.isDisplay,e.checkCount=0,e.isDisplay||e.isInBig||!e.isDisplay&&(e.audioEnable||(null===(t=e.stream)||void 0===t?void 0:t.getAudioOn()))?yield this.handleSubscribeSteam(e):yield this.handleUnsubscribeStream(e)))}))}manualSubscribeStreamModel(e){streamPullQueue.addQueue(this.handleStreamTask.bind(this,e),e.streamId,0,e.nickname)}handleUnsubscribe(e){streamPullQueue.addQueue(this.handleUnsubscribeStream.bind(this,e),e.streamId,0,e.nickname)}handleStreamBindElement(e){streamPullQueue.addQueue(this.handlePlaySmall.bind(this,e,!1,!1),`bindElement-${e.userId}-${e.nickname}`,0,e.nickname)}handleStreamBindBigElement(e){streamPullQueue.addQueue(this.handlePlayInBIg.bind(this,e),`bindElement-${e.userId}-${e.nickname}`,0,e.nickname)}handleUnsubscribeStream(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){e.stream&&((null===(r=null===(t=e.stream)||void 0===t?void 0:t.isSubscribed)||void 0===r?void 0:r.call(t))||e.hasPulled)&&(e.hasPulled=!1,e.pulledStreamType="small",e.isInBig=!1,e.stop(),yield this.unsubscribe(e.stream).then((()=>{var t,r;e.stream&&(null===(t=this.audioPlayer)||void 0===t||t.removeStream(e.stream)),e.isSubScribedWatcher.next(!1),info("取消订阅流成功","",e.userId,[e.nickname,e.isDisplay,e.isCurrentDisplay,null===(r=e.stream)||void 0===r?void 0:r.getStreamId()])})).catch((()=>{error$1("unsubscribe error")})))}))}handleSubscribeSteam(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){try{e.hasPulled&&e.stream.isSubscribed()?e.isDisplay?null===(t=e.stream)||void 0===t||t.unmuteVideo().then((()=>{info("stream unmute video success ","unmute-video",e.userId,["streamId => ",e.streamId])})):null===(r=e.stream)||void 0===r||r.muteVideo().then((()=>{info("stream mute video success ","mute-video",e.userId,["streamId => ",e.streamId])})):(info("开始订阅","订阅",e.userId,[e.streamId]),e.hasPulled=!0,yield this.subscribe(e.stream,subscribeOptions).then((()=>{var t,r;info("订阅流结束","订阅",e.userId,[" nickname =>",e.nickname,"streamId =>",e.streamId,"display =>",e.isDisplay]),e.isDisplay||null===(t=e.stream)||void 0===t||t.muteVideo(),e.stream&&e.audioEnable&&(null===(r=this.audioPlayer)||void 0===r||r.addStream(e.stream,!0)),e.pullFailedNum=0,e.isSubScribedWatcher.next(!0),this.bmStreamVm.addToRecorder(e.stream),e.isDisplay&&e.videoEnable&&this.handlePlay(e,!0)})).catch((t=>{var r,i;if(error$1("订阅流失败","订阅",e.userId,[" nickname =>",e.nickname,"streamId =>",e.streamId," error => ",JSON.stringify(t)]),e.hasPulled=!1,e.pulledStreamType="small",e.pullFailedNum+=1,null===(r=e.player)||void 0===r||r.destroy(),e.pullFailedNum<=3)this.handlePulledFailed(e);else{e.pullFailedNum=0;const r=e.isShare;try{null===(i=e.stream)||void 0===i||i.destroy()}catch(t){}e.updateStream(void 0,!1,this.bmStreamVm),info("subscribe stream failed, need to reQuery stream","",e.userId,["streamId =>",e.streamId,"hasStream => ",!!e.stream,"isWeb => ",e.isWeb,"isScreen => ",r,"bloudStreamState =>",JSON.stringify(e.bloudStream)]),e.bloudStream&&this.addUser2Queue({id:e.userId,isWeb:e.isWeb,isScreen:r})}})))}catch(t){e.hasPulled=!1,e.pulledStreamType="small",console.error("订阅流失败","",e.userId,e.nickname,"错误 =>",t)}}))}handleChangeStreamType(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){e.isLocal||e.pulledStreamType!==e.pulledStreamGoal&&(null===(t=e.stream)||void 0===t?void 0:t.isSubscribed())&&((null===(r=e.stream)||void 0===r?void 0:r.isSubscribed())||e.hasPulled)&&(e.pulledStreamType=e.pulledStreamGoal,yield this.boomCore.brtcClient.setRemoteVideoStreamType(e.stream,e.pulledStreamGoal).catch((t=>{error$1("大小流切换失败","",e.userId,["error => ",JSON.stringify(t)])})),info("大小流切换结束","",e.userId,["nickname =>",e.nickname," isInBig => ",e.isInBig," pulledStreamGoal => ",e.pulledStreamGoal,"pulledStreamType => ",e.pulledStreamType]))}))}handlePlay(e,t=!1){return __awaiter(this,void 0,void 0,(function*(){this.streamModelExits(e)&&(e.stream&&e.isLocal&&!e.isShare||!e.isLocal&&e.stream.isSubscribed())&&(e.isDisplay&&e.playerId&&e.play(t),e.isInBig&&e.bigPlayerId&&e.playInBig(t))}))}handlePlaySmall(e){this.streamModelExits(e)&&e.play()}handlePlayInBIg(e){this.streamModelExits(e)&&e.playInBig()}handlePulledFailed(e){const t=e.userId;(e.isShare?this.bmStreamVm.shareStreamModels.has(t):this.bmStreamVm.streamModels.has(t))&&streamPullQueue.addQueue(this.handleQueueTask.bind(this,e),e.streamId,0,e.nickname)}handleStreamConnectError(e){var t,r;return __awaiter(this,void 0,void 0,(function*(){const{stream:i,isLocal:s}=e;i&&(info("handleStreamConnectError","","",["nickname =>",i.nickname,"streamId => ",i.streamId,"isShare =>",i.isShare,"isLocal => ",s]),i.stream&&(i.stop(),null===(t=this.audioPlayer)||void 0===t||t.removeStream(i.stream)),null===(r=i.player)||void 0===r||r.destroy(),s?i.stream&&(i.isShare?this.bmStreamVm.localShareError.next(dist$4.BMShareStreamConnectError()):this.bmStreamVm.localStreamConnectErrorWatcher.next(dist$4.BMStreamConnectError()),this.netConnecting&&this.networkState.brtc&&this.networkState.bloud?i.isShare?(info("Local share stream has problem, now ,republish"),handleRepublishLocalShare(this,this.bmStreamVm)):(info("brtc 网络正常,重新推流"),i.stream&&(yield this.republishLocalStream(i.stream))):(error$1("brtc 网络还没恢复,等恢复了在重新推流 ","",i.userId,["nickname =>",i.nickname,"streamId => ",i.streamId,"isShare =>",i.isShare]),this.streamConnectedErrorQueue.push(e))):this.netConnecting&&this.networkState.brtc?(i.hasPulled=!1,i.pulledStreamType="small",streamPullQueue.addQueue(this.handleQueueTask.bind(this,i),i.streamId,0,i.nickname)):(error$1("brtc 网络还没恢复,等恢复了在重新拉流 ","",i.userId,["nickname =>",i.nickname]),this.streamConnectedErrorQueue.push(e)))}))}toggleAudienceSpeaking(e,t){e.permission.setAudio(t);const r={};return e.raiseHand&&(e.raiseHand=!1,r.raiseHand=!1),e.raiseAudioHands&&(e.raiseAudioHands=!1,r.raiseHandsAudio=!1),this.updateUser(e.userId,Object.assign({permission:e.permission.get()},r))}updateUserIsGuest(e,t){return __awaiter(this,void 0,void 0,(function*(){return e.permission.setSubscribe(t),this.updateUser(e.userId,{permission:e.permission.get()})}))}managerChangeToGuest(e){this.userVM.managerChangeToGuest(e)}moveUserRoom(e,t=!1,r=!1){return this.boomCore.client.moveUserRoom(e,t,r)}getParticipantNotice(e){this.participantNotice=e}setCustomUrl(e){this.boomCore.setCustomUrl(e)}handleRePushSelf(){var e,t;return __awaiter(this,void 0,void 0,(function*(){const r=null===(t=null===(e=this.getLocalParticipant())||void 0===e?void 0:e.getMainStreamModel())||void 0===t?void 0:t.stream;r&&(yield this.republishLocalStream(r))}))}handleResetOtherStreamStatus(){info("brtc sync-room-completed"),this.audioPlayer.clear(),this.bmStreamVm.streamModels.forEach((e=>{var t;if(!e.isLocal){e.hasPulled=!1,e.pulledStreamType="small";try{null===(t=e.stream)||void 0===t||t.destroy()}catch(e){}e.updateStream(void 0,!1,this.bmStreamVm)}})),this.bmStreamVm.shareStreamModels.forEach((e=>{var t;if(!e.isLocal){e.hasPulled=!1,e.pulledStreamType="small";const r=e.getUser();try{null===(t=e.stream)||void 0===t||t.destroy()}catch(e){}r.removeStream(`${e.userId}${STREAM_SUFFIX_SCREEN}`)}})),this.bmStreamVm.shareStreamModels.clear(),this.bmStreamVm.shareStreamModelsWatcher.next(Array.from(this.bmStreamVm.shareStreamModels.values())),this.networkState.brtc=!0,setTimeout((()=>{this.brtcNetEnableWatcher.next(!0),this.streamWSReconnectWatcher.next(!0)}),2e3),handleReconnectedStream(this)}restartPullUsers(e){e.forEach(((e,t)=>{this.addUser2Queue(e)}))}addUser2Queue(e){var t;return __awaiter(this,void 0,void 0,(function*(){if(this.streamQueue.addUser(e),e.force||e.isScreen)this.processUser(e);else{const r=this.bmStreamVm.streamModels.get(e.id);r&&!r.isLocal&&(r.stream||r&&((null===(t=r.bloudStream)||void 0===t?void 0:t.audio)||r.bloudStream&&r.isDisplay)&&this.processUser(e))}}))}queryBrtcStreams(e){return __awaiter(this,void 0,void 0,(function*(){return this.boomCore.brtcClient.queryUsers(e)}))}handleAddStreams(e){this.isInWaitRoom?warn("handleAddStreams isInWaitRoom true return"):e.forEach((e=>{if(isShareStream(e)){const t=this.bmStreamVm.shareStreamModels.get(transShareScreen2User(e.getUserId().toString()));(!t||t&&!t.stream)&&((null==t?void 0:t.player)&&t.player.destroy(),this.bmStreamVm.remoteStreamPublished(e))}else{const t=this.bmStreamVm.streamModels.get(e.getUserId().toString());t&&!t.stream&&((null==t?void 0:t.player)&&t.player.destroy(),this.bmStreamVm.remoteStreamPublished(e))}}))}getForceUser(e){return __awaiter(this,void 0,void 0,(function*(){yield this.queryBloudUsers([e]),this.userVM.getForceUserWatcher.next(!0)}))}queryBloudUsers(e,t=!1){return __awaiter(this,void 0,void 0,(function*(){const{users:r}=yield this.boomCore.queryUsers(e);this.userVM.addBcUsersMap(r,!0,t)}))}getVersion(){return PackageJson.version}}window.BoomMeeting=BMRoom,window.BoomError=dist$4.BoomError,window.BOOMLogger=dist$4.Logger,exports.Logger=dist$4.Logger,exports.default=BMRoom,Object.defineProperty(exports,"__esModule",{value:!0})}));
|