@frankieone/one-sdk 0.4.1-alpha → 0.4.2-alpha

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.
Files changed (547) hide show
  1. package/dist/commit.txt +1 -1
  2. package/dist/esm/modules/biometrics/index.js +54 -45
  3. package/dist/esm/modules/biometrics/index.js.map +1 -1
  4. package/dist/esm/modules/biometrics/parseConfiguration.js +2 -4
  5. package/dist/esm/modules/biometrics/parseConfiguration.js.map +1 -1
  6. package/dist/esm/modules/biometrics/wrappers/OcrLabs/Liveness.d.ts +12 -0
  7. package/dist/esm/modules/biometrics/wrappers/OcrLabs/Liveness.js +2 -0
  8. package/dist/esm/modules/biometrics/wrappers/OcrLabs/Liveness.js.map +1 -0
  9. package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.d.ts +1 -0
  10. package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.js +10 -21
  11. package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.js.map +1 -1
  12. package/dist/esm/modules/biometrics/wrappers/OcrLabs/nolint_liveness-v3.min.umd.d.ts +3 -0
  13. package/dist/esm/modules/biometrics/wrappers/OcrLabs/nolint_liveness-v3.min.umd.js +13077 -0
  14. package/dist/esm/modules/biometrics/wrappers/OcrLabs/nolint_liveness-v3.min.umd.js.map +1 -0
  15. package/dist/esm/modules/common/errors/OneSDKError.d.ts +4 -0
  16. package/dist/esm/modules/common/errors/OneSDKError.js +7 -0
  17. package/dist/esm/modules/common/errors/OneSDKError.js.map +1 -0
  18. package/dist/esm/modules/common/index.d.ts +2 -0
  19. package/dist/esm/modules/common/index.js +2 -0
  20. package/dist/esm/modules/common/index.js.map +1 -1
  21. package/dist/esm/modules/common/modules/env2url.js +1 -1
  22. package/dist/esm/modules/common/modules/env2url.js.map +1 -1
  23. package/dist/esm/modules/common/modules/error.js +2 -4
  24. package/dist/esm/modules/common/modules/error.js.map +1 -1
  25. package/dist/esm/modules/common/modules/eventHub.d.ts +20 -15
  26. package/dist/esm/modules/common/modules/eventHub.js +10 -0
  27. package/dist/esm/modules/common/modules/eventHub.js.map +1 -1
  28. package/dist/esm/modules/common/modules/vendorLoading.d.ts +66 -0
  29. package/dist/esm/modules/common/modules/vendorLoading.js +79 -0
  30. package/dist/esm/modules/common/modules/vendorLoading.js.map +1 -0
  31. package/dist/esm/modules/common/shared/models/TelemetryEvent.d.ts +18 -0
  32. package/dist/esm/modules/common/shared/models/TelemetryEvent.js +11 -0
  33. package/dist/esm/modules/common/shared/models/TelemetryEvent.js.map +1 -0
  34. package/dist/esm/modules/common/shared/models/api.d.ts +23 -7
  35. package/dist/esm/modules/common/shared/utils/index.d.ts +10 -11
  36. package/dist/esm/modules/common/shared/utils/index.js +10 -11
  37. package/dist/esm/modules/common/shared/utils/index.js.map +1 -1
  38. package/dist/esm/modules/device/index.js +36 -35
  39. package/dist/esm/modules/device/index.js.map +1 -1
  40. package/dist/esm/modules/device/parseConfiguration.js +3 -12
  41. package/dist/esm/modules/device/parseConfiguration.js.map +1 -1
  42. package/dist/esm/modules/device/types/module.d.ts +1 -2
  43. package/dist/esm/modules/frankie-client/ClientsDictionary.d.ts +9 -3
  44. package/dist/esm/modules/frankie-client/FrankieApiClient.d.ts +2 -3
  45. package/dist/esm/modules/frankie-client/FrankieApiClient.js +7 -7
  46. package/dist/esm/modules/frankie-client/FrankieApiClient.js.map +1 -1
  47. package/dist/esm/modules/frankie-client/clients/BaseClient.d.ts +1 -1
  48. package/dist/esm/modules/frankie-client/clients/BaseClient.js.map +1 -1
  49. package/dist/esm/modules/frankie-client/clients/TelemetryEventsClient.d.ts +5 -0
  50. package/dist/esm/modules/frankie-client/clients/TelemetryEventsClient.js +7 -0
  51. package/dist/esm/modules/frankie-client/clients/TelemetryEventsClient.js.map +1 -0
  52. package/dist/esm/modules/frankie-client/mocks/index.js +2 -0
  53. package/dist/esm/modules/frankie-client/mocks/index.js.map +1 -1
  54. package/dist/esm/modules/frankie-client/mocks/ocr/ocrSubmission.d.ts +2 -2
  55. package/dist/esm/modules/frankie-client/mocks/ocr/ocrSubmission.js.map +1 -1
  56. package/dist/{cjs/modules/frankie-client/mocks/initialisation/validateToken.d.ts → esm/modules/frankie-client/mocks/telemetry/index.d.ts} +1 -1
  57. package/dist/esm/modules/frankie-client/mocks/telemetry/index.js +10 -0
  58. package/dist/esm/modules/frankie-client/mocks/telemetry/index.js.map +1 -0
  59. package/dist/esm/modules/index.d.ts +3 -2
  60. package/dist/esm/modules/index.js +5 -2
  61. package/dist/esm/modules/index.js.map +1 -1
  62. package/dist/esm/modules/individual/actions/search.js +2 -4
  63. package/dist/esm/modules/individual/actions/search.js.map +1 -1
  64. package/dist/esm/modules/individual/actions/submit.d.ts +4 -1
  65. package/dist/esm/modules/individual/actions/submit.js +43 -27
  66. package/dist/esm/modules/individual/actions/submit.js.map +1 -1
  67. package/dist/esm/modules/individual/index.js +2 -1
  68. package/dist/esm/modules/individual/index.js.map +1 -1
  69. package/dist/esm/modules/individual/types/module.d.ts +1 -1
  70. package/dist/esm/modules/meta.json +1 -0
  71. package/dist/esm/modules/ocr/actions/start.d.ts +2 -0
  72. package/dist/esm/modules/ocr/actions/start.js +4 -2
  73. package/dist/esm/modules/ocr/actions/start.js.map +1 -1
  74. package/dist/esm/modules/ocr/index.js +12 -1
  75. package/dist/esm/modules/ocr/index.js.map +1 -1
  76. package/dist/esm/modules/sdk/index.js +43 -12
  77. package/dist/esm/modules/sdk/index.js.map +1 -1
  78. package/dist/{cjs/modules/sdk/ComponentLoader.d.ts → esm/modules/sdk/initialisation/componentLoader.d.ts} +1 -1
  79. package/dist/esm/modules/sdk/{ComponentLoader.js → initialisation/componentLoader.js} +33 -8
  80. package/dist/esm/modules/sdk/initialisation/componentLoader.js.map +1 -0
  81. package/dist/esm/modules/sdk/initialisation/configurationParser.d.ts +27 -0
  82. package/dist/esm/modules/sdk/{parseConfiguration.js → initialisation/configurationParser.js} +54 -35
  83. package/dist/esm/modules/sdk/initialisation/configurationParser.js.map +1 -0
  84. package/dist/esm/modules/sdk/initialisation/sharedDependencies.d.ts +5 -0
  85. package/dist/esm/modules/sdk/initialisation/sharedDependencies.js +109 -0
  86. package/dist/esm/modules/sdk/initialisation/sharedDependencies.js.map +1 -0
  87. package/dist/esm/modules/sdk/types/components.d.ts +2 -2
  88. package/dist/esm/modules/sdk/types/configuration.d.ts +4 -2
  89. package/dist/esm/modules/sdk/types/events.d.ts +7 -1
  90. package/dist/esm/types/Utilities.d.ts +1 -1
  91. package/dist/release.txt +1 -1
  92. package/dist/umd/biometrics-ocrlabs.js +2 -1
  93. package/dist/umd/biometrics-ocrlabs.js.LICENSE.txt +8 -0
  94. package/dist/umd/biometrics-ocrlabs.js.map +1 -1
  95. package/dist/umd/device-sardine.js +1 -1
  96. package/dist/umd/oneSdk.umd.js +1 -1
  97. package/dist/umd/oneSdk.umd.js.LICENSE.txt +19 -0
  98. package/dist/umd/oneSdk.umd.js.map +1 -1
  99. package/package.json +17 -13
  100. package/dist/cjs/modules/biometrics/constants.d.ts +0 -2
  101. package/dist/cjs/modules/biometrics/constants.js +0 -5
  102. package/dist/cjs/modules/biometrics/constants.js.map +0 -1
  103. package/dist/cjs/modules/biometrics/index.d.ts +0 -4
  104. package/dist/cjs/modules/biometrics/index.js +0 -100
  105. package/dist/cjs/modules/biometrics/index.js.map +0 -1
  106. package/dist/cjs/modules/biometrics/parseConfiguration.d.ts +0 -4
  107. package/dist/cjs/modules/biometrics/parseConfiguration.js +0 -13
  108. package/dist/cjs/modules/biometrics/parseConfiguration.js.map +0 -1
  109. package/dist/cjs/modules/biometrics/types/events.d.ts +0 -30
  110. package/dist/cjs/modules/biometrics/types/events.js +0 -3
  111. package/dist/cjs/modules/biometrics/types/events.js.map +0 -1
  112. package/dist/cjs/modules/biometrics/types/index.d.ts +0 -3
  113. package/dist/cjs/modules/biometrics/types/index.js +0 -20
  114. package/dist/cjs/modules/biometrics/types/index.js.map +0 -1
  115. package/dist/cjs/modules/biometrics/types/module.d.ts +0 -8
  116. package/dist/cjs/modules/biometrics/types/module.js +0 -3
  117. package/dist/cjs/modules/biometrics/types/module.js.map +0 -1
  118. package/dist/cjs/modules/biometrics/types/wrapper.d.ts +0 -19
  119. package/dist/cjs/modules/biometrics/types/wrapper.js +0 -3
  120. package/dist/cjs/modules/biometrics/types/wrapper.js.map +0 -1
  121. package/dist/cjs/modules/biometrics/wrappers/OcrLabs/index.d.ts +0 -2
  122. package/dist/cjs/modules/biometrics/wrappers/OcrLabs/index.js +0 -262
  123. package/dist/cjs/modules/biometrics/wrappers/OcrLabs/index.js.map +0 -1
  124. package/dist/cjs/modules/biometrics/wrappers/dummy-biometrics/green-tick-svg.d.ts +0 -1
  125. package/dist/cjs/modules/biometrics/wrappers/dummy-biometrics/green-tick-svg.js +0 -7
  126. package/dist/cjs/modules/biometrics/wrappers/dummy-biometrics/green-tick-svg.js.map +0 -1
  127. package/dist/cjs/modules/biometrics/wrappers/dummy-biometrics/index.d.ts +0 -2
  128. package/dist/cjs/modules/biometrics/wrappers/dummy-biometrics/index.js +0 -102
  129. package/dist/cjs/modules/biometrics/wrappers/dummy-biometrics/index.js.map +0 -1
  130. package/dist/cjs/modules/common/constants.d.ts +0 -7
  131. package/dist/cjs/modules/common/constants.js +0 -12
  132. package/dist/cjs/modules/common/constants.js.map +0 -1
  133. package/dist/cjs/modules/common/index.d.ts +0 -10
  134. package/dist/cjs/modules/common/index.js +0 -27
  135. package/dist/cjs/modules/common/index.js.map +0 -1
  136. package/dist/cjs/modules/common/modules/ReactiveStore.d.ts +0 -74
  137. package/dist/cjs/modules/common/modules/ReactiveStore.js +0 -157
  138. package/dist/cjs/modules/common/modules/ReactiveStore.js.map +0 -1
  139. package/dist/cjs/modules/common/modules/UnpersistedModel.d.ts +0 -17
  140. package/dist/cjs/modules/common/modules/UnpersistedModel.js +0 -39
  141. package/dist/cjs/modules/common/modules/UnpersistedModel.js.map +0 -1
  142. package/dist/cjs/modules/common/modules/base64.d.ts +0 -2
  143. package/dist/cjs/modules/common/modules/base64.js +0 -17
  144. package/dist/cjs/modules/common/modules/base64.js.map +0 -1
  145. package/dist/cjs/modules/common/modules/env2url.d.ts +0 -10
  146. package/dist/cjs/modules/common/modules/env2url.js +0 -37
  147. package/dist/cjs/modules/common/modules/env2url.js.map +0 -1
  148. package/dist/cjs/modules/common/modules/error.d.ts +0 -3
  149. package/dist/cjs/modules/common/modules/error.js +0 -12
  150. package/dist/cjs/modules/common/modules/error.js.map +0 -1
  151. package/dist/cjs/modules/common/modules/eventHub.d.ts +0 -34
  152. package/dist/cjs/modules/common/modules/eventHub.js +0 -30
  153. package/dist/cjs/modules/common/modules/eventHub.js.map +0 -1
  154. package/dist/cjs/modules/common/modules/loadAsyncAsset.d.ts +0 -1
  155. package/dist/cjs/modules/common/modules/loadAsyncAsset.js +0 -16
  156. package/dist/cjs/modules/common/modules/loadAsyncAsset.js.map +0 -1
  157. package/dist/cjs/modules/common/modules/merge.d.ts +0 -1
  158. package/dist/cjs/modules/common/modules/merge.js +0 -9
  159. package/dist/cjs/modules/common/modules/merge.js.map +0 -1
  160. package/dist/cjs/modules/common/modules/objectUtils.d.ts +0 -15
  161. package/dist/cjs/modules/common/modules/objectUtils.js +0 -73
  162. package/dist/cjs/modules/common/modules/objectUtils.js.map +0 -1
  163. package/dist/cjs/modules/common/modules/runIfWhen.d.ts +0 -21
  164. package/dist/cjs/modules/common/modules/runIfWhen.js +0 -35
  165. package/dist/cjs/modules/common/modules/runIfWhen.js.map +0 -1
  166. package/dist/cjs/modules/common/modules/rxjsOperators.d.ts +0 -1
  167. package/dist/cjs/modules/common/modules/rxjsOperators.js +0 -9
  168. package/dist/cjs/modules/common/modules/rxjsOperators.js.map +0 -1
  169. package/dist/cjs/modules/common/shared/KvpList.d.ts +0 -29
  170. package/dist/cjs/modules/common/shared/KvpList.js +0 -138
  171. package/dist/cjs/modules/common/shared/KvpList.js.map +0 -1
  172. package/dist/cjs/modules/common/shared/data/aus_states.json +0 -10
  173. package/dist/cjs/modules/common/shared/data/country.json +0 -14964
  174. package/dist/cjs/modules/common/shared/models/Address.d.ts +0 -67
  175. package/dist/cjs/modules/common/shared/models/Address.js +0 -160
  176. package/dist/cjs/modules/common/shared/models/Address.js.map +0 -1
  177. package/dist/cjs/modules/common/shared/models/Admin.d.ts +0 -1295
  178. package/dist/cjs/modules/common/shared/models/Admin.js +0 -7
  179. package/dist/cjs/modules/common/shared/models/Admin.js.map +0 -1
  180. package/dist/cjs/modules/common/shared/models/AmlCheckResult.d.ts +0 -77
  181. package/dist/cjs/modules/common/shared/models/AmlCheckResult.js +0 -50
  182. package/dist/cjs/modules/common/shared/models/AmlCheckResult.js.map +0 -1
  183. package/dist/cjs/modules/common/shared/models/AmlMatchDetails.d.ts +0 -37
  184. package/dist/cjs/modules/common/shared/models/AmlMatchDetails.js +0 -23
  185. package/dist/cjs/modules/common/shared/models/AmlMatchDetails.js.map +0 -1
  186. package/dist/cjs/modules/common/shared/models/Applicant.d.ts +0 -119
  187. package/dist/cjs/modules/common/shared/models/Applicant.js +0 -171
  188. package/dist/cjs/modules/common/shared/models/Applicant.js.map +0 -1
  189. package/dist/cjs/modules/common/shared/models/ApplicantSummary.d.ts +0 -90
  190. package/dist/cjs/modules/common/shared/models/ApplicantSummary.js +0 -58
  191. package/dist/cjs/modules/common/shared/models/ApplicantSummary.js.map +0 -1
  192. package/dist/cjs/modules/common/shared/models/AssociatedParty.d.ts +0 -42
  193. package/dist/cjs/modules/common/shared/models/AssociatedParty.js +0 -43
  194. package/dist/cjs/modules/common/shared/models/AssociatedParty.js.map +0 -1
  195. package/dist/cjs/modules/common/shared/models/AuditEntry.d.ts +0 -81
  196. package/dist/cjs/modules/common/shared/models/AuditEntry.js +0 -114
  197. package/dist/cjs/modules/common/shared/models/AuditEntry.js.map +0 -1
  198. package/dist/cjs/modules/common/shared/models/AuditLogV2.d.ts +0 -57
  199. package/dist/cjs/modules/common/shared/models/AuditLogV2.js +0 -82
  200. package/dist/cjs/modules/common/shared/models/AuditLogV2.js.map +0 -1
  201. package/dist/cjs/modules/common/shared/models/BiometryReport.d.ts +0 -35
  202. package/dist/cjs/modules/common/shared/models/BiometryReport.js +0 -26
  203. package/dist/cjs/modules/common/shared/models/BiometryReport.js.map +0 -1
  204. package/dist/cjs/modules/common/shared/models/BlockListSummary.d.ts +0 -46
  205. package/dist/cjs/modules/common/shared/models/BlockListSummary.js +0 -61
  206. package/dist/cjs/modules/common/shared/models/BlockListSummary.js.map +0 -1
  207. package/dist/cjs/modules/common/shared/models/Blueprint.d.ts +0 -26
  208. package/dist/cjs/modules/common/shared/models/Blueprint.js +0 -3
  209. package/dist/cjs/modules/common/shared/models/Blueprint.js.map +0 -1
  210. package/dist/cjs/modules/common/shared/models/BusinessInfo.d.ts +0 -32
  211. package/dist/cjs/modules/common/shared/models/BusinessInfo.js +0 -70
  212. package/dist/cjs/modules/common/shared/models/BusinessInfo.js.map +0 -1
  213. package/dist/cjs/modules/common/shared/models/CheckSummary.d.ts +0 -190
  214. package/dist/cjs/modules/common/shared/models/CheckSummary.js +0 -241
  215. package/dist/cjs/modules/common/shared/models/CheckSummary.js.map +0 -1
  216. package/dist/cjs/modules/common/shared/models/Comment.d.ts +0 -19
  217. package/dist/cjs/modules/common/shared/models/Comment.js +0 -23
  218. package/dist/cjs/modules/common/shared/models/Comment.js.map +0 -1
  219. package/dist/cjs/modules/common/shared/models/Core.d.ts +0 -2898
  220. package/dist/cjs/modules/common/shared/models/Core.js +0 -7
  221. package/dist/cjs/modules/common/shared/models/Core.js.map +0 -1
  222. package/dist/cjs/modules/common/shared/models/Document.d.ts +0 -123
  223. package/dist/cjs/modules/common/shared/models/Document.js +0 -147
  224. package/dist/cjs/modules/common/shared/models/Document.js.map +0 -1
  225. package/dist/cjs/modules/common/shared/models/Duplicate.d.ts +0 -38
  226. package/dist/cjs/modules/common/shared/models/Duplicate.js +0 -30
  227. package/dist/cjs/modules/common/shared/models/Duplicate.js.map +0 -1
  228. package/dist/cjs/modules/common/shared/models/DynamicUIComponent.d.ts +0 -52
  229. package/dist/cjs/modules/common/shared/models/DynamicUIComponent.js +0 -122
  230. package/dist/cjs/modules/common/shared/models/DynamicUIComponent.js.map +0 -1
  231. package/dist/cjs/modules/common/shared/models/Event.d.ts +0 -16
  232. package/dist/cjs/modules/common/shared/models/Event.js +0 -22
  233. package/dist/cjs/modules/common/shared/models/Event.js.map +0 -1
  234. package/dist/cjs/modules/common/shared/models/EventFactory.d.ts +0 -16
  235. package/dist/cjs/modules/common/shared/models/EventFactory.js +0 -15
  236. package/dist/cjs/modules/common/shared/models/EventFactory.js.map +0 -1
  237. package/dist/cjs/modules/common/shared/models/File.d.ts +0 -22
  238. package/dist/cjs/modules/common/shared/models/File.js +0 -27
  239. package/dist/cjs/modules/common/shared/models/File.js.map +0 -1
  240. package/dist/cjs/modules/common/shared/models/FraudCheckResult.d.ts +0 -10
  241. package/dist/cjs/modules/common/shared/models/FraudCheckResult.js +0 -19
  242. package/dist/cjs/modules/common/shared/models/FraudCheckResult.js.map +0 -1
  243. package/dist/cjs/modules/common/shared/models/FraudMatchDetail.d.ts +0 -48
  244. package/dist/cjs/modules/common/shared/models/FraudMatchDetail.js +0 -45
  245. package/dist/cjs/modules/common/shared/models/FraudMatchDetail.js.map +0 -1
  246. package/dist/cjs/modules/common/shared/models/IChangeStamp.d.ts +0 -11
  247. package/dist/cjs/modules/common/shared/models/IChangeStamp.js +0 -10
  248. package/dist/cjs/modules/common/shared/models/IChangeStamp.js.map +0 -1
  249. package/dist/cjs/modules/common/shared/models/KYCHostedFlow.d.ts +0 -17
  250. package/dist/cjs/modules/common/shared/models/KYCHostedFlow.js +0 -24
  251. package/dist/cjs/modules/common/shared/models/KYCHostedFlow.js.map +0 -1
  252. package/dist/cjs/modules/common/shared/models/KvpList.d.ts +0 -29
  253. package/dist/cjs/modules/common/shared/models/KvpList.js +0 -138
  254. package/dist/cjs/modules/common/shared/models/KvpList.js.map +0 -1
  255. package/dist/cjs/modules/common/shared/models/OCRDocumentDetail.d.ts +0 -49
  256. package/dist/cjs/modules/common/shared/models/OCRDocumentDetail.js +0 -37
  257. package/dist/cjs/modules/common/shared/models/OCRDocumentDetail.js.map +0 -1
  258. package/dist/cjs/modules/common/shared/models/OCRReport.d.ts +0 -20
  259. package/dist/cjs/modules/common/shared/models/OCRReport.js +0 -21
  260. package/dist/cjs/modules/common/shared/models/OCRReport.js.map +0 -1
  261. package/dist/cjs/modules/common/shared/models/Organisation.d.ts +0 -36
  262. package/dist/cjs/modules/common/shared/models/Organisation.js +0 -55
  263. package/dist/cjs/modules/common/shared/models/Organisation.js.map +0 -1
  264. package/dist/cjs/modules/common/shared/models/OrganizationAnalytics.d.ts +0 -14
  265. package/dist/cjs/modules/common/shared/models/OrganizationAnalytics.js +0 -153
  266. package/dist/cjs/modules/common/shared/models/OrganizationAnalytics.js.map +0 -1
  267. package/dist/cjs/modules/common/shared/models/PortalFeatureConfig.d.ts +0 -79
  268. package/dist/cjs/modules/common/shared/models/PortalFeatureConfig.js +0 -87
  269. package/dist/cjs/modules/common/shared/models/PortalFeatureConfig.js.map +0 -1
  270. package/dist/cjs/modules/common/shared/models/Profile.d.ts +0 -27
  271. package/dist/cjs/modules/common/shared/models/Profile.js +0 -103
  272. package/dist/cjs/modules/common/shared/models/Profile.js.map +0 -1
  273. package/dist/cjs/modules/common/shared/models/ReportAttributes.d.ts +0 -21
  274. package/dist/cjs/modules/common/shared/models/ReportAttributes.js +0 -22
  275. package/dist/cjs/modules/common/shared/models/ReportAttributes.js.map +0 -1
  276. package/dist/cjs/modules/common/shared/models/RiskIndicator.d.ts +0 -48
  277. package/dist/cjs/modules/common/shared/models/RiskIndicator.js +0 -35
  278. package/dist/cjs/modules/common/shared/models/RiskIndicator.js.map +0 -1
  279. package/dist/cjs/modules/common/shared/models/Session.d.ts +0 -5
  280. package/dist/cjs/modules/common/shared/models/Session.js +0 -3
  281. package/dist/cjs/modules/common/shared/models/Session.js.map +0 -1
  282. package/dist/cjs/modules/common/shared/models/SupportingDocument.d.ts +0 -96
  283. package/dist/cjs/modules/common/shared/models/SupportingDocument.js +0 -95
  284. package/dist/cjs/modules/common/shared/models/SupportingDocument.js.map +0 -1
  285. package/dist/cjs/modules/common/shared/models/TApplicantIssue.d.ts +0 -12
  286. package/dist/cjs/modules/common/shared/models/TApplicantIssue.js +0 -3
  287. package/dist/cjs/modules/common/shared/models/TApplicantIssue.js.map +0 -1
  288. package/dist/cjs/modules/common/shared/models/TApplicantStatus.d.ts +0 -7
  289. package/dist/cjs/modules/common/shared/models/TApplicantStatus.js +0 -3
  290. package/dist/cjs/modules/common/shared/models/TApplicantStatus.js.map +0 -1
  291. package/dist/cjs/modules/common/shared/models/TKycMethod.d.ts +0 -1
  292. package/dist/cjs/modules/common/shared/models/TKycMethod.js +0 -3
  293. package/dist/cjs/modules/common/shared/models/TKycMethod.js.map +0 -1
  294. package/dist/cjs/modules/common/shared/models/TValidation.d.ts +0 -6
  295. package/dist/cjs/modules/common/shared/models/TValidation.js +0 -3
  296. package/dist/cjs/modules/common/shared/models/TValidation.js.map +0 -1
  297. package/dist/cjs/modules/common/shared/models/TransactionDetails.d.ts +0 -70
  298. package/dist/cjs/modules/common/shared/models/TransactionDetails.js +0 -59
  299. package/dist/cjs/modules/common/shared/models/TransactionDetails.js.map +0 -1
  300. package/dist/cjs/modules/common/shared/models/UBOData.d.ts +0 -483
  301. package/dist/cjs/modules/common/shared/models/UBOData.js +0 -648
  302. package/dist/cjs/modules/common/shared/models/UBOData.js.map +0 -1
  303. package/dist/cjs/modules/common/shared/models/UIBlueprint.d.ts +0 -33
  304. package/dist/cjs/modules/common/shared/models/UIBlueprint.js +0 -168
  305. package/dist/cjs/modules/common/shared/models/UIBlueprint.js.map +0 -1
  306. package/dist/cjs/modules/common/shared/models/User.d.ts +0 -27
  307. package/dist/cjs/modules/common/shared/models/User.js +0 -3
  308. package/dist/cjs/modules/common/shared/models/User.js.map +0 -1
  309. package/dist/cjs/modules/common/shared/models/api.d.ts +0 -124
  310. package/dist/cjs/modules/common/shared/models/api.js +0 -3
  311. package/dist/cjs/modules/common/shared/models/api.js.map +0 -1
  312. package/dist/cjs/modules/common/shared/models/general.d.ts +0 -31
  313. package/dist/cjs/modules/common/shared/models/general.js +0 -3
  314. package/dist/cjs/modules/common/shared/models/general.js.map +0 -1
  315. package/dist/cjs/modules/common/shared/transformers/apiAlert.d.ts +0 -4
  316. package/dist/cjs/modules/common/shared/transformers/apiAlert.js +0 -109
  317. package/dist/cjs/modules/common/shared/transformers/apiAlert.js.map +0 -1
  318. package/dist/cjs/modules/common/shared/transformers/apiGetRiskLevel.d.ts +0 -2
  319. package/dist/cjs/modules/common/shared/transformers/apiGetRiskLevel.js +0 -44
  320. package/dist/cjs/modules/common/shared/transformers/apiGetRiskLevel.js.map +0 -1
  321. package/dist/cjs/modules/common/shared/transformers/apiState.d.ts +0 -23
  322. package/dist/cjs/modules/common/shared/transformers/apiState.js +0 -105
  323. package/dist/cjs/modules/common/shared/transformers/apiState.js.map +0 -1
  324. package/dist/cjs/modules/common/shared/transformers/index.d.ts +0 -3
  325. package/dist/cjs/modules/common/shared/transformers/index.js +0 -20
  326. package/dist/cjs/modules/common/shared/transformers/index.js.map +0 -1
  327. package/dist/cjs/modules/common/shared/utils/address.d.ts +0 -2
  328. package/dist/cjs/modules/common/shared/utils/address.js +0 -25
  329. package/dist/cjs/modules/common/shared/utils/address.js.map +0 -1
  330. package/dist/cjs/modules/common/shared/utils/base64.d.ts +0 -1
  331. package/dist/cjs/modules/common/shared/utils/base64.js +0 -18
  332. package/dist/cjs/modules/common/shared/utils/base64.js.map +0 -1
  333. package/dist/cjs/modules/common/shared/utils/buildCycleUtils.d.ts +0 -1
  334. package/dist/cjs/modules/common/shared/utils/buildCycleUtils.js +0 -32
  335. package/dist/cjs/modules/common/shared/utils/buildCycleUtils.js.map +0 -1
  336. package/dist/cjs/modules/common/shared/utils/constants.d.ts +0 -75
  337. package/dist/cjs/modules/common/shared/utils/constants.js +0 -223
  338. package/dist/cjs/modules/common/shared/utils/constants.js.map +0 -1
  339. package/dist/cjs/modules/common/shared/utils/date.d.ts +0 -5
  340. package/dist/cjs/modules/common/shared/utils/date.js +0 -73
  341. package/dist/cjs/modules/common/shared/utils/date.js.map +0 -1
  342. package/dist/cjs/modules/common/shared/utils/dotNotation.d.ts +0 -4
  343. package/dist/cjs/modules/common/shared/utils/dotNotation.js +0 -16
  344. package/dist/cjs/modules/common/shared/utils/dotNotation.js.map +0 -1
  345. package/dist/cjs/modules/common/shared/utils/getCountryDetails.d.ts +0 -9
  346. package/dist/cjs/modules/common/shared/utils/getCountryDetails.js +0 -23
  347. package/dist/cjs/modules/common/shared/utils/getCountryDetails.js.map +0 -1
  348. package/dist/cjs/modules/common/shared/utils/getDocumentDetails.d.ts +0 -8
  349. package/dist/cjs/modules/common/shared/utils/getDocumentDetails.js +0 -10
  350. package/dist/cjs/modules/common/shared/utils/getDocumentDetails.js.map +0 -1
  351. package/dist/cjs/modules/common/shared/utils/helper.d.ts +0 -4
  352. package/dist/cjs/modules/common/shared/utils/helper.js +0 -38
  353. package/dist/cjs/modules/common/shared/utils/helper.js.map +0 -1
  354. package/dist/cjs/modules/common/shared/utils/index.d.ts +0 -11
  355. package/dist/cjs/modules/common/shared/utils/index.js +0 -41
  356. package/dist/cjs/modules/common/shared/utils/index.js.map +0 -1
  357. package/dist/cjs/modules/common/shared/utils/isEmpty.d.ts +0 -5
  358. package/dist/cjs/modules/common/shared/utils/isEmpty.js +0 -27
  359. package/dist/cjs/modules/common/shared/utils/isEmpty.js.map +0 -1
  360. package/dist/cjs/modules/common/shared/utils/sanitiser.d.ts +0 -7
  361. package/dist/cjs/modules/common/shared/utils/sanitiser.js +0 -31
  362. package/dist/cjs/modules/common/shared/utils/sanitiser.js.map +0 -1
  363. package/dist/cjs/modules/common/shared/utils/string.d.ts +0 -1
  364. package/dist/cjs/modules/common/shared/utils/string.js +0 -9
  365. package/dist/cjs/modules/common/shared/utils/string.js.map +0 -1
  366. package/dist/cjs/modules/common/types/Accessors.d.ts +0 -51
  367. package/dist/cjs/modules/common/types/Accessors.js +0 -3
  368. package/dist/cjs/modules/common/types/Accessors.js.map +0 -1
  369. package/dist/cjs/modules/common/types/Configuration.d.ts +0 -25
  370. package/dist/cjs/modules/common/types/Configuration.js +0 -3
  371. package/dist/cjs/modules/common/types/Configuration.js.map +0 -1
  372. package/dist/cjs/modules/common/types/Object.d.ts +0 -3
  373. package/dist/cjs/modules/common/types/Object.js +0 -3
  374. package/dist/cjs/modules/common/types/Object.js.map +0 -1
  375. package/dist/cjs/modules/common/types/Session.d.ts +0 -16
  376. package/dist/cjs/modules/common/types/Session.js +0 -6
  377. package/dist/cjs/modules/common/types/Session.js.map +0 -1
  378. package/dist/cjs/modules/device/constants.d.ts +0 -4
  379. package/dist/cjs/modules/device/constants.js +0 -7
  380. package/dist/cjs/modules/device/constants.js.map +0 -1
  381. package/dist/cjs/modules/device/index.d.ts +0 -4
  382. package/dist/cjs/modules/device/index.js +0 -117
  383. package/dist/cjs/modules/device/index.js.map +0 -1
  384. package/dist/cjs/modules/device/parseConfiguration.d.ts +0 -5
  385. package/dist/cjs/modules/device/parseConfiguration.js +0 -29
  386. package/dist/cjs/modules/device/parseConfiguration.js.map +0 -1
  387. package/dist/cjs/modules/device/types/events.d.ts +0 -31
  388. package/dist/cjs/modules/device/types/events.js +0 -3
  389. package/dist/cjs/modules/device/types/events.js.map +0 -1
  390. package/dist/cjs/modules/device/types/index.d.ts +0 -3
  391. package/dist/cjs/modules/device/types/index.js +0 -20
  392. package/dist/cjs/modules/device/types/index.js.map +0 -1
  393. package/dist/cjs/modules/device/types/module.d.ts +0 -14
  394. package/dist/cjs/modules/device/types/module.js +0 -3
  395. package/dist/cjs/modules/device/types/module.js.map +0 -1
  396. package/dist/cjs/modules/device/types/wrapper.d.ts +0 -34
  397. package/dist/cjs/modules/device/types/wrapper.js +0 -3
  398. package/dist/cjs/modules/device/types/wrapper.js.map +0 -1
  399. package/dist/cjs/modules/device/vendors/Sardine.d.ts +0 -25
  400. package/dist/cjs/modules/device/vendors/Sardine.js +0 -86
  401. package/dist/cjs/modules/device/vendors/Sardine.js.map +0 -1
  402. package/dist/cjs/modules/device/vendors/Threatmetrix/index.d.ts +0 -2
  403. package/dist/cjs/modules/device/vendors/Threatmetrix/index.js +0 -64
  404. package/dist/cjs/modules/device/vendors/Threatmetrix/index.js.map +0 -1
  405. package/dist/cjs/modules/device/vendors/Threatmetrix/nolint_fp-clientlib-v4.d.ts +0 -11
  406. package/dist/cjs/modules/device/vendors/Threatmetrix/nolint_fp-clientlib-v4.js +0 -90
  407. package/dist/cjs/modules/device/vendors/Threatmetrix/nolint_fp-clientlib-v4.js.map +0 -1
  408. package/dist/cjs/modules/frankie-client/ClientsDictionary.d.ts +0 -13
  409. package/dist/cjs/modules/frankie-client/ClientsDictionary.js +0 -3
  410. package/dist/cjs/modules/frankie-client/ClientsDictionary.js.map +0 -1
  411. package/dist/cjs/modules/frankie-client/DummyFrankieApiClient.d.ts +0 -48
  412. package/dist/cjs/modules/frankie-client/DummyFrankieApiClient.js +0 -197
  413. package/dist/cjs/modules/frankie-client/DummyFrankieApiClient.js.map +0 -1
  414. package/dist/cjs/modules/frankie-client/FrankieApiClient.d.ts +0 -32
  415. package/dist/cjs/modules/frankie-client/FrankieApiClient.js +0 -139
  416. package/dist/cjs/modules/frankie-client/FrankieApiClient.js.map +0 -1
  417. package/dist/cjs/modules/frankie-client/clients/ApplicantClient.d.ts +0 -24
  418. package/dist/cjs/modules/frankie-client/clients/ApplicantClient.js +0 -106
  419. package/dist/cjs/modules/frankie-client/clients/ApplicantClient.js.map +0 -1
  420. package/dist/cjs/modules/frankie-client/clients/BaseClient.d.ts +0 -10
  421. package/dist/cjs/modules/frankie-client/clients/BaseClient.js +0 -20
  422. package/dist/cjs/modules/frankie-client/clients/BaseClient.js.map +0 -1
  423. package/dist/cjs/modules/frankie-client/clients/ConfigurationClient.d.ts +0 -10
  424. package/dist/cjs/modules/frankie-client/clients/ConfigurationClient.js +0 -34
  425. package/dist/cjs/modules/frankie-client/clients/ConfigurationClient.js.map +0 -1
  426. package/dist/cjs/modules/frankie-client/clients/IDVClient.d.ts +0 -21
  427. package/dist/cjs/modules/frankie-client/clients/IDVClient.js +0 -27
  428. package/dist/cjs/modules/frankie-client/clients/IDVClient.js.map +0 -1
  429. package/dist/cjs/modules/frankie-client/clients/OCRClient.d.ts +0 -31
  430. package/dist/cjs/modules/frankie-client/clients/OCRClient.js +0 -121
  431. package/dist/cjs/modules/frankie-client/clients/OCRClient.js.map +0 -1
  432. package/dist/cjs/modules/frankie-client/index.d.ts +0 -9
  433. package/dist/cjs/modules/frankie-client/index.js +0 -56
  434. package/dist/cjs/modules/frankie-client/index.js.map +0 -1
  435. package/dist/cjs/modules/frankie-client/mocks/biometrics/idvSubmission.d.ts +0 -4
  436. package/dist/cjs/modules/frankie-client/mocks/biometrics/idvSubmission.js +0 -43
  437. package/dist/cjs/modules/frankie-client/mocks/biometrics/idvSubmission.js.map +0 -1
  438. package/dist/cjs/modules/frankie-client/mocks/index.d.ts +0 -8
  439. package/dist/cjs/modules/frankie-client/mocks/index.js +0 -34
  440. package/dist/cjs/modules/frankie-client/mocks/index.js.map +0 -1
  441. package/dist/cjs/modules/frankie-client/mocks/individual/loadIndividual.d.ts +0 -28
  442. package/dist/cjs/modules/frankie-client/mocks/individual/loadIndividual.js +0 -73
  443. package/dist/cjs/modules/frankie-client/mocks/individual/loadIndividual.js.map +0 -1
  444. package/dist/cjs/modules/frankie-client/mocks/individual/submitData.d.ts +0 -3
  445. package/dist/cjs/modules/frankie-client/mocks/individual/submitData.js +0 -33
  446. package/dist/cjs/modules/frankie-client/mocks/individual/submitData.js.map +0 -1
  447. package/dist/cjs/modules/frankie-client/mocks/initialisation/loadConfiguration.d.ts +0 -2
  448. package/dist/cjs/modules/frankie-client/mocks/initialisation/loadConfiguration.js +0 -26
  449. package/dist/cjs/modules/frankie-client/mocks/initialisation/loadConfiguration.js.map +0 -1
  450. package/dist/cjs/modules/frankie-client/mocks/initialisation/validateToken.js +0 -12
  451. package/dist/cjs/modules/frankie-client/mocks/initialisation/validateToken.js.map +0 -1
  452. package/dist/cjs/modules/frankie-client/mocks/ocr/ocrSubmission.d.ts +0 -23
  453. package/dist/cjs/modules/frankie-client/mocks/ocr/ocrSubmission.js +0 -129
  454. package/dist/cjs/modules/frankie-client/mocks/ocr/ocrSubmission.js.map +0 -1
  455. package/dist/cjs/modules/frankie-client/mocks/simplifier.d.ts +0 -28
  456. package/dist/cjs/modules/frankie-client/mocks/simplifier.js +0 -214
  457. package/dist/cjs/modules/frankie-client/mocks/simplifier.js.map +0 -1
  458. package/dist/cjs/modules/index.d.ts +0 -26
  459. package/dist/cjs/modules/index.js +0 -50
  460. package/dist/cjs/modules/index.js.map +0 -1
  461. package/dist/cjs/modules/individual/actions/consents.d.ts +0 -4
  462. package/dist/cjs/modules/individual/actions/consents.js +0 -11
  463. package/dist/cjs/modules/individual/actions/consents.js.map +0 -1
  464. package/dist/cjs/modules/individual/actions/documents.d.ts +0 -9
  465. package/dist/cjs/modules/individual/actions/documents.js +0 -26
  466. package/dist/cjs/modules/individual/actions/documents.js.map +0 -1
  467. package/dist/cjs/modules/individual/actions/emitEvents.d.ts +0 -6
  468. package/dist/cjs/modules/individual/actions/emitEvents.js +0 -11
  469. package/dist/cjs/modules/individual/actions/emitEvents.js.map +0 -1
  470. package/dist/cjs/modules/individual/actions/search.d.ts +0 -17
  471. package/dist/cjs/modules/individual/actions/search.js +0 -57
  472. package/dist/cjs/modules/individual/actions/search.js.map +0 -1
  473. package/dist/cjs/modules/individual/actions/submit.d.ts +0 -15
  474. package/dist/cjs/modules/individual/actions/submit.js +0 -41
  475. package/dist/cjs/modules/individual/actions/submit.js.map +0 -1
  476. package/dist/cjs/modules/individual/index.d.ts +0 -2
  477. package/dist/cjs/modules/individual/index.js +0 -77
  478. package/dist/cjs/modules/individual/index.js.map +0 -1
  479. package/dist/cjs/modules/individual/types/events.d.ts +0 -7
  480. package/dist/cjs/modules/individual/types/events.js +0 -3
  481. package/dist/cjs/modules/individual/types/events.js.map +0 -1
  482. package/dist/cjs/modules/individual/types/index.d.ts +0 -2
  483. package/dist/cjs/modules/individual/types/index.js +0 -19
  484. package/dist/cjs/modules/individual/types/index.js.map +0 -1
  485. package/dist/cjs/modules/individual/types/module.d.ts +0 -31
  486. package/dist/cjs/modules/individual/types/module.js +0 -3
  487. package/dist/cjs/modules/individual/types/module.js.map +0 -1
  488. package/dist/cjs/modules/ocr/actions/start.d.ts +0 -52
  489. package/dist/cjs/modules/ocr/actions/start.js +0 -278
  490. package/dist/cjs/modules/ocr/actions/start.js.map +0 -1
  491. package/dist/cjs/modules/ocr/index.d.ts +0 -13
  492. package/dist/cjs/modules/ocr/index.js +0 -66
  493. package/dist/cjs/modules/ocr/index.js.map +0 -1
  494. package/dist/cjs/modules/ocr/types/events.d.ts +0 -21
  495. package/dist/cjs/modules/ocr/types/events.js +0 -3
  496. package/dist/cjs/modules/ocr/types/events.js.map +0 -1
  497. package/dist/cjs/modules/ocr/types/index.d.ts +0 -2
  498. package/dist/cjs/modules/ocr/types/index.js +0 -19
  499. package/dist/cjs/modules/ocr/types/index.js.map +0 -1
  500. package/dist/cjs/modules/ocr/types/module.d.ts +0 -26
  501. package/dist/cjs/modules/ocr/types/module.js +0 -3
  502. package/dist/cjs/modules/ocr/types/module.js.map +0 -1
  503. package/dist/cjs/modules/sdk/ComponentLoader.js +0 -71
  504. package/dist/cjs/modules/sdk/ComponentLoader.js.map +0 -1
  505. package/dist/cjs/modules/sdk/index.d.ts +0 -3
  506. package/dist/cjs/modules/sdk/index.js +0 -33
  507. package/dist/cjs/modules/sdk/index.js.map +0 -1
  508. package/dist/cjs/modules/sdk/parseConfiguration.d.ts +0 -3
  509. package/dist/cjs/modules/sdk/parseConfiguration.js +0 -97
  510. package/dist/cjs/modules/sdk/parseConfiguration.js.map +0 -1
  511. package/dist/cjs/modules/sdk/types/components.d.ts +0 -25
  512. package/dist/cjs/modules/sdk/types/components.js +0 -3
  513. package/dist/cjs/modules/sdk/types/components.js.map +0 -1
  514. package/dist/cjs/modules/sdk/types/configuration.d.ts +0 -82
  515. package/dist/cjs/modules/sdk/types/configuration.js +0 -41
  516. package/dist/cjs/modules/sdk/types/configuration.js.map +0 -1
  517. package/dist/cjs/modules/sdk/types/events.d.ts +0 -5
  518. package/dist/cjs/modules/sdk/types/events.js +0 -3
  519. package/dist/cjs/modules/sdk/types/events.js.map +0 -1
  520. package/dist/cjs/modules/sdk/types/index.d.ts +0 -4
  521. package/dist/cjs/modules/sdk/types/index.js +0 -21
  522. package/dist/cjs/modules/sdk/types/index.js.map +0 -1
  523. package/dist/cjs/modules/sdk/types/module.d.ts +0 -16
  524. package/dist/cjs/modules/sdk/types/module.js +0 -3
  525. package/dist/cjs/modules/sdk/types/module.js.map +0 -1
  526. package/dist/cjs/types/Primitives.d.ts +0 -1
  527. package/dist/cjs/types/Primitives.js +0 -3
  528. package/dist/cjs/types/Primitives.js.map +0 -1
  529. package/dist/cjs/types/Utilities.d.ts +0 -25
  530. package/dist/cjs/types/Utilities.js +0 -3
  531. package/dist/cjs/types/Utilities.js.map +0 -1
  532. package/dist/cjs/types/index.d.ts +0 -2
  533. package/dist/cjs/types/index.js +0 -19
  534. package/dist/cjs/types/index.js.map +0 -1
  535. package/dist/esm/modules/common/shared/models/Event.d.ts +0 -16
  536. package/dist/esm/modules/common/shared/models/Event.js +0 -15
  537. package/dist/esm/modules/common/shared/models/Event.js.map +0 -1
  538. package/dist/esm/modules/common/shared/models/EventFactory.d.ts +0 -16
  539. package/dist/esm/modules/common/shared/models/EventFactory.js +0 -11
  540. package/dist/esm/modules/common/shared/models/EventFactory.js.map +0 -1
  541. package/dist/esm/modules/sdk/ComponentLoader.d.ts +0 -18
  542. package/dist/esm/modules/sdk/ComponentLoader.js.map +0 -1
  543. package/dist/esm/modules/sdk/parseConfiguration.d.ts +0 -3
  544. package/dist/esm/modules/sdk/parseConfiguration.js.map +0 -1
  545. package/dist/umd/727.js +0 -3
  546. package/dist/umd/727.js.LICENSE.txt +0 -377
  547. package/dist/umd/727.js.map +0 -1
@@ -1,2 +1,3 @@
1
- "use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[295],{3534:(I,e,i)=>{i.r(e),i.d(e,{wrapper:()=>s});var g=i(9727),c=i.n(g),t=i(6932),d=function(I,e,i,g){return new(i||(i=Promise))((function(c,t){function d(I){try{s(g.next(I))}catch(I){t(I)}}function l(I){try{s(g.throw(I))}catch(I){t(I)}}function s(I){var e;I.done?c(I.value):(e=I.value,e instanceof i?e:new i((function(I){I(e)}))).then(d,l)}s((g=g.apply(I,e||[])).next())}))};const l=I=>{const e=document.createElement("img");switch(e.style.objectFit="cover",e.style.height="100%",e.style.width="100%",e.style.position="relative",e.style.zIndex="1",I){case"green":e.src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjMTRmZmMwIiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=";break;case"red":e.src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjZmY0NzQ3IiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=";break;default:e.src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo="}return e},s={vendor:"ocrlabs",initialise(I){return d(this,void 0,void 0,(function*(){return A(I),{vendor:"ocrlabs"}}))}},A=I=>{const{mountElement:e}=I,i=e.cloneNode(!0);e.parentNode.replaceChild(i,e),i.id="onesdk_idv_container",i.style.height="100%",i.style.minHeight="50px",i.style.width="100%",i.style.position="absolute",i.style.top="0",i.style.left="0",i.style.overflow="hidden",i.style.backgroundColor="#000";const g=document.createElement("div");g.id="onesdk_idv_loader",g.style.position="absolute",g.style.top="20px",g.style.left="50%",g.style.transform="translate(-50%, 0)",g.style.color="#fff",g.style.fontFamily='"Helvetica Neue", Helvetica, Arial, sans-serif',g.style.fontSize="24px",g.innerText="Loading...",i.appendChild(g);const c=document.createElement("video");c.id="onesdk_idv_video",c.autoplay=!0,c.muted=!0,c.style.position="absolute",c.style.top="0",c.style.left="0",c.playsInline=!0,c.style.height="100%",c.style.width="100%",c.style.display="none",c.style.zIndex="1",c.style.objectFit="cover",i.appendChild(c);const t=document.createElement("div");t.id="onesdk_idv_overlay",t.style.position="absolute",t.style.top="0",t.style.left="0",t.style.height="100%",t.style.width="100%",t.style.display="none",t.style.zIndex="2",t.appendChild(l("white")),i.appendChild(t);const d=document.createElement("div");return d.id="onesdk_idv_instructions",d.style.position="absolute",d.style.bottom="20px",d.style.left="50%",d.style.transform="translate(-50%, 0)",d.style.color="#fff",d.style.fontFamily='"Helvetica Neue", Helvetica, Arial, sans-serif',d.style.fontSize="24px",d.style.zIndex="3",i.appendChild(d),M(I),c},n=I=>d(void 0,void 0,void 0,(function*(){const{eventHub:e,mountElement:i}=I,g=document.getElementById("onesdk_idv_container");g&&g.parentNode.replaceChild(i,g);try{yield c().close(),e.emit("session_closed")}catch(I){const{message:i}=I;e.emit("error",{message:"Error from vendor SDK 'OcrLabs'",payload:{message:i}})}})),M=I=>d(void 0,void 0,void 0,(function*(){const e=new t.B(I.frankieClient),{eventHub:i,recipe:g}=I,{token:d}=yield e.getToken(),l={session_id:d,tx_id:g.biometrics.provider.tx_id};i.emit("session_data_generated",{session:l});const s=document.getElementById("onesdk_idv_video"),A=document.getElementById("onesdk_idv_loader"),M=document.getElementById("onesdk_idv_overlay");c().observer.on("error",(e=>{const{message:g}=e;i.emit("error",{message:"Error from vendor SDK 'OcrLabs'",payload:{message:g}}),n(I)}));try{yield c().createSession("wss://engine.au.v3.liveness.idkit.io",{videoElement:s,auth:l}),A.remove(),s.style.display="block",M.style.display="block",i.emit("ready"),o(I,e)}catch(e){i.emit("session_data_failed_loading",{code:e.code||null,message:e.message}),n(I)}})),o=(I,e)=>d(void 0,void 0,void 0,(function*(){const{eventHub:i,recipe:{biometrics:{is_synchronous:g}}}=I,s=document.getElementById("onesdk_idv_overlay"),A=document.getElementById("onesdk_idv_instructions");s.style.display="block",A.style.display="block";const M=(e,g)=>d(void 0,void 0,void 0,(function*(){const t=c().delay||2e3;return new Promise(((M,o)=>d(void 0,void 0,void 0,(function*(){A.innerText=g,s.removeChild(s.firstChild),s.appendChild(l("white"));try{yield c().detect(e,{retry:!0,timeout:7500}),A.innerText="Thanks!",s.removeChild(s.firstChild),s.appendChild(l("green")),setTimeout((()=>{M(!0)}),t)}catch(e){A.innerText="Something went wrong",s.removeChild(s.firstChild),s.appendChild(l("red")),i.emit("detection_failed",{message:e&&e.message?e.message:null}),setTimeout((()=>{n(I),M(!1)}),t)}}))))}));yield M("face","Position your face within the frame"),yield M("smile","Please give us a BIG Smile!"),i.emit("detection_complete");try{yield n(I);const{checkStatus:c}=yield e.initProcess({isSynchronous:!!g});switch(c){case t.q.PROVIDER_OFFLINE:i.emit("error",{message:"Error initialising liveness check with OCRLabs. The service doesn't appear to be available.",payload:{message:c}}),n(I);break;case t.q.WAITING_SELFIE_UPLOAD:i.emit("error",{message:"Error initialising liveness check with OCRLabs. You might need to run the 'ocr' component before running 'biometrics'.",payload:{message:c}}),n(I);break;default:i.emit(g?"results":"processing",{checkStatus:c})}}catch(I){const{message:e}=I;i.emit("error",{message:"Error calling initProcess",payload:{message:e}})}n(I)}))}}]);
1
+ /*! For license information please see biometrics-ocrlabs.js.LICENSE.txt */
2
+ "use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[295],{7309:(e,t,r)=>{r.r(t),r.d(t,{wrapper:()=>p});var i,s,n=r(3868),a=r(6932);i=window,s=function(){return function(e){var t={};function r(i){if(t[i])return t[i].exports;var s=t[i]={i,l:!1,exports:{}};return e[i].call(s.exports,s,s.exports,r),s.l=!0,s.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)r.d(i,s,function(t){return e[t]}.bind(null,s));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=33)}([function(e,t,r){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;const s=i(r(20)),n="mediasoup-client";t.Logger=class{constructor(e){e?(this._debug=(0,s.default)(`${n}:${e}`),this._warn=(0,s.default)(`${n}:WARN:${e}`),this._error=(0,s.default)(`${n}:ERROR:${e}`)):(this._debug=(0,s.default)(n),this._warn=(0,s.default)(n+":WARN"),this._error=(0,s.default)(n+":ERROR")),this._debug.log=console.info.bind(console),this._warn.log=console.warn.bind(console),this._error.log=console.error.bind(console)}get debug(){return this._debug}get warn(){return this._warn}get error(){return this._error}}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.generateRandomNumber=t.clone=void 0,t.clone=function(e,t){return void 0===e?t:JSON.parse(JSON.stringify(e))},t.generateRandomNumber=function(){return Math.round(1e7*Math.random())}},function(e,t){function r(e){if(e)return function(e){for(var t in r.prototype)e[t]=r.prototype[t];return e}(e)}t.Emitter=r,r.prototype.on=r.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},r.prototype.once=function(e,t){function r(){this.off(e,r),t.apply(this,arguments)}return r.fn=t,this.on(e,r),this},r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var r,i=this._callbacks["$"+e];if(!i)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var s=0;s<i.length;s++)if((r=i[s])===t||r.fn===t){i.splice(s,1);break}return 0===i.length&&delete this._callbacks["$"+e],this},r.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),r=this._callbacks["$"+e],i=1;i<arguments.length;i++)t[i-1]=arguments[i];if(r){i=0;for(var s=(r=r.slice(0)).length;i<s;++i)r[i].apply(this,t)}return this},r.prototype.emitReserved=r.prototype.emit,r.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]},r.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t,r){t.a="undefined"!=typeof self?self:"undefined"!=typeof window?window:Function("return this")()},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.canReceive=t.canSend=t.generateProbatorRtpParameters=t.reduceCodecs=t.getSendingRemoteRtpParameters=t.getSendingRtpParameters=t.getRecvRtpCapabilities=t.getExtendedRtpCapabilities=t.validateSctpStreamParameters=t.validateSctpParameters=t.validateNumSctpStreams=t.validateSctpCapabilities=t.validateRtcpParameters=t.validateRtpEncodingParameters=t.validateRtpHeaderExtensionParameters=t.validateRtpCodecParameters=t.validateRtpParameters=t.validateRtpHeaderExtension=t.validateRtcpFeedback=t.validateRtpCodecCapability=t.validateRtpCapabilities=void 0;const a=n(r(41)),o=n(r(1));function c(e){const t=new RegExp("^(audio|video)/(.+)","i");if("object"!=typeof e)throw new TypeError("codec is not an object");if(!e.mimeType||"string"!=typeof e.mimeType)throw new TypeError("missing codec.mimeType");const r=t.exec(e.mimeType);if(!r)throw new TypeError("invalid codec.mimeType");if(e.kind=r[1].toLowerCase(),e.preferredPayloadType&&"number"!=typeof e.preferredPayloadType)throw new TypeError("invalid codec.preferredPayloadType");if("number"!=typeof e.clockRate)throw new TypeError("missing codec.clockRate");"audio"===e.kind?"number"!=typeof e.channels&&(e.channels=1):delete e.channels,e.parameters&&"object"==typeof e.parameters||(e.parameters={});for(const t of Object.keys(e.parameters)){let r=e.parameters[t];if(void 0===r&&(e.parameters[t]="",r=""),"string"!=typeof r&&"number"!=typeof r)throw new TypeError(`invalid codec parameter [key:${t}s, value:${r}]`);if("apt"===t&&"number"!=typeof r)throw new TypeError("invalid codec apt parameter")}e.rtcpFeedback&&Array.isArray(e.rtcpFeedback)||(e.rtcpFeedback=[]);for(const t of e.rtcpFeedback)d(t)}function d(e){if("object"!=typeof e)throw new TypeError("fb is not an object");if(!e.type||"string"!=typeof e.type)throw new TypeError("missing fb.type");e.parameter&&"string"==typeof e.parameter||(e.parameter="")}function p(e){if("object"!=typeof e)throw new TypeError("ext is not an object");if("audio"!==e.kind&&"video"!==e.kind)throw new TypeError("invalid ext.kind");if(!e.uri||"string"!=typeof e.uri)throw new TypeError("missing ext.uri");if("number"!=typeof e.preferredId)throw new TypeError("missing ext.preferredId");if(e.preferredEncrypt&&"boolean"!=typeof e.preferredEncrypt)throw new TypeError("invalid ext.preferredEncrypt");if(e.preferredEncrypt||(e.preferredEncrypt=!1),e.direction&&"string"!=typeof e.direction)throw new TypeError("invalid ext.direction");e.direction||(e.direction="sendrecv")}function l(e){if("object"!=typeof e)throw new TypeError("params is not an object");if(e.mid&&"string"!=typeof e.mid)throw new TypeError("params.mid is not a string");if(!Array.isArray(e.codecs))throw new TypeError("missing params.codecs");for(const t of e.codecs)h(t);if(e.headerExtensions&&!Array.isArray(e.headerExtensions))throw new TypeError("params.headerExtensions is not an array");e.headerExtensions||(e.headerExtensions=[]);for(const t of e.headerExtensions)u(t);if(e.encodings&&!Array.isArray(e.encodings))throw new TypeError("params.encodings is not an array");e.encodings||(e.encodings=[]);for(const t of e.encodings)f(t);if(e.rtcp&&"object"!=typeof e.rtcp)throw new TypeError("params.rtcp is not an object");e.rtcp||(e.rtcp={}),m(e.rtcp)}function h(e){const t=new RegExp("^(audio|video)/(.+)","i");if("object"!=typeof e)throw new TypeError("codec is not an object");if(!e.mimeType||"string"!=typeof e.mimeType)throw new TypeError("missing codec.mimeType");const r=t.exec(e.mimeType);if(!r)throw new TypeError("invalid codec.mimeType");if("number"!=typeof e.payloadType)throw new TypeError("missing codec.payloadType");if("number"!=typeof e.clockRate)throw new TypeError("missing codec.clockRate");"audio"===r[1].toLowerCase()?"number"!=typeof e.channels&&(e.channels=1):delete e.channels,e.parameters&&"object"==typeof e.parameters||(e.parameters={});for(const t of Object.keys(e.parameters)){let r=e.parameters[t];if(void 0===r&&(e.parameters[t]="",r=""),"string"!=typeof r&&"number"!=typeof r)throw new TypeError(`invalid codec parameter [key:${t}s, value:${r}]`);if("apt"===t&&"number"!=typeof r)throw new TypeError("invalid codec apt parameter")}e.rtcpFeedback&&Array.isArray(e.rtcpFeedback)||(e.rtcpFeedback=[]);for(const t of e.rtcpFeedback)d(t)}function u(e){if("object"!=typeof e)throw new TypeError("ext is not an object");if(!e.uri||"string"!=typeof e.uri)throw new TypeError("missing ext.uri");if("number"!=typeof e.id)throw new TypeError("missing ext.id");if(e.encrypt&&"boolean"!=typeof e.encrypt)throw new TypeError("invalid ext.encrypt");e.encrypt||(e.encrypt=!1),e.parameters&&"object"==typeof e.parameters||(e.parameters={});for(const t of Object.keys(e.parameters)){let r=e.parameters[t];if(void 0===r&&(e.parameters[t]="",r=""),"string"!=typeof r&&"number"!=typeof r)throw new TypeError("invalid header extension parameter")}}function f(e){if("object"!=typeof e)throw new TypeError("encoding is not an object");if(e.ssrc&&"number"!=typeof e.ssrc)throw new TypeError("invalid encoding.ssrc");if(e.rid&&"string"!=typeof e.rid)throw new TypeError("invalid encoding.rid");if(e.rtx&&"object"!=typeof e.rtx)throw new TypeError("invalid encoding.rtx");if(e.rtx&&"number"!=typeof e.rtx.ssrc)throw new TypeError("missing encoding.rtx.ssrc");if(e.dtx&&"boolean"==typeof e.dtx||(e.dtx=!1),e.scalabilityMode&&"string"!=typeof e.scalabilityMode)throw new TypeError("invalid encoding.scalabilityMode")}function m(e){if("object"!=typeof e)throw new TypeError("rtcp is not an object");if(e.cname&&"string"!=typeof e.cname)throw new TypeError("invalid rtcp.cname");e.reducedSize&&"boolean"==typeof e.reducedSize||(e.reducedSize=!0)}function g(e){if("object"!=typeof e)throw new TypeError("numStreams is not an object");if("number"!=typeof e.OS)throw new TypeError("missing numStreams.OS");if("number"!=typeof e.MIS)throw new TypeError("missing numStreams.MIS")}function b(e){return!!e&&/.+\/rtx$/i.test(e.mimeType)}function v(e,t,{strict:r=!1,modify:i=!1}={}){const s=e.mimeType.toLowerCase();if(s!==t.mimeType.toLowerCase())return!1;if(e.clockRate!==t.clockRate)return!1;if(e.channels!==t.channels)return!1;switch(s){case"video/h264":if(r){if((e.parameters["packetization-mode"]||0)!==(t.parameters["packetization-mode"]||0))return!1;if(!a.isSameProfile(e.parameters,t.parameters))return!1;let r;try{r=a.generateProfileLevelIdForAnswer(e.parameters,t.parameters)}catch(e){return!1}i&&(r?(e.parameters["profile-level-id"]=r,t.parameters["profile-level-id"]=r):(delete e.parameters["profile-level-id"],delete t.parameters["profile-level-id"]))}break;case"video/vp9":if(r&&(e.parameters["profile-id"]||0)!==(t.parameters["profile-id"]||0))return!1}return!0}function w(e,t){return!(e.kind&&t.kind&&e.kind!==t.kind||e.uri!==t.uri)}function y(e,t){const r=[];for(const i of e.rtcpFeedback||[]){const e=(t.rtcpFeedback||[]).find((e=>e.type===i.type&&(e.parameter===i.parameter||!e.parameter&&!i.parameter)));e&&r.push(e)}return r}t.validateRtpCapabilities=function(e){if("object"!=typeof e)throw new TypeError("caps is not an object");if(e.codecs&&!Array.isArray(e.codecs))throw new TypeError("caps.codecs is not an array");e.codecs||(e.codecs=[]);for(const t of e.codecs)c(t);if(e.headerExtensions&&!Array.isArray(e.headerExtensions))throw new TypeError("caps.headerExtensions is not an array");e.headerExtensions||(e.headerExtensions=[]);for(const t of e.headerExtensions)p(t)},t.validateRtpCodecCapability=c,t.validateRtcpFeedback=d,t.validateRtpHeaderExtension=p,t.validateRtpParameters=l,t.validateRtpCodecParameters=h,t.validateRtpHeaderExtensionParameters=u,t.validateRtpEncodingParameters=f,t.validateRtcpParameters=m,t.validateSctpCapabilities=function(e){if("object"!=typeof e)throw new TypeError("caps is not an object");if(!e.numStreams||"object"!=typeof e.numStreams)throw new TypeError("missing caps.numStreams");g(e.numStreams)},t.validateNumSctpStreams=g,t.validateSctpParameters=function(e){if("object"!=typeof e)throw new TypeError("params is not an object");if("number"!=typeof e.port)throw new TypeError("missing params.port");if("number"!=typeof e.OS)throw new TypeError("missing params.OS");if("number"!=typeof e.MIS)throw new TypeError("missing params.MIS");if("number"!=typeof e.maxMessageSize)throw new TypeError("missing params.maxMessageSize")},t.validateSctpStreamParameters=function(e){if("object"!=typeof e)throw new TypeError("params is not an object");if("number"!=typeof e.streamId)throw new TypeError("missing params.streamId");let t=!1;if("boolean"==typeof e.ordered?t=!0:e.ordered=!0,e.maxPacketLifeTime&&"number"!=typeof e.maxPacketLifeTime)throw new TypeError("invalid params.maxPacketLifeTime");if(e.maxRetransmits&&"number"!=typeof e.maxRetransmits)throw new TypeError("invalid params.maxRetransmits");if(e.maxPacketLifeTime&&e.maxRetransmits)throw new TypeError("cannot provide both maxPacketLifeTime and maxRetransmits");if(t&&e.ordered&&(e.maxPacketLifeTime||e.maxRetransmits))throw new TypeError("cannot be ordered with maxPacketLifeTime or maxRetransmits");if(t||!e.maxPacketLifeTime&&!e.maxRetransmits||(e.ordered=!1),e.label&&"string"!=typeof e.label)throw new TypeError("invalid params.label");if(e.protocol&&"string"!=typeof e.protocol)throw new TypeError("invalid params.protocol")},t.getExtendedRtpCapabilities=function(e,t){const r={codecs:[],headerExtensions:[]};for(const i of t.codecs||[]){if(b(i))continue;const t=(e.codecs||[]).find((e=>v(e,i,{strict:!0,modify:!0})));if(!t)continue;const s={mimeType:t.mimeType,kind:t.kind,clockRate:t.clockRate,channels:t.channels,localPayloadType:t.preferredPayloadType,localRtxPayloadType:void 0,remotePayloadType:i.preferredPayloadType,remoteRtxPayloadType:void 0,localParameters:t.parameters,remoteParameters:i.parameters,rtcpFeedback:y(t,i)};r.codecs.push(s)}for(const i of r.codecs){const r=e.codecs.find((e=>b(e)&&e.parameters.apt===i.localPayloadType)),s=t.codecs.find((e=>b(e)&&e.parameters.apt===i.remotePayloadType));r&&s&&(i.localRtxPayloadType=r.preferredPayloadType,i.remoteRtxPayloadType=s.preferredPayloadType)}for(const i of t.headerExtensions){const t=e.headerExtensions.find((e=>w(e,i)));if(!t)continue;const s={kind:i.kind,uri:i.uri,sendId:t.preferredId,recvId:i.preferredId,encrypt:t.preferredEncrypt,direction:"sendrecv"};switch(i.direction){case"sendrecv":s.direction="sendrecv";break;case"recvonly":s.direction="sendonly";break;case"sendonly":s.direction="recvonly";break;case"inactive":s.direction="inactive"}r.headerExtensions.push(s)}return r},t.getRecvRtpCapabilities=function(e){const t={codecs:[],headerExtensions:[]};for(const r of e.codecs){const e={mimeType:r.mimeType,kind:r.kind,preferredPayloadType:r.remotePayloadType,clockRate:r.clockRate,channels:r.channels,parameters:r.localParameters,rtcpFeedback:r.rtcpFeedback};if(t.codecs.push(e),!r.remoteRtxPayloadType)continue;const i={mimeType:r.kind+"/rtx",kind:r.kind,preferredPayloadType:r.remoteRtxPayloadType,clockRate:r.clockRate,parameters:{apt:r.remotePayloadType},rtcpFeedback:[]};t.codecs.push(i)}for(const r of e.headerExtensions){if("sendrecv"!==r.direction&&"recvonly"!==r.direction)continue;const e={kind:r.kind,uri:r.uri,preferredId:r.recvId,preferredEncrypt:r.encrypt,direction:r.direction};t.headerExtensions.push(e)}return t},t.getSendingRtpParameters=function(e,t){const r={mid:void 0,codecs:[],headerExtensions:[],encodings:[],rtcp:{}};for(const i of t.codecs){if(i.kind!==e)continue;const t={mimeType:i.mimeType,payloadType:i.localPayloadType,clockRate:i.clockRate,channels:i.channels,parameters:i.localParameters,rtcpFeedback:i.rtcpFeedback};if(r.codecs.push(t),i.localRtxPayloadType){const e={mimeType:i.kind+"/rtx",payloadType:i.localRtxPayloadType,clockRate:i.clockRate,parameters:{apt:i.localPayloadType},rtcpFeedback:[]};r.codecs.push(e)}}for(const i of t.headerExtensions){if(i.kind&&i.kind!==e||"sendrecv"!==i.direction&&"sendonly"!==i.direction)continue;const t={uri:i.uri,id:i.sendId,encrypt:i.encrypt,parameters:{}};r.headerExtensions.push(t)}return r},t.getSendingRemoteRtpParameters=function(e,t){const r={mid:void 0,codecs:[],headerExtensions:[],encodings:[],rtcp:{}};for(const i of t.codecs){if(i.kind!==e)continue;const t={mimeType:i.mimeType,payloadType:i.localPayloadType,clockRate:i.clockRate,channels:i.channels,parameters:i.remoteParameters,rtcpFeedback:i.rtcpFeedback};if(r.codecs.push(t),i.localRtxPayloadType){const e={mimeType:i.kind+"/rtx",payloadType:i.localRtxPayloadType,clockRate:i.clockRate,parameters:{apt:i.localPayloadType},rtcpFeedback:[]};r.codecs.push(e)}}for(const i of t.headerExtensions){if(i.kind&&i.kind!==e||"sendrecv"!==i.direction&&"sendonly"!==i.direction)continue;const t={uri:i.uri,id:i.sendId,encrypt:i.encrypt,parameters:{}};r.headerExtensions.push(t)}if(r.headerExtensions.some((e=>"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"===e.uri)))for(const e of r.codecs)e.rtcpFeedback=(e.rtcpFeedback||[]).filter((e=>"goog-remb"!==e.type));else if(r.headerExtensions.some((e=>"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"===e.uri)))for(const e of r.codecs)e.rtcpFeedback=(e.rtcpFeedback||[]).filter((e=>"transport-cc"!==e.type));else for(const e of r.codecs)e.rtcpFeedback=(e.rtcpFeedback||[]).filter((e=>"transport-cc"!==e.type&&"goog-remb"!==e.type));return r},t.reduceCodecs=function(e,t){const r=[];if(t){for(let i=0;i<e.length;++i)if(v(e[i],t)){r.push(e[i]),b(e[i+1])&&r.push(e[i+1]);break}if(0===r.length)throw new TypeError("no matching codec found")}else r.push(e[0]),b(e[1])&&r.push(e[1]);return r},t.generateProbatorRtpParameters=function(e){l(e=o.clone(e,{}));const t={mid:"probator",codecs:[],headerExtensions:[],encodings:[{ssrc:1234}],rtcp:{cname:"probator"}};return t.codecs.push(e.codecs[0]),t.codecs[0].payloadType=127,t.headerExtensions=e.headerExtensions,t},t.canSend=function(e,t){return t.codecs.some((t=>t.kind===e))},t.canReceive=function(e,t){if(l(e),0===e.codecs.length)return!1;const r=e.codecs[0];return t.codecs.some((e=>e.remotePayloadType===r.payloadType))}},function(e,t,r){r.d(t,"b",(function(){return s})),r.d(t,"a",(function(){return o}));var i=r(3);function s(e,...t){return t.reduce(((t,r)=>(e.hasOwnProperty(r)&&(t[r]=e[r]),t)),{})}const n=setTimeout,a=clearTimeout;function o(e,t){t.useNativeTimers?(e.setTimeoutFn=n.bind(i.a),e.clearTimeoutFn=a.bind(i.a)):(e.setTimeoutFn=setTimeout.bind(i.a),e.clearTimeoutFn=clearTimeout.bind(i.a))}},function(e,t,r){r.d(t,"c",(function(){return s})),r.d(t,"a",(function(){return n})),r.d(t,"d",(function(){return a})),r.d(t,"b",(function(){return o}));var i=r(3);const s="function"==typeof Promise&&"function"==typeof Promise.resolve?e=>Promise.resolve().then(e):(e,t)=>t(e,0),n=i.a.WebSocket||i.a.MozWebSocket,a=!0,o="arraybuffer"},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.InvalidStateError=t.UnsupportedError=void 0;class i extends Error{constructor(e){super(e),this.name="UnsupportedError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,i):this.stack=new Error(e).stack}}t.UnsupportedError=i;class s extends Error{constructor(e){super(e),this.name="InvalidStateError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,s):this.stack=new Error(e).stack}}t.InvalidStateError=s},function(e,t,r){var i=r(44),s=r(45);t.write=s,t.parse=i.parse,t.parseParams=i.parseParams,t.parseFmtpConfig=i.parseFmtpConfig,t.parsePayloads=i.parsePayloads,t.parseRemoteCandidates=i.parseRemoteCandidates,t.parseImageAttributes=i.parseImageAttributes,t.parseSimulcastStreamList=i.parseSimulcastStreamList},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.HandlerInterface=void 0;const i=r(13);class s extends i.EnhancedEventEmitter{constructor(){super()}}t.HandlerInterface=s},function(e,t,r){r.d(t,"e",(function(){return y})),r.d(t,"c",(function(){return d})),r.d(t,"d",(function(){return v})),r.d(t,"a",(function(){return g})),r.d(t,"b",(function(){return w}));const i=Object.create(null);i.open="0",i.close="1",i.ping="2",i.pong="3",i.message="4",i.upgrade="5",i.noop="6";const s=Object.create(null);Object.keys(i).forEach((e=>{s[i[e]]=e}));const n={type:"error",data:"parser error"},a="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===Object.prototype.toString.call(Blob),o="function"==typeof ArrayBuffer,c=(e,t)=>{const r=new FileReader;return r.onload=function(){const e=r.result.split(",")[1];t("b"+e)},r.readAsDataURL(e)};for(var d=({type:e,data:t},r,s)=>{return a&&t instanceof Blob?r?s(t):c(t,s):o&&(t instanceof ArrayBuffer||(n=t,"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(n):n&&n.buffer instanceof ArrayBuffer))?r?s(t):c(new Blob([t]),s):s(i[e]+(t||""));var n},p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l="undefined"==typeof Uint8Array?[]:new Uint8Array(256),h=0;h<p.length;h++)l[p.charCodeAt(h)]=h;const u="function"==typeof ArrayBuffer,f=(e,t)=>{if(u){const r=function(e){var t,r,i,s,n,a=.75*e.length,o=e.length,c=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);var d=new ArrayBuffer(a),p=new Uint8Array(d);for(t=0;t<o;t+=4)r=l[e.charCodeAt(t)],i=l[e.charCodeAt(t+1)],s=l[e.charCodeAt(t+2)],n=l[e.charCodeAt(t+3)],p[c++]=r<<2|i>>4,p[c++]=(15&i)<<4|s>>2,p[c++]=(3&s)<<6|63&n;return d}(e);return m(r,t)}return{base64:!0,data:e}},m=(e,t)=>"blob"===t&&e instanceof ArrayBuffer?new Blob([e]):e;var g=(e,t)=>{if("string"!=typeof e)return{type:"message",data:m(e,t)};const r=e.charAt(0);return"b"===r?{type:"message",data:f(e.substring(1),t)}:s[r]?e.length>1?{type:s[r],data:e.substring(1)}:{type:s[r]}:n};const b=String.fromCharCode(30),v=(e,t)=>{const r=e.length,i=new Array(r);let s=0;e.forEach(((e,n)=>{d(e,!1,(e=>{i[n]=e,++s===r&&t(i.join(b))}))}))},w=(e,t)=>{const r=e.split(b),i=[];for(let e=0;e<r.length;e++){const s=g(r[e],t);if(i.push(s),"error"===s.type)break}return i},y=4},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.applyCodecParameters=t.getCname=t.extractDtlsParameters=t.extractRtpCapabilities=void 0;const a=n(r(8));t.extractRtpCapabilities=function({sdpObject:e}){const t=new Map,r=[];let i=!1,s=!1;for(const n of e.media){const e=n.type;switch(e){case"audio":if(i)continue;i=!0;break;case"video":if(s)continue;s=!0;break;default:continue}for(const r of n.rtp){const i={kind:e,mimeType:`${e}/${r.codec}`,preferredPayloadType:r.payload,clockRate:r.rate,channels:r.encoding,parameters:{},rtcpFeedback:[]};t.set(i.preferredPayloadType,i)}for(const e of n.fmtp||[]){const r=a.parseParams(e.config),i=t.get(e.payload);i&&(r&&r.hasOwnProperty("profile-level-id")&&(r["profile-level-id"]=String(r["profile-level-id"])),i.parameters=r)}for(const e of n.rtcpFb||[]){const r=t.get(e.payload);if(!r)continue;const i={type:e.type,parameter:e.subtype};i.parameter||delete i.parameter,r.rtcpFeedback.push(i)}for(const t of n.ext||[]){if(t["encrypt-uri"])continue;const i={kind:e,uri:t.uri,preferredId:t.value};r.push(i)}}return{codecs:Array.from(t.values()),headerExtensions:r}},t.extractDtlsParameters=function({sdpObject:e}){const t=(e.media||[]).find((e=>e.iceUfrag&&0!==e.port));if(!t)throw new Error("no active media section found");const r=t.fingerprint||e.fingerprint;let i;switch(t.setup){case"active":i="client";break;case"passive":i="server";break;case"actpass":i="auto"}return{role:i,fingerprints:[{algorithm:r.type,value:r.hash}]}},t.getCname=function({offerMediaObject:e}){const t=(e.ssrcs||[]).find((e=>"cname"===e.attribute));return t?t.value:""},t.applyCodecParameters=function({offerRtpParameters:e,answerMediaObject:t}){for(const r of e.codecs){const e=r.mimeType.toLowerCase();if("audio/opus"!==e)continue;if(!(t.rtp||[]).find((e=>e.payload===r.payloadType)))continue;t.fmtp=t.fmtp||[];let i=t.fmtp.find((e=>e.payload===r.payloadType));i||(i={payload:r.payloadType,config:""},t.fmtp.push(i));const s=a.parseParams(i.config);switch(e){case"audio/opus":{const e=r.parameters["sprop-stereo"];void 0!==e&&(s.stereo=e?1:0);break}}i.config="";for(const e of Object.keys(s))i.config&&(i.config+=";"),i.config+=`${e}=${s[e]}`}}},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.RemoteSdp=void 0;const a=n(r(8)),o=r(0),c=r(46),d=new o.Logger("RemoteSdp");t.RemoteSdp=class{constructor({iceParameters:e,iceCandidates:t,dtlsParameters:r,sctpParameters:i,plainRtpParameters:s,planB:n=!1}){if(this._mediaSections=[],this._midToIndex=new Map,this._iceParameters=e,this._iceCandidates=t,this._dtlsParameters=r,this._sctpParameters=i,this._plainRtpParameters=s,this._planB=n,this._sdpObject={version:0,origin:{address:"0.0.0.0",ipVer:4,netType:"IN",sessionId:1e4,sessionVersion:0,username:"mediasoup-client"},name:"-",timing:{start:0,stop:0},media:[]},e&&e.iceLite&&(this._sdpObject.icelite="ice-lite"),r){this._sdpObject.msidSemantic={semantic:"WMS",token:"*"};const e=this._dtlsParameters.fingerprints.length;this._sdpObject.fingerprint={type:r.fingerprints[e-1].algorithm,hash:r.fingerprints[e-1].value},this._sdpObject.groups=[{type:"BUNDLE",mids:""}]}s&&(this._sdpObject.origin.address=s.ip,this._sdpObject.origin.ipVer=s.ipVersion)}updateIceParameters(e){d.debug("updateIceParameters() [iceParameters:%o]",e),this._iceParameters=e,this._sdpObject.icelite=e.iceLite?"ice-lite":void 0;for(const t of this._mediaSections)t.setIceParameters(e)}updateDtlsRole(e){d.debug("updateDtlsRole() [role:%s]",e),this._dtlsParameters.role=e;for(const t of this._mediaSections)t.setDtlsRole(e)}getNextMediaSectionIdx(){for(let e=0;e<this._mediaSections.length;++e){const t=this._mediaSections[e];if(t.closed)return{idx:e,reuseMid:t.mid}}return{idx:this._mediaSections.length}}send({offerMediaObject:e,reuseMid:t,offerRtpParameters:r,answerRtpParameters:i,codecOptions:s,extmapAllowMixed:n=!1}){const a=new c.AnswerMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,plainRtpParameters:this._plainRtpParameters,planB:this._planB,offerMediaObject:e,offerRtpParameters:r,answerRtpParameters:i,codecOptions:s,extmapAllowMixed:n});t?this._replaceMediaSection(a,t):this._midToIndex.has(a.mid)?this._replaceMediaSection(a):this._addMediaSection(a)}receive({mid:e,kind:t,offerRtpParameters:r,streamId:i,trackId:s}){const n=this._midToIndex.get(e);let a;if(void 0!==n&&(a=this._mediaSections[n]),a)a.planBReceive({offerRtpParameters:r,streamId:i,trackId:s}),this._replaceMediaSection(a);else{a=new c.OfferMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,plainRtpParameters:this._plainRtpParameters,planB:this._planB,mid:e,kind:t,offerRtpParameters:r,streamId:i,trackId:s});const n=this._mediaSections.find((e=>e.closed));n?this._replaceMediaSection(a,n.mid):this._addMediaSection(a)}}disableMediaSection(e){const t=this._midToIndex.get(e);if(void 0===t)throw new Error(`no media section found with mid '${e}'`);this._mediaSections[t].disable()}closeMediaSection(e){const t=this._midToIndex.get(e);if(void 0===t)throw new Error(`no media section found with mid '${e}'`);const r=this._mediaSections[t];if(e===this._firstMid)return d.debug("closeMediaSection() | cannot close first media section, disabling it instead [mid:%s]",e),void this.disableMediaSection(e);r.close(),this._regenerateBundleMids()}planBStopReceiving({mid:e,offerRtpParameters:t}){const r=this._midToIndex.get(e);if(void 0===r)throw new Error(`no media section found with mid '${e}'`);const i=this._mediaSections[r];i.planBStopReceiving({offerRtpParameters:t}),this._replaceMediaSection(i)}sendSctpAssociation({offerMediaObject:e}){const t=new c.AnswerMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,sctpParameters:this._sctpParameters,plainRtpParameters:this._plainRtpParameters,offerMediaObject:e});this._addMediaSection(t)}receiveSctpAssociation({oldDataChannelSpec:e=!1}={}){const t=new c.OfferMediaSection({iceParameters:this._iceParameters,iceCandidates:this._iceCandidates,dtlsParameters:this._dtlsParameters,sctpParameters:this._sctpParameters,plainRtpParameters:this._plainRtpParameters,mid:"datachannel",kind:"application",oldDataChannelSpec:e});this._addMediaSection(t)}getSdp(){return this._sdpObject.origin.sessionVersion++,a.write(this._sdpObject)}_addMediaSection(e){this._firstMid||(this._firstMid=e.mid),this._mediaSections.push(e),this._midToIndex.set(e.mid,this._mediaSections.length-1),this._sdpObject.media.push(e.getObject()),this._regenerateBundleMids()}_replaceMediaSection(e,t){if("string"==typeof t){const r=this._midToIndex.get(t);if(void 0===r)throw new Error(`no media section found for reuseMid '${t}'`);const i=this._mediaSections[r];this._mediaSections[r]=e,this._midToIndex.delete(i.mid),this._midToIndex.set(e.mid,r),this._sdpObject.media[r]=e.getObject(),this._regenerateBundleMids()}else{const t=this._midToIndex.get(e.mid);if(void 0===t)throw new Error(`no media section found with mid '${e.mid}'`);this._mediaSections[t]=e,this._sdpObject.media[t]=e.getObject()}}_regenerateBundleMids(){this._dtlsParameters&&(this._sdpObject.groups[0].mids=this._mediaSections.filter((e=>!e.closed)).map((e=>e.mid)).join(" "))}}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.EnhancedEventEmitter=void 0;const i=r(22),s=new(r(0).Logger)("EnhancedEventEmitter");class n extends i.EventEmitter{constructor(){super(),this.setMaxListeners(1/0)}safeEmit(e,...t){const r=this.listenerCount(e);try{return this.emit(e,...t)}catch(t){return s.error("safeEmit() | event listener threw an error [event:%s]:%o",e,t),Boolean(r)}}async safeEmitAsPromise(e,...t){return new Promise(((r,i)=>{try{this.emit(e,...t,r,i)}catch(t){s.error("safeEmitAsPromise() | event listener threw an error [event:%s]:%o",e,t),i(t)}}))}}t.EnhancedEventEmitter=n},function(e,t,r){r.d(t,"a",(function(){return a}));var i=r(10),s=r(2),n=r(5);class a extends s.Emitter{constructor(e){super(),this.writable=!1,Object(n.a)(this,e),this.opts=e,this.query=e.query,this.readyState="",this.socket=e.socket}onError(e,t){const r=new Error(e);return r.type="TransportError",r.description=t,super.emit("error",r),this}open(){return"closed"!==this.readyState&&""!==this.readyState||(this.readyState="opening",this.doOpen()),this}close(){return"opening"!==this.readyState&&"open"!==this.readyState||(this.doClose(),this.onClose()),this}send(e){"open"===this.readyState&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emit("open")}onData(e){const t=Object(i.a)(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emit("packet",e)}onClose(){this.readyState="closed",super.emit("close")}}},function(e,t){t.encode=function(e){var t="";for(var r in e)e.hasOwnProperty(r)&&(t.length&&(t+="&"),t+=encodeURIComponent(r)+"="+encodeURIComponent(e[r]));return t},t.decode=function(e){for(var t={},r=e.split("&"),i=0,s=r.length;i<s;i++){var n=r[i].split("=");t[decodeURIComponent(n[0])]=decodeURIComponent(n[1])}return t}},function(e,t){var r=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,i=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];e.exports=function(e){var t=e,s=e.indexOf("["),n=e.indexOf("]");-1!=s&&-1!=n&&(e=e.substring(0,s)+e.substring(s,n).replace(/:/g,";")+e.substring(n,e.length));for(var a,o,c=r.exec(e||""),d={},p=14;p--;)d[i[p]]=c[p]||"";return-1!=s&&-1!=n&&(d.source=t,d.host=d.host.substring(1,d.host.length-1).replace(/;/g,":"),d.authority=d.authority.replace("[","").replace("]","").replace(/;/g,":"),d.ipv6uri=!0),d.pathNames=function(e,t){var r=t.replace(/\/{2,9}/g,"/").split("/");return"/"!=t.substr(0,1)&&0!==t.length||r.splice(0,1),"/"==t.substr(t.length-1,1)&&r.splice(r.length-1,1),r}(0,d.path),d.queryKey=(a=d.query,o={},a.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,(function(e,t,r){t&&(o[t]=r)})),o),d}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.addLegacySimulcast=t.getRtpEncodings=void 0,t.getRtpEncodings=function({offerMediaObject:e}){const t=new Set;for(const r of e.ssrcs||[]){const e=r.id;t.add(e)}if(0===t.size)throw new Error("no a=ssrc lines found");const r=new Map;for(const i of e.ssrcGroups||[]){if("FID"!==i.semantics)continue;let[e,s]=i.ssrcs.split(/\s+/);e=Number(e),s=Number(s),t.has(e)&&(t.delete(e),t.delete(s),r.set(e,s))}for(const e of t)r.set(e,null);const i=[];for(const[e,t]of r){const r={ssrc:e};t&&(r.rtx={ssrc:t}),i.push(r)}return i},t.addLegacySimulcast=function({offerMediaObject:e,numStreams:t}){if(t<=1)throw new TypeError("numStreams must be greater than 1");const r=(e.ssrcs||[]).find((e=>"msid"===e.attribute));if(!r)throw new Error("a=ssrc line with msid information not found");const[i,s]=r.value.split(" "),n=r.id;let a;(e.ssrcGroups||[]).some((e=>{if("FID"!==e.semantics)return!1;const t=e.ssrcs.split(/\s+/);return Number(t[0])===n&&(a=Number(t[1]),!0)}));const o=e.ssrcs.find((e=>"cname"===e.attribute));if(!o)throw new Error("a=ssrc line with cname information not found");const c=o.value,d=[],p=[];for(let e=0;e<t;++e)d.push(n+e),a&&p.push(a+e);e.ssrcGroups=[],e.ssrcs=[],e.ssrcGroups.push({semantics:"SIM",ssrcs:d.join(" ")});for(let t=0;t<d.length;++t){const r=d[t];e.ssrcs.push({id:r,attribute:"cname",value:c}),e.ssrcs.push({id:r,attribute:"msid",value:`${i} ${s}`})}for(let t=0;t<p.length;++t){const r=d[t],n=p[t];e.ssrcs.push({id:n,attribute:"cname",value:c}),e.ssrcs.push({id:n,attribute:"msid",value:`${i} ${s}`}),e.ssrcGroups.push({semantics:"FID",ssrcs:`${r} ${n}`})}}},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.addLegacySimulcast=t.getRtpEncodings=void 0,t.getRtpEncodings=function({offerMediaObject:e,track:t}){let r;const i=new Set;for(const s of e.ssrcs||[])if("msid"===s.attribute&&s.value.split(" ")[1]===t.id){const e=s.id;i.add(e),r||(r=e)}if(0===i.size)throw new Error(`a=ssrc line with msid information not found [track.id:${t.id}]`);const s=new Map;for(const t of e.ssrcGroups||[]){if("FID"!==t.semantics)continue;let[e,r]=t.ssrcs.split(/\s+/);e=Number(e),r=Number(r),i.has(e)&&(i.delete(e),i.delete(r),s.set(e,r))}for(const e of i)s.set(e,null);const n=[];for(const[e,t]of s){const r={ssrc:e};t&&(r.rtx={ssrc:t}),n.push(r)}return n},t.addLegacySimulcast=function({offerMediaObject:e,track:t,numStreams:r}){if(r<=1)throw new TypeError("numStreams must be greater than 1");let i,s,n;if(!(e.ssrcs||[]).find((e=>"msid"===e.attribute&&e.value.split(" ")[1]===t.id&&(i=e.id,n=e.value.split(" ")[0],!0))))throw new Error(`a=ssrc line with msid information not found [track.id:${t.id}]`);(e.ssrcGroups||[]).some((e=>{if("FID"!==e.semantics)return!1;const t=e.ssrcs.split(/\s+/);return Number(t[0])===i&&(s=Number(t[1]),!0)}));const a=e.ssrcs.find((e=>"cname"===e.attribute&&e.id===i));if(!a)throw new Error(`a=ssrc line with cname information not found [track.id:${t.id}]`);const o=a.value,c=[],d=[];for(let e=0;e<r;++e)c.push(i+e),s&&d.push(s+e);e.ssrcGroups=e.ssrcGroups||[],e.ssrcs=e.ssrcs||[],e.ssrcGroups.push({semantics:"SIM",ssrcs:c.join(" ")});for(let r=0;r<c.length;++r){const i=c[r];e.ssrcs.push({id:i,attribute:"cname",value:o}),e.ssrcs.push({id:i,attribute:"msid",value:`${n} ${t.id}`})}for(let r=0;r<d.length;++r){const i=c[r],s=d[r];e.ssrcs.push({id:s,attribute:"cname",value:o}),e.ssrcs.push({id:s,attribute:"msid",value:`${n} ${t.id}`}),e.ssrcGroups.push({semantics:"FID",ssrcs:`${i} ${s}`})}}},function(e,t,r){var i,s="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),n={},a=0,o=0;function c(e){var t="";do{t=s[e%64]+t,e=Math.floor(e/64)}while(e>0);return t}function d(){var e=c(+new Date);return e!==i?(a=0,i=e):e+"."+c(a++)}for(;o<64;o++)n[s[o]]=o;d.encode=c,d.decode=function(e){var t=0;for(o=0;o<e.length;o++)t=64*t+n[e.charAt(o)];return t},e.exports=d},function(e,t,r){(function(i){t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const r="color: "+this.color;t.splice(1,0,r,"color: inherit");let i=0,s=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(i++,"%c"===e&&(s=i))})),t.splice(s,0,r)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&void 0!==i&&"env"in i&&(e=i.env.DEBUG),e},t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=r(38)(t);const{formatters:s}=e.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}).call(this,r(37))},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.parse=void 0;const i=new RegExp("^[LS]([1-9]\\d{0,1})T([1-9]\\d{0,1})");t.parse=function(e){const t=i.exec(e||"");return t?{spatialLayers:Number(t[1]),temporalLayers:Number(t[2])}:{spatialLayers:1,temporalLayers:1}}},function(e,t,r){var i,s="object"==typeof Reflect?Reflect:null,n=s&&"function"==typeof s.apply?s.apply:function(e,t,r){return Function.prototype.apply.call(e,t,r)};i=s&&"function"==typeof s.ownKeys?s.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(r,i){function s(r){e.removeListener(t,n),i(r)}function n(){"function"==typeof e.removeListener&&e.removeListener("error",s),r([].slice.call(arguments))}b(e,t,n,{once:!0}),"error"!==t&&function(e,t,r){"function"==typeof e.on&&b(e,"error",t,{once:!0})}(e,s)}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var c=10;function d(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function p(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function l(e,t,r,i){var s,n,a,o;if(d(r),void 0===(n=e._events)?(n=e._events=Object.create(null),e._eventsCount=0):(void 0!==n.newListener&&(e.emit("newListener",t,r.listener?r.listener:r),n=e._events),a=n[t]),void 0===a)a=n[t]=r,++e._eventsCount;else if("function"==typeof a?a=n[t]=i?[r,a]:[a,r]:i?a.unshift(r):a.push(r),(s=p(e))>0&&a.length>s&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,o=c,console&&console.warn&&console.warn(o)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(e,t,r){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},s=h.bind(i);return s.listener=r,i.wrapFn=s,s}function f(e,t,r){var i=e._events;if(void 0===i)return[];var s=i[t];return void 0===s?[]:"function"==typeof s?r?[s.listener||s]:[s]:r?function(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}(s):g(s,s.length)}function m(e){var t=this._events;if(void 0!==t){var r=t[e];if("function"==typeof r)return 1;if(void 0!==r)return r.length}return 0}function g(e,t){for(var r=new Array(t),i=0;i<t;++i)r[i]=e[i];return r}function b(e,t,r,i){if("function"==typeof e.on)i.once?e.once(t,r):e.on(t,r);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function s(n){i.once&&e.removeEventListener(t,s),r(n)}))}}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");c=e}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return p(this)},o.prototype.emit=function(e){for(var t=[],r=1;r<arguments.length;r++)t.push(arguments[r]);var i="error"===e,s=this._events;if(void 0!==s)i=i&&void 0===s.error;else if(!i)return!1;if(i){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var o=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw o.context=a,o}var c=s[e];if(void 0===c)return!1;if("function"==typeof c)n(c,this,t);else{var d=c.length,p=g(c,d);for(r=0;r<d;++r)n(p[r],this,t)}return!0},o.prototype.addListener=function(e,t){return l(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return l(this,e,t,!0)},o.prototype.once=function(e,t){return d(t),this.on(e,u(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return d(t),this.prependListener(e,u(this,e,t)),this},o.prototype.removeListener=function(e,t){var r,i,s,n,a;if(d(t),void 0===(i=this._events))return this;if(void 0===(r=i[e]))return this;if(r===t||r.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||t));else if("function"!=typeof r){for(s=-1,n=r.length-1;n>=0;n--)if(r[n]===t||r[n].listener===t){a=r[n].listener,s=n;break}if(s<0)return this;0===s?r.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(r,s),1===r.length&&(i[e]=r[0]),void 0!==i.removeListener&&this.emit("removeListener",e,a||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,r,i;if(void 0===(r=this._events))return this;if(void 0===r.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==r[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete r[e]),this;if(0===arguments.length){var s,n=Object.keys(r);for(i=0;i<n.length;++i)"removeListener"!==(s=n[i])&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=r[e]))this.removeListener(e,t);else if(void 0!==t)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this},o.prototype.listeners=function(e){return f(this,e,!0)},o.prototype.rawListeners=function(e){return f(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},o.prototype.listenerCount=m,o.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]}},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Device=t.detectDevice=void 0;const o=a(r(40)),c=r(0),d=r(13),p=r(7),l=n(r(1)),h=n(r(4)),u=r(24),f=r(43),m=r(47),g=r(48),b=r(49),v=r(50),w=r(51),y=r(52),_=r(53),S=r(55),R=new c.Logger("Device");function P(){if("object"==typeof navigator&&"ReactNative"===navigator.product)return"undefined"==typeof RTCPeerConnection?void R.warn("this._detectDevice() | unsupported ReactNative without RTCPeerConnection"):(R.debug("this._detectDevice() | ReactNative handler chosen"),"ReactNative");if("object"!=typeof navigator||"string"!=typeof navigator.userAgent)R.warn("this._detectDevice() | unknown device");else{const e=navigator.userAgent,t=o.default.getParser(e),r=t.getEngine();if(t.satisfies({chrome:">=74",chromium:">=74","microsoft edge":">=88"}))return"Chrome74";if(t.satisfies({chrome:">=70",chromium:">=70"}))return"Chrome70";if(t.satisfies({chrome:">=67",chromium:">=67"}))return"Chrome67";if(t.satisfies({chrome:">=55",chromium:">=55"}))return"Chrome55";if(t.satisfies({firefox:">=60"}))return"Firefox60";if(t.satisfies({ios:{OS:">=14.3",firefox:">=30.0"}}))return"Safari12";if(t.satisfies({safari:">=12.0"})&&"undefined"!=typeof RTCRtpTransceiver&&RTCRtpTransceiver.prototype.hasOwnProperty("currentDirection"))return"Safari12";if(t.satisfies({safari:">=11"}))return"Safari11";if(t.satisfies({"microsoft edge":">=11"})&&t.satisfies({"microsoft edge":"<=18"}))return"Edge11";if(r.name&&"blink"===r.name.toLowerCase()){const t=e.match(/(?:(?:Chrome|Chromium))[ /](\w+)/i);if(t){const e=Number(t[1]);return e>=74?"Chrome74":e>=70?"Chrome70":e>=67?"Chrome67":"Chrome55"}return"Chrome74"}R.warn("this._detectDevice() | browser not supported [name:%s, version:%s]",t.getBrowserName(),t.getBrowserVersion())}}t.detectDevice=P,t.Device=class{constructor({handlerName:e,handlerFactory:t,Handler:r}={}){if(this._loaded=!1,this._observer=new d.EnhancedEventEmitter,R.debug("constructor()"),r){if(R.warn("constructor() | Handler option is DEPRECATED, use handlerName or handlerFactory instead"),"string"!=typeof r)throw new TypeError("non string Handler option no longer supported, use handlerFactory instead");e=r}if(e&&t)throw new TypeError("just one of handlerName or handlerInterface can be given");if(t)this._handlerFactory=t;else{if(e)R.debug("constructor() | handler given: %s",e);else{if(!(e=P()))throw new p.UnsupportedError("device not supported");R.debug("constructor() | detected handler: %s",e)}switch(e){case"Chrome74":this._handlerFactory=f.Chrome74.createFactory();break;case"Chrome70":this._handlerFactory=m.Chrome70.createFactory();break;case"Chrome67":this._handlerFactory=g.Chrome67.createFactory();break;case"Chrome55":this._handlerFactory=b.Chrome55.createFactory();break;case"Firefox60":this._handlerFactory=v.Firefox60.createFactory();break;case"Safari12":this._handlerFactory=w.Safari12.createFactory();break;case"Safari11":this._handlerFactory=y.Safari11.createFactory();break;case"Edge11":this._handlerFactory=_.Edge11.createFactory();break;case"ReactNative":this._handlerFactory=S.ReactNative.createFactory();break;default:throw new TypeError(`unknown handlerName "${e}"`)}}const i=this._handlerFactory();this._handlerName=i.name,i.close(),this._extendedRtpCapabilities=void 0,this._recvRtpCapabilities=void 0,this._canProduceByKind={audio:!1,video:!1},this._sctpCapabilities=void 0}get handlerName(){return this._handlerName}get loaded(){return this._loaded}get rtpCapabilities(){if(!this._loaded)throw new p.InvalidStateError("not loaded");return this._recvRtpCapabilities}get sctpCapabilities(){if(!this._loaded)throw new p.InvalidStateError("not loaded");return this._sctpCapabilities}get observer(){return this._observer}async load({routerRtpCapabilities:e}){let t;R.debug("load() [routerRtpCapabilities:%o]",e),e=l.clone(e,void 0);try{if(this._loaded)throw new p.InvalidStateError("already loaded");h.validateRtpCapabilities(e),t=this._handlerFactory();const r=await t.getNativeRtpCapabilities();R.debug("load() | got native RTP capabilities:%o",r),h.validateRtpCapabilities(r),this._extendedRtpCapabilities=h.getExtendedRtpCapabilities(r,e),R.debug("load() | got extended RTP capabilities:%o",this._extendedRtpCapabilities),this._canProduceByKind.audio=h.canSend("audio",this._extendedRtpCapabilities),this._canProduceByKind.video=h.canSend("video",this._extendedRtpCapabilities),this._recvRtpCapabilities=h.getRecvRtpCapabilities(this._extendedRtpCapabilities),h.validateRtpCapabilities(this._recvRtpCapabilities),R.debug("load() | got receiving RTP capabilities:%o",this._recvRtpCapabilities),this._sctpCapabilities=await t.getNativeSctpCapabilities(),R.debug("load() | got native SCTP capabilities:%o",this._sctpCapabilities),h.validateSctpCapabilities(this._sctpCapabilities),R.debug("load() succeeded"),this._loaded=!0,t.close()}catch(e){throw t&&t.close(),e}}canProduce(e){if(!this._loaded)throw new p.InvalidStateError("not loaded");if("audio"!==e&&"video"!==e)throw new TypeError(`invalid kind "${e}"`);return this._canProduceByKind[e]}createSendTransport({id:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,appData:d={}}){return R.debug("createSendTransport()"),this._createTransport({direction:"send",id:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,appData:d})}createRecvTransport({id:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,appData:d={}}){return R.debug("createRecvTransport()"),this._createTransport({direction:"recv",id:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,appData:d})}_createTransport({direction:e,id:t,iceParameters:r,iceCandidates:i,dtlsParameters:s,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,proprietaryConstraints:d,appData:l={}}){if(!this._loaded)throw new p.InvalidStateError("not loaded");if("string"!=typeof t)throw new TypeError("missing id");if("object"!=typeof r)throw new TypeError("missing iceParameters");if(!Array.isArray(i))throw new TypeError("missing iceCandidates");if("object"!=typeof s)throw new TypeError("missing dtlsParameters");if(n&&"object"!=typeof n)throw new TypeError("wrong sctpParameters");if(l&&"object"!=typeof l)throw new TypeError("if given, appData must be an object");const h=new u.Transport({direction:e,id:t,iceParameters:r,iceCandidates:i,dtlsParameters:s,sctpParameters:n,iceServers:a,iceTransportPolicy:o,additionalSettings:c,proprietaryConstraints:d,appData:l,handlerFactory:this._handlerFactory,extendedRtpCapabilities:this._extendedRtpCapabilities,canProduceByKind:this._canProduceByKind});return this._observer.safeEmit("newtransport",h),h}}},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Transport=void 0;const a=r(42),o=r(0),c=r(13),d=r(7),p=n(r(1)),l=n(r(4)),h=r(25),u=r(26),f=r(27),m=r(28);class g{constructor(e){this.consumerOptions=e,this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}const b=new o.Logger("Transport");class v extends c.EnhancedEventEmitter{constructor({direction:e,id:t,iceParameters:r,iceCandidates:i,dtlsParameters:s,sctpParameters:n,iceServers:o,iceTransportPolicy:l,additionalSettings:h,proprietaryConstraints:u,appData:f,handlerFactory:m,extendedRtpCapabilities:g,canProduceByKind:v}){super(),this._closed=!1,this._connectionState="new",this._producers=new Map,this._consumers=new Map,this._dataProducers=new Map,this._dataConsumers=new Map,this._probatorConsumerCreated=!1,this._awaitQueue=new a.AwaitQueue({ClosedErrorClass:d.InvalidStateError}),this._pendingConsumerTasks=[],this._consumerCreationInProgress=!1,this._pendingPauseConsumers=new Map,this._consumerPauseInProgress=!1,this._pendingResumeConsumers=new Map,this._consumerResumeInProgress=!1,this._observer=new c.EnhancedEventEmitter,b.debug("constructor() [id:%s, direction:%s]",t,e),this._id=t,this._direction=e,this._extendedRtpCapabilities=g,this._canProduceByKind=v,this._maxSctpMessageSize=n?n.maxMessageSize:null,delete(h=p.clone(h,{})).iceServers,delete h.iceTransportPolicy,delete h.bundlePolicy,delete h.rtcpMuxPolicy,delete h.sdpSemantics,this._handler=m(),this._handler.run({direction:e,iceParameters:r,iceCandidates:i,dtlsParameters:s,sctpParameters:n,iceServers:o,iceTransportPolicy:l,additionalSettings:h,proprietaryConstraints:u,extendedRtpCapabilities:g}),this._appData=f,this._handleHandler()}get id(){return this._id}get closed(){return this._closed}get direction(){return this._direction}get handler(){return this._handler}get connectionState(){return this._connectionState}get appData(){return this._appData}set appData(e){throw new Error("cannot override appData object")}get observer(){return this._observer}close(){if(!this._closed){b.debug("close()"),this._closed=!0,this._awaitQueue.close(),this._handler.close();for(const e of this._producers.values())e.transportClosed();this._producers.clear();for(const e of this._consumers.values())e.transportClosed();this._consumers.clear();for(const e of this._dataProducers.values())e.transportClosed();this._dataProducers.clear();for(const e of this._dataConsumers.values())e.transportClosed();this._dataConsumers.clear(),this._observer.safeEmit("close")}}async getStats(){if(this._closed)throw new d.InvalidStateError("closed");return this._handler.getTransportStats()}async restartIce({iceParameters:e}){if(b.debug("restartIce()"),this._closed)throw new d.InvalidStateError("closed");if(!e)throw new TypeError("missing iceParameters");return this._awaitQueue.push((async()=>this._handler.restartIce(e)),"transport.restartIce()")}async updateIceServers({iceServers:e}={}){if(b.debug("updateIceServers()"),this._closed)throw new d.InvalidStateError("closed");if(!Array.isArray(e))throw new TypeError("missing iceServers");return this._awaitQueue.push((async()=>this._handler.updateIceServers(e)),"transport.updateIceServers()")}async produce({track:e,encodings:t,codecOptions:r,codec:i,stopTracks:s=!0,disableTrackOnPause:n=!0,zeroRtpOnPause:a=!1,appData:o={}}={}){if(b.debug("produce() [track:%o]",e),!e)throw new TypeError("missing track");if("send"!==this._direction)throw new d.UnsupportedError("not a sending Transport");if(!this._canProduceByKind[e.kind])throw new d.UnsupportedError("cannot produce "+e.kind);if("ended"===e.readyState)throw new d.InvalidStateError("track ended");if(0===this.listenerCount("connect")&&"new"===this._connectionState)throw new TypeError('no "connect" listener set into this transport');if(0===this.listenerCount("produce"))throw new TypeError('no "produce" listener set into this transport');if(o&&"object"!=typeof o)throw new TypeError("if given, appData must be an object");return this._awaitQueue.push((async()=>{let c;if(t&&!Array.isArray(t))throw TypeError("encodings must be an array");t&&0===t.length?c=void 0:t&&(c=t.map((e=>{const t={active:!0};return!1===e.active&&(t.active=!1),"boolean"==typeof e.dtx&&(t.dtx=e.dtx),"string"==typeof e.scalabilityMode&&(t.scalabilityMode=e.scalabilityMode),"number"==typeof e.scaleResolutionDownBy&&(t.scaleResolutionDownBy=e.scaleResolutionDownBy),"number"==typeof e.maxBitrate&&(t.maxBitrate=e.maxBitrate),"number"==typeof e.maxFramerate&&(t.maxFramerate=e.maxFramerate),"boolean"==typeof e.adaptivePtime&&(t.adaptivePtime=e.adaptivePtime),"string"==typeof e.priority&&(t.priority=e.priority),"string"==typeof e.networkPriority&&(t.networkPriority=e.networkPriority),t})));const{localId:d,rtpParameters:p,rtpSender:u}=await this._handler.send({track:e,encodings:c,codecOptions:r,codec:i});try{l.validateRtpParameters(p);const{id:t}=await this.safeEmitAsPromise("produce",{kind:e.kind,rtpParameters:p,appData:o}),r=new h.Producer({id:t,localId:d,rtpSender:u,track:e,rtpParameters:p,stopTracks:s,disableTrackOnPause:n,zeroRtpOnPause:a,appData:o});return this._producers.set(r.id,r),this._handleProducer(r),this._observer.safeEmit("newproducer",r),r}catch(e){throw this._handler.stopSending(d).catch((()=>{})),e}}),"transport.produce()").catch((t=>{if(s)try{e.stop()}catch(e){}throw t}))}async consume({id:e,producerId:t,kind:r,rtpParameters:i,appData:s={}}){if(b.debug("consume()"),i=p.clone(i,void 0),this._closed)throw new d.InvalidStateError("closed");if("recv"!==this._direction)throw new d.UnsupportedError("not a receiving Transport");if("string"!=typeof e)throw new TypeError("missing id");if("string"!=typeof t)throw new TypeError("missing producerId");if("audio"!==r&&"video"!==r)throw new TypeError(`invalid kind '${r}'`);if(0===this.listenerCount("connect")&&"new"===this._connectionState)throw new TypeError('no "connect" listener set into this transport');if(s&&"object"!=typeof s)throw new TypeError("if given, appData must be an object");if(!l.canReceive(i,this._extendedRtpCapabilities))throw new d.UnsupportedError("cannot consume this Producer");const n=new g({id:e,producerId:t,kind:r,rtpParameters:i,appData:s});return this._pendingConsumerTasks.push(n),!1===this._consumerCreationInProgress&&this._createPendingConsumers(),n.promise}async produceData({ordered:e=!0,maxPacketLifeTime:t,maxRetransmits:r,label:i="",protocol:s="",appData:n={}}={}){if(b.debug("produceData()"),"send"!==this._direction)throw new d.UnsupportedError("not a sending Transport");if(!this._maxSctpMessageSize)throw new d.UnsupportedError("SCTP not enabled by remote Transport");if(0===this.listenerCount("connect")&&"new"===this._connectionState)throw new TypeError('no "connect" listener set into this transport');if(0===this.listenerCount("producedata"))throw new TypeError('no "producedata" listener set into this transport');if(n&&"object"!=typeof n)throw new TypeError("if given, appData must be an object");return(t||r)&&(e=!1),this._awaitQueue.push((async()=>{const{dataChannel:a,sctpStreamParameters:o}=await this._handler.sendDataChannel({ordered:e,maxPacketLifeTime:t,maxRetransmits:r,label:i,protocol:s});l.validateSctpStreamParameters(o);const{id:c}=await this.safeEmitAsPromise("producedata",{sctpStreamParameters:o,label:i,protocol:s,appData:n}),d=new f.DataProducer({id:c,dataChannel:a,sctpStreamParameters:o,appData:n});return this._dataProducers.set(d.id,d),this._handleDataProducer(d),this._observer.safeEmit("newdataproducer",d),d}),"transport.produceData()")}async consumeData({id:e,dataProducerId:t,sctpStreamParameters:r,label:i="",protocol:s="",appData:n={}}){if(b.debug("consumeData()"),r=p.clone(r,void 0),this._closed)throw new d.InvalidStateError("closed");if("recv"!==this._direction)throw new d.UnsupportedError("not a receiving Transport");if(!this._maxSctpMessageSize)throw new d.UnsupportedError("SCTP not enabled by remote Transport");if("string"!=typeof e)throw new TypeError("missing id");if("string"!=typeof t)throw new TypeError("missing dataProducerId");if(0===this.listenerCount("connect")&&"new"===this._connectionState)throw new TypeError('no "connect" listener set into this transport');if(n&&"object"!=typeof n)throw new TypeError("if given, appData must be an object");return l.validateSctpStreamParameters(r),this._awaitQueue.push((async()=>{const{dataChannel:a}=await this._handler.receiveDataChannel({sctpStreamParameters:r,label:i,protocol:s}),o=new m.DataConsumer({id:e,dataProducerId:t,dataChannel:a,sctpStreamParameters:r,appData:n});return this._dataConsumers.set(o.id,o),this._handleDataConsumer(o),this._observer.safeEmit("newdataconsumer",o),o}),"transport.consumeData()")}async _createPendingConsumers(){this._awaitQueue.push((async()=>{this._consumerCreationInProgress=!0;const e=[...this._pendingConsumerTasks];let t;this._pendingConsumerTasks=[];const r=[];for(const t of e){const{id:e,kind:i,rtpParameters:s}=t.consumerOptions;r.push({trackId:e,kind:i,rtpParameters:s})}try{const i=await this._handler.receive(r);for(let r=0;r<i.length;r++){const s=e[r],n=i[r],{id:a,producerId:o,kind:c,rtpParameters:d,appData:p}=s.consumerOptions,{localId:l,rtpReceiver:h,track:f}=n,m=new u.Consumer({id:a,localId:l,producerId:o,rtpReceiver:h,track:f,rtpParameters:d,appData:p});this._consumers.set(m.id,m),this._handleConsumer(m),this._probatorConsumerCreated||t||"video"!==c||(t=m),this._observer.safeEmit("newconsumer",m),s.resolve(m)}}catch(t){for(const r of e)r.reject(t)}if(t)try{const e=l.generateProbatorRtpParameters(t.rtpParameters);await this._handler.receive([{trackId:"probator",kind:"video",rtpParameters:e}]),b.debug("_createPendingConsumers() | Consumer for RTP probation created"),this._probatorConsumerCreated=!0}catch(e){b.error("_createPendingConsumers() | failed to create Consumer for RTP probation:%o",e)}this._consumerCreationInProgress=!1}),"transport._createPendingConsumers()").then((()=>{this._pendingConsumerTasks.length>0&&this._createPendingConsumers()})).catch((()=>{}))}_pausePendingConsumers(){this._awaitQueue.push((async()=>{this._consumerPauseInProgress=!0;const e=Array.from(this._pendingPauseConsumers.values());this._pendingPauseConsumers.clear(),await this._handler.pauseReceiving(e.map((e=>e.localId)))}),"consumer @pause event").catch((()=>{})).finally((()=>{this._consumerPauseInProgress=!1,this._pendingPauseConsumers.size>0&&this._pausePendingConsumers()}))}_resumePendingConsumers(){this._awaitQueue.push((async()=>{this._consumerResumeInProgress=!0;const e=Array.from(this._pendingResumeConsumers.values());this._pendingResumeConsumers.clear(),await this._handler.resumeReceiving(e.map((e=>e.localId)))}),"consumer @resume event").catch((()=>{})).finally((()=>{this._consumerResumeInProgress=!1,this._pendingResumeConsumers.size>0&&this._resumePendingConsumers()}))}_handleHandler(){const e=this._handler;e.on("@connect",(({dtlsParameters:e},t,r)=>{this._closed?r(new d.InvalidStateError("closed")):this.safeEmit("connect",{dtlsParameters:e},t,r)})),e.on("@connectionstatechange",(e=>{e!==this._connectionState&&(b.debug("connection state changed to %s",e),this._connectionState=e,this._closed||this.safeEmit("connectionstatechange",e))}))}_handleProducer(e){e.on("@close",(()=>{this._producers.delete(e.id),this._closed||this._awaitQueue.push((async()=>this._handler.stopSending(e.localId)),"producer @close event").catch((e=>b.warn("producer.close() failed:%o",e)))})),e.on("@replacetrack",((t,r,i)=>{this._awaitQueue.push((async()=>this._handler.replaceTrack(e.localId,t)),"producer @replacetrack event").then(r).catch(i)})),e.on("@setmaxspatiallayer",((t,r,i)=>{this._awaitQueue.push((async()=>this._handler.setMaxSpatialLayer(e.localId,t)),"producer @setmaxspatiallayer event").then(r).catch(i)})),e.on("@setrtpencodingparameters",((t,r,i)=>{this._awaitQueue.push((async()=>this._handler.setRtpEncodingParameters(e.localId,t)),"producer @setrtpencodingparameters event").then(r).catch(i)})),e.on("@getstats",((t,r)=>{if(this._closed)return r(new d.InvalidStateError("closed"));this._handler.getSenderStats(e.localId).then(t).catch(r)}))}_handleConsumer(e){e.on("@close",(()=>{this._consumers.delete(e.id),this._pendingPauseConsumers.delete(e.id),this._pendingResumeConsumers.delete(e.id),this._closed||this._awaitQueue.push((async()=>this._handler.stopReceiving(e.localId)),"consumer @close event").catch((()=>{}))})),e.on("@pause",(()=>{this._pendingResumeConsumers.has(e.id)&&this._pendingResumeConsumers.delete(e.id),this._pendingPauseConsumers.set(e.id,e),!1===this._consumerPauseInProgress&&this._pausePendingConsumers()})),e.on("@resume",(()=>{this._pendingPauseConsumers.has(e.id)&&this._pendingPauseConsumers.delete(e.id),this._pendingResumeConsumers.set(e.id,e),!1===this._consumerResumeInProgress&&this._resumePendingConsumers()})),e.on("@getstats",((t,r)=>{if(this._closed)return r(new d.InvalidStateError("closed"));this._handler.getReceiverStats(e.localId).then(t).catch(r)}))}_handleDataProducer(e){e.on("@close",(()=>{this._dataProducers.delete(e.id)}))}_handleDataConsumer(e){e.on("@close",(()=>{this._dataConsumers.delete(e.id)}))}}t.Transport=v},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.Producer=void 0;const i=r(0),s=r(13),n=r(7),a=new i.Logger("Producer");class o extends s.EnhancedEventEmitter{constructor({id:e,localId:t,rtpSender:r,track:i,rtpParameters:n,stopTracks:o,disableTrackOnPause:c,zeroRtpOnPause:d,appData:p}){super(),this._closed=!1,this._observer=new s.EnhancedEventEmitter,a.debug("constructor()"),this._id=e,this._localId=t,this._rtpSender=r,this._track=i,this._kind=i.kind,this._rtpParameters=n,this._paused=!!c&&!i.enabled,this._maxSpatialLayer=void 0,this._stopTracks=o,this._disableTrackOnPause=c,this._zeroRtpOnPause=d,this._appData=p,this._onTrackEnded=this._onTrackEnded.bind(this),this._handleTrack()}get id(){return this._id}get localId(){return this._localId}get closed(){return this._closed}get kind(){return this._kind}get rtpSender(){return this._rtpSender}get track(){return this._track}get rtpParameters(){return this._rtpParameters}get paused(){return this._paused}get maxSpatialLayer(){return this._maxSpatialLayer}get appData(){return this._appData}set appData(e){throw new Error("cannot override appData object")}get observer(){return this._observer}close(){this._closed||(a.debug("close()"),this._closed=!0,this._destroyTrack(),this.emit("@close"),this._observer.safeEmit("close"))}transportClosed(){this._closed||(a.debug("transportClosed()"),this._closed=!0,this._destroyTrack(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}async getStats(){if(this._closed)throw new n.InvalidStateError("closed");return this.safeEmitAsPromise("@getstats")}pause(){a.debug("pause()"),this._closed?a.error("pause() | Producer closed"):(this._paused=!0,this._track&&this._disableTrackOnPause&&(this._track.enabled=!1),this._zeroRtpOnPause&&this.safeEmitAsPromise("@replacetrack",null).catch((()=>{})),this._observer.safeEmit("pause"))}resume(){a.debug("resume()"),this._closed?a.error("resume() | Producer closed"):(this._paused=!1,this._track&&this._disableTrackOnPause&&(this._track.enabled=!0),this._zeroRtpOnPause&&this.safeEmitAsPromise("@replacetrack",this._track).catch((()=>{})),this._observer.safeEmit("resume"))}async replaceTrack({track:e}){if(a.debug("replaceTrack() [track:%o]",e),this._closed){if(e&&this._stopTracks)try{e.stop()}catch(e){}throw new n.InvalidStateError("closed")}if(e&&"ended"===e.readyState)throw new n.InvalidStateError("track ended");e!==this._track?(this._zeroRtpOnPause&&this._paused||await this.safeEmitAsPromise("@replacetrack",e),this._destroyTrack(),this._track=e,this._track&&this._disableTrackOnPause&&(this._paused?this._paused&&(this._track.enabled=!1):this._track.enabled=!0),this._handleTrack()):a.debug("replaceTrack() | same track, ignored")}async setMaxSpatialLayer(e){if(this._closed)throw new n.InvalidStateError("closed");if("video"!==this._kind)throw new n.UnsupportedError("not a video Producer");if("number"!=typeof e)throw new TypeError("invalid spatialLayer");e!==this._maxSpatialLayer&&(await this.safeEmitAsPromise("@setmaxspatiallayer",e),this._maxSpatialLayer=e)}async setRtpEncodingParameters(e){if(this._closed)throw new n.InvalidStateError("closed");if("object"!=typeof e)throw new TypeError("invalid params");await this.safeEmitAsPromise("@setrtpencodingparameters",e)}_onTrackEnded(){a.debug('track "ended" event'),this.safeEmit("trackended"),this._observer.safeEmit("trackended")}_handleTrack(){this._track&&this._track.addEventListener("ended",this._onTrackEnded)}_destroyTrack(){if(this._track)try{this._track.removeEventListener("ended",this._onTrackEnded),this._stopTracks&&this._track.stop()}catch(e){}}}t.Producer=o},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.Consumer=void 0;const i=r(0),s=r(13),n=r(7),a=new i.Logger("Consumer");class o extends s.EnhancedEventEmitter{constructor({id:e,localId:t,producerId:r,rtpReceiver:i,track:n,rtpParameters:o,appData:c}){super(),this._closed=!1,this._observer=new s.EnhancedEventEmitter,a.debug("constructor()"),this._id=e,this._localId=t,this._producerId=r,this._rtpReceiver=i,this._track=n,this._rtpParameters=o,this._paused=!n.enabled,this._appData=c,this._onTrackEnded=this._onTrackEnded.bind(this),this._handleTrack()}get id(){return this._id}get localId(){return this._localId}get producerId(){return this._producerId}get closed(){return this._closed}get kind(){return this._track.kind}get rtpReceiver(){return this._rtpReceiver}get track(){return this._track}get rtpParameters(){return this._rtpParameters}get paused(){return this._paused}get appData(){return this._appData}set appData(e){throw new Error("cannot override appData object")}get observer(){return this._observer}close(){this._closed||(a.debug("close()"),this._closed=!0,this._destroyTrack(),this.emit("@close"),this._observer.safeEmit("close"))}transportClosed(){this._closed||(a.debug("transportClosed()"),this._closed=!0,this._destroyTrack(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}async getStats(){if(this._closed)throw new n.InvalidStateError("closed");return this.safeEmitAsPromise("@getstats")}pause(){a.debug("pause()"),this._closed?a.error("pause() | Consumer closed"):(this._paused=!0,this._track.enabled=!1,this.emit("@pause"),this._observer.safeEmit("pause"))}resume(){a.debug("resume()"),this._closed?a.error("resume() | Consumer closed"):(this._paused=!1,this._track.enabled=!0,this.emit("@resume"),this._observer.safeEmit("resume"))}_onTrackEnded(){a.debug('track "ended" event'),this.safeEmit("trackended"),this._observer.safeEmit("trackended")}_handleTrack(){this._track.addEventListener("ended",this._onTrackEnded)}_destroyTrack(){try{this._track.removeEventListener("ended",this._onTrackEnded),this._track.stop()}catch(e){}}}t.Consumer=o},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.DataProducer=void 0;const i=r(0),s=r(13),n=r(7),a=new i.Logger("DataProducer");class o extends s.EnhancedEventEmitter{constructor({id:e,dataChannel:t,sctpStreamParameters:r,appData:i}){super(),this._closed=!1,this._observer=new s.EnhancedEventEmitter,a.debug("constructor()"),this._id=e,this._dataChannel=t,this._sctpStreamParameters=r,this._appData=i,this._handleDataChannel()}get id(){return this._id}get closed(){return this._closed}get sctpStreamParameters(){return this._sctpStreamParameters}get readyState(){return this._dataChannel.readyState}get label(){return this._dataChannel.label}get protocol(){return this._dataChannel.protocol}get bufferedAmount(){return this._dataChannel.bufferedAmount}get bufferedAmountLowThreshold(){return this._dataChannel.bufferedAmountLowThreshold}set bufferedAmountLowThreshold(e){this._dataChannel.bufferedAmountLowThreshold=e}get appData(){return this._appData}set appData(e){throw new Error("cannot override appData object")}get observer(){return this._observer}close(){this._closed||(a.debug("close()"),this._closed=!0,this._dataChannel.close(),this.emit("@close"),this._observer.safeEmit("close"))}transportClosed(){this._closed||(a.debug("transportClosed()"),this._closed=!0,this._dataChannel.close(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}send(e){if(a.debug("send()"),this._closed)throw new n.InvalidStateError("closed");this._dataChannel.send(e)}_handleDataChannel(){this._dataChannel.addEventListener("open",(()=>{this._closed||(a.debug('DataChannel "open" event'),this.safeEmit("open"))})),this._dataChannel.addEventListener("error",(e=>{if(this._closed)return;let{error:t}=e;t||(t=new Error("unknown DataChannel error")),"sctp-failure"===t.errorDetail?a.error("DataChannel SCTP error [sctpCauseCode:%s]: %s",t.sctpCauseCode,t.message):a.error('DataChannel "error" event: %o',t),this.safeEmit("error",t)})),this._dataChannel.addEventListener("close",(()=>{this._closed||(a.warn('DataChannel "close" event'),this._closed=!0,this.emit("@close"),this.safeEmit("close"))})),this._dataChannel.addEventListener("message",(()=>{this._closed||a.warn('DataChannel "message" event in a DataProducer, message discarded')})),this._dataChannel.addEventListener("bufferedamountlow",(()=>{this._closed||this.safeEmit("bufferedamountlow")}))}}t.DataProducer=o},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.DataConsumer=void 0;const i=r(0),s=r(13),n=new i.Logger("DataConsumer");class a extends s.EnhancedEventEmitter{constructor({id:e,dataProducerId:t,dataChannel:r,sctpStreamParameters:i,appData:a}){super(),this._closed=!1,this._observer=new s.EnhancedEventEmitter,n.debug("constructor()"),this._id=e,this._dataProducerId=t,this._dataChannel=r,this._sctpStreamParameters=i,this._appData=a,this._handleDataChannel()}get id(){return this._id}get dataProducerId(){return this._dataProducerId}get closed(){return this._closed}get sctpStreamParameters(){return this._sctpStreamParameters}get readyState(){return this._dataChannel.readyState}get label(){return this._dataChannel.label}get protocol(){return this._dataChannel.protocol}get binaryType(){return this._dataChannel.binaryType}set binaryType(e){this._dataChannel.binaryType=e}get appData(){return this._appData}set appData(e){throw new Error("cannot override appData object")}get observer(){return this._observer}close(){this._closed||(n.debug("close()"),this._closed=!0,this._dataChannel.close(),this.emit("@close"),this._observer.safeEmit("close"))}transportClosed(){this._closed||(n.debug("transportClosed()"),this._closed=!0,this._dataChannel.close(),this.safeEmit("transportclose"),this._observer.safeEmit("close"))}_handleDataChannel(){this._dataChannel.addEventListener("open",(()=>{this._closed||(n.debug('DataChannel "open" event'),this.safeEmit("open"))})),this._dataChannel.addEventListener("error",(e=>{if(this._closed)return;let{error:t}=e;t||(t=new Error("unknown DataChannel error")),"sctp-failure"===t.errorDetail?n.error("DataChannel SCTP error [sctpCauseCode:%s]: %s",t.sctpCauseCode,t.message):n.error('DataChannel "error" event: %o',t),this.safeEmit("error",t)})),this._dataChannel.addEventListener("close",(()=>{this._closed||(n.warn('DataChannel "close" event'),this._closed=!0,this.emit("@close"),this.safeEmit("close"))})),this._dataChannel.addEventListener("message",(e=>{this._closed||this.safeEmit("message",e.data)}))}}t.DataConsumer=a},function(e,t){var r=e.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(e){return null!=e.address?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(e){return null!=e.subtype?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return null!=e.sessionConfig?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=null!=e.raddr?" raddr %s rport %d":"%v%v",t+=null!=e.tcptype?" tcptype %s":"%v",null!=e.generation&&(t+=" generation %d"),(t+=null!=e["network-id"]?" network-id %d":"%v")+(null!=e["network-cost"]?" network-cost %d":"%v")}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(e){var t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(e){return null!=e.maxMessageSize?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(e){return e.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(e){return"imageattr:%s %s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(e){return"simulcast:%s %s"+(e.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(e){return"ts-refclk:%s"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=null!=e.id?"id=%s %s":"%v%s",t+=null!=e.mediaClockValue?"=%s":"",(t+=null!=e.rateNumerator?" rate=%s":"")+(null!=e.rateDenominator?"/%s":"")}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(r).forEach((function(e){r[e].forEach((function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")}))}))},function(e,t){try{e.exports="undefined"!=typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(t){e.exports=!1}},function(e,t,r){(function(e){r.d(t,"a",(function(){return h}));var i=r(14),s=r(15),n=r.n(s),a=r(19),o=r.n(a),c=r(5),d=r(6),p=r(10);const l="undefined"!=typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase();class h extends i.a{constructor(e){super(e),this.supportsBinary=!e.forceBase64}get name(){return"websocket"}doOpen(){if(!this.check())return;const e=this.uri(),t=this.opts.protocols,r=l?{}:Object(c.b)(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=d.d&&!l?t?new d.a(e,t):new d.a(e):new d.a(e,t,r)}catch(e){return this.emit("error",e)}this.ws.binaryType=this.socket.binaryType||d.b,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=this.onClose.bind(this),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(t){this.writable=!1;for(let r=0;r<t.length;r++){const i=t[r],s=r===t.length-1;Object(p.c)(i,this.supportsBinary,(t=>{const r={};!d.d&&(i.options&&(r.compress=i.options.compress),this.opts.perMessageDeflate)&&("string"==typeof t?e.byteLength(t):t.length)<this.opts.perMessageDeflate.threshold&&(r.compress=!1);try{d.d?this.ws.send(t):this.ws.send(t,r)}catch(e){}s&&Object(d.c)((()=>{this.writable=!0,this.emit("drain")}),this.setTimeoutFn)}))}}doClose(){void 0!==this.ws&&(this.ws.close(),this.ws=null)}uri(){let e=this.query||{};const t=this.opts.secure?"wss":"ws";let r="";this.opts.port&&("wss"===t&&443!==Number(this.opts.port)||"ws"===t&&80!==Number(this.opts.port))&&(r=":"+this.opts.port),this.opts.timestampRequests&&(e[this.opts.timestampParam]=o()()),this.supportsBinary||(e.b64=1);const i=n.a.encode(e);return t+"://"+(-1!==this.opts.hostname.indexOf(":")?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(i.length?"?"+i:"")}check(){return!(!d.a||"__initialize"in d.a&&this.name===h.prototype.name)}}}).call(this,r(61).Buffer)},function(e,t){function r(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}e.exports=r,r.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),r=Math.floor(t*this.jitter*e);e=0==(1&Math.floor(10*t))?e-r:e+r}return 0|Math.min(e,this.max)},r.prototype.reset=function(){this.attempts=0},r.prototype.setMin=function(e){this.ms=e},r.prototype.setMax=function(e){this.max=e},r.prototype.setJitter=function(e){this.jitter=e}},function(e,t,r){const i=r(34);e.exports=new i},function(e,t,r){const{EventEmitter:i}=r(22),s=r(35);e.exports=class{constructor(){this.media=new s,this.socket=void 0,this.observer=new i,this.results={},this.detecting={face:!1,smile:!1,head_left:!1,head_right:!1},this.mode=null,this.options={}}async createSession(e,t={}){return this.options=t,new Promise(((r,i)=>{this.media.connect(e,t).then((async e=>{this.socket=e,this.media.createSession().then((e=>r(e))).catch(i),this.socket.on("detect",(e=>{this.results=this.formatResults(e)})),this.media.on("error",(e=>this.observer.emit("error",e))),this.media.on("opened",(()=>this.observer.emit("opened",!0))),this.socket.on("issue",(e=>this.observer.emit("error",e))),this.socket.on("restart",((e,t)=>{this.media.engineTransport.restartIce({iceParameters:e}),t()}))})).catch((e=>{if("Authentication"===e.message)return i({code:"E01",message:"Authentication"});i(e)}))}))}async process(e,t=8e3){return this.detecting[e]=!0,this.socket.emit("setDetect",!0),new Promise((r=>{const i=setInterval((async()=>{"1"===this.results[e]&&(this.detecting[e]=!1,r(!0),this.socket.emit("setDetect",!1),clearInterval(i))}));setTimeout((()=>{this.detecting[e]&&(this.socket.emit("setDetect",!1),this.detecting[e]=!1,clearInterval(i),r(!1))}),t)}))}async detect(e,t={},r=!1){return new Promise(((i,s)=>{this.process(e,t.timeout||8e3).then((async n=>{if(n)i();else{if(!r&&t.retry)return t.onRepeat&&t.onRepeat(),this.detect(e,t,!0).then(i).catch(s);s()}}))}))}async close(){return new Promise(((e,t)=>{this.media.close().then((()=>e())).catch((e=>t(e)))}))}formatResults(e){return{face:e[0],smile:e[1],head_right:e[2],head_left:e[3]}}}},function(e,t,r){const i=r(36),s=r(59),{io:n}=r(66);e.exports=class{constructor(){this.socket=null,this.producerTransport=[],this.device=null,this.producers=new Map,this.producerLabel=new Map,this.eventListeners=new Map,this.engineTransport={},this.mode=null,["started","opened","closed","error"].forEach(function(e){this.eventListeners.set(e,[])}.bind(this))}async connect(e,t={}){return t.videoElement&&(this.localVideoEl=t.videoElement),this.mediaConstraints={},t.mediaConstraints&&(this.mediaConstraints=t.mediaConstraints),new Promise((async(r,i)=>{t.transports=["websocket"],this.socket=n(e,{...t,reconnection:!0,reconnectionDelay:1e3,reconnectionDelayMax:5e3,reconnectionAttempts:5}),this.socket.request=async(e,t={})=>new Promise(((r,i)=>{this.socket.emit(e,t,(e=>{e&&e.error?i(e.error):r(e)}))})),this.socket.on("connect",(async()=>{r(this.socket)})),this.socket.on("connect_error",(e=>{i(e),this.socket.disconnect()})),this.socket.on("error",(e=>{i(e),this.socket.disconnect()})),window.onbeforeunload=()=>{this.socket&&this.socket.disconnect()}}))}async createSession(){return new Promise(((e,t)=>{this.socket.request("createSession").then((async r=>{try{const t=await this.socket.request("getRouterRtpCapabilities"),i=await this.loadDevice(t.rtpCapabilities);this.device=i,await this.getUserMedia(t.mediaConstraints),this.event("opened"),await this.createAndProducer(),this.initSockets(),await this.socket.request("start"),e(r)}catch(e){t(e)}})).catch(t)}))}async createAndProducer(e=!1){const t=await this.createTransports();await this.produce(t);const r=await this.createTransports(!0);await this.produce(r,!0)}async loadDevice(e){let t;try{t=new i.Device}catch(e){throw new Error(e)}return(()=>{const e=new s,{name:t}=e.getBrowser();return"Mobile Safari"===t})()&&(e.headerExtensions=e.headerExtensions.filter((e=>"urn:3gpp:video-orientation"!==e.uri))),await t.load({routerRtpCapabilities:e}),t}initSockets(){}async createTransports(e){const t=await this.socket.request("createWebRtcTransport",{forceTcp:!1,rtpCapabilities:this.device.rtpCapabilities,isSecond:e});if(t.error)throw this.handleError(t.error),new Error(t.error);const r=this.device.createSendTransport(t);return r.on("connect",(async({dtlsParameters:r},i,s)=>{this.socket.request("connectTransport",{dtlsParameters:r,transport_id:t.id,isSecond:e}).then(i).catch(s)})),r.on("produce",(async({kind:t,rtpParameters:i},s,n)=>{try{const{producer_id:n}=await this.socket.request("produce",{producerTransportId:r.id,kind:t,rtpParameters:i,isSecond:e});s({id:n})}catch(e){n(e)}})),r.on("connectionstatechange",(e=>{"failed"===e&&r.close()})),e&&(this.engineTransport=r),this.producerTransport.push(r),r}async initProducerTransport(e){return e}async produce(e,t){if(!this.device.canProduce("video")){const e="Cannot produce video.";throw this.handleError(e),new Error(e)}try{const r=this.stream.getVideoTracks()[0],i=this.stream.getAudioTracks()[0],s=await e.produce({track:r});if(this.producers.set(s.id,s),this.producerEvent(s),!t&&this.mediaConstraints.audio){const t=await e.produce({track:i});this.producers.set(t.id,t),this.producerEvent(t)}}catch(e){throw this.handleError(e),new Error(e)}}producerEvent(e){e.on("trackended",(()=>{this.closeProducer(e)})),e.on("transportclose",(()=>{this.producers.delete(e.id)})),e.on("close",(()=>{this.producers.delete(e.id)}))}async getUserMedia(e){return this.stream=await navigator.mediaDevices.getUserMedia({audio:e.audio,video:{...this.mediaConstraints.video,...e.video}}),this.localVideoEl.srcObject=this.stream,this.stream}closeProducer(e){this.socket.emit("producerClosed",{producerId:e.id}),this.producers.get(e.id).close(),this.producers.delete(e.id)}async close(){return new Promise((async(e,t)=>{if(this._isOpen=!1,this.producerTransport)for(const e of this.producerTransport)e.close();try{await this.socket.request("complete"),e(),this.socket&&(this.socket.off("disconnect"),this.socket.disconnect()),this.event("closed")}catch(e){console.error(e),t(e)}}))}event(e,t={}){this.eventListeners.has(e)&&this.eventListeners.get(e).forEach((e=>e(t)))}on(e,t){t&&this.eventListeners.get(e).push(t)}handleError(e){console.error(e),this.event("error",e)}}},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.debug=t.parseScalabilityMode=t.detectDevice=t.Device=t.version=t.types=void 0;const o=a(r(20));t.debug=o.default;const c=r(23);Object.defineProperty(t,"Device",{enumerable:!0,get:function(){return c.Device}}),Object.defineProperty(t,"detectDevice",{enumerable:!0,get:function(){return c.detectDevice}});const d=n(r(56));t.types=d,t.version="3.6.51";var p=r(21);Object.defineProperty(t,"parseScalabilityMode",{enumerable:!0,get:function(){return p.parse}})},function(e,t){var r,i,s=e.exports={};function n(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function o(e){if(r===setTimeout)return setTimeout(e,0);if((r===n||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:n}catch(e){r=n}try{i="function"==typeof clearTimeout?clearTimeout:a}catch(e){i=a}}();var c,d=[],p=!1,l=-1;function h(){p&&c&&(p=!1,c.length?d=c.concat(d):l=-1,d.length&&u())}function u(){if(!p){var e=o(h);p=!0;for(var t=d.length;t;){for(c=d,d=[];++l<t;)c&&c[l].run();l=-1,t=d.length}c=null,p=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===a||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function m(){}s.nextTick=function(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];d.push(new f(e,t)),1!==d.length||p||o(u)},f.prototype.run=function(){this.fun.apply(null,this.array)},s.title="browser",s.browser=!0,s.env={},s.argv=[],s.version="",s.versions={},s.on=m,s.addListener=m,s.once=m,s.off=m,s.removeListener=m,s.removeAllListeners=m,s.emit=m,s.prependListener=m,s.prependOnceListener=m,s.listeners=function(e){return[]},s.binding=function(e){throw new Error("process.binding is not supported")},s.cwd=function(){return"/"},s.chdir=function(e){throw new Error("process.chdir is not supported")},s.umask=function(){return 0}},function(e,t,r){e.exports=function(e){function t(e){let r,s,n,a=null;function o(...e){if(!o.enabled)return;const i=o,s=Number(new Date),n=s-(r||s);i.diff=n,i.prev=r,i.curr=s,r=s,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let a=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((r,s)=>{if("%%"===r)return"%";a++;const n=t.formatters[s];if("function"==typeof n){const t=e[a];r=n.call(i,t),e.splice(a,1),a--}return r})),t.formatArgs.call(i,e),(i.log||t.log).apply(i,e)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=i,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==a?a:(s!==t.namespaces&&(s=t.namespaces,n=t.enabled(e)),n),set:e=>{a=e}}),"function"==typeof t.init&&t.init(o),o}function i(e,r){const i=t(this.namespace+(void 0===r?":":r)+e);return i.log=this.log,i}function s(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names.map(s),...t.skips.map(s).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let r;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const i=("string"==typeof e?e:"").split(/[\s,]+/),s=i.length;for(r=0;r<s;r++)i[r]&&("-"===(e=i[r].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.slice(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let r,i;for(r=0,i=t.skips.length;r<i;r++)if(t.skips[r].test(e))return!1;for(r=0,i=t.names.length;r<i;r++)if(t.names[r].test(e))return!0;return!1},t.humanize=r(39),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((r=>{t[r]=e[r]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let r=0;for(let t=0;t<e.length;t++)r=(r<<5)-r+e.charCodeAt(t),r|=0;return t.colors[Math.abs(r)%t.colors.length]},t.enable(t.load()),t}},function(e,t){var r=1e3,i=6e4,s=60*i,n=24*s;function a(e,t,r,i){var s=t>=1.5*r;return Math.round(e/r)+" "+i+(s?"s":"")}e.exports=function(e,t){t=t||{};var o=typeof e;if("string"===o&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var a=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return 6048e5*a;case"days":case"day":case"d":return a*n;case"hours":case"hour":case"hrs":case"hr":case"h":return a*s;case"minutes":case"minute":case"mins":case"min":case"m":return a*i;case"seconds":case"second":case"secs":case"sec":case"s":return a*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(e);if("number"===o&&isFinite(e))return t.long?function(e){var t=Math.abs(e);return t>=n?a(e,t,n,"day"):t>=s?a(e,t,s,"hour"):t>=i?a(e,t,i,"minute"):t>=r?a(e,t,r,"second"):e+" ms"}(e):function(e){var t=Math.abs(e);return t>=n?Math.round(e/n)+"d":t>=s?Math.round(e/s)+"h":t>=i?Math.round(e/i)+"m":t>=r?Math.round(e/r)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t,r){e.exports=function(e){var t={};function r(i){if(t[i])return t[i].exports;var s=t[i]={i,l:!1,exports:{}};return e[i].call(s.exports,s,s.exports,r),s.l=!0,s.exports}return r.m=e,r.c=t,r.d=function(e,t,i){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)r.d(i,s,function(t){return e[t]}.bind(null,s));return i},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=90)}({17:function(e,t,r){t.__esModule=!0,t.default=void 0;var i=r(18),s=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||""},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||""},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(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}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return 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}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map((function(e){return 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},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,r,i){void 0===i&&(i=!1);var s=e.getVersionPrecision(t),n=e.getVersionPrecision(r),a=Math.max(s,n),o=0,c=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),i=t+new Array(r+1).join(".0");return e.map(i.split("."),(function(e){return new Array(20-e.length).join("0")+e})).reverse()}));for(i&&(o=a-Math.min(s,n)),a-=1;a>=o;){if(c[0][a]>c[1][a])return 1;if(c[0][a]===c[1][a]){if(a===o)return 0;a-=1}else if(c[0][a]<c[1][a])return-1}},e.map=function(e,t){var r,i=[];if(Array.prototype.map)return Array.prototype.map.call(e,t);for(r=0;r<e.length;r+=1)i.push(t(e[r]));return i},e.find=function(e,t){var r,i;if(Array.prototype.find)return Array.prototype.find.call(e,t);for(r=0,i=e.length;r<i;r+=1){var s=e[r];if(t(s,r))return s}},e.assign=function(e){for(var t,r,i=e,s=arguments.length,n=new Array(s>1?s-1:0),a=1;a<s;a++)n[a-1]=arguments[a];if(Object.assign)return Object.assign.apply(Object,[e].concat(n));var o=function(){var e=n[t];"object"==typeof e&&null!==e&&Object.keys(e).forEach((function(t){i[t]=e[t]}))};for(t=0,r=n.length;t<r;t+=1)o();return e},e.getBrowserAlias=function(e){return i.BROWSER_ALIASES_MAP[e]},e.getBrowserTypeByAlias=function(e){return i.BROWSER_MAP[e]||""},e}();t.default=s,e.exports=t.default},18:function(e,t,r){t.__esModule=!0,t.ENGINE_MAP=t.OS_MAP=t.PLATFORMS_MAP=t.BROWSER_MAP=t.BROWSER_ALIASES_MAP=void 0,t.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"},t.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"},t.PLATFORMS_MAP={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},t.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"},t.ENGINE_MAP={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"}},90:function(e,t,r){t.__esModule=!0,t.default=void 0;var i,s=(i=r(91))&&i.__esModule?i:{default:i},n=r(18),a=function(){function e(){}var t;return e.getParser=function(e,t){if(void 0===t&&(t=!1),"string"!=typeof e)throw new Error("UserAgent should be a string");return new s.default(e,t)},e.parse=function(e){return new s.default(e).getResult()},(t=[{key:"BROWSER_MAP",get:function(){return n.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return n.ENGINE_MAP}},{key:"OS_MAP",get:function(){return n.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return n.PLATFORMS_MAP}}])&&function(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}(e,t),e}();t.default=a,e.exports=t.default},91:function(e,t,r){t.__esModule=!0,t.default=void 0;var i=c(r(92)),s=c(r(93)),n=c(r(94)),a=c(r(95)),o=c(r(17));function c(e){return e&&e.__esModule?e:{default:e}}var d=function(){function e(e,t){if(void 0===t&&(t=!1),null==e||""===e)throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},!0!==t&&this.parse()}var t=e.prototype;return t.getUA=function(){return this._ua},t.test=function(e){return e.test(this._ua)},t.parseBrowser=function(){var e=this;this.parsedResult.browser={};var t=o.default.find(i.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.browser=t.describe(this.getUA())),this.parsedResult.browser},t.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},t.getBrowserName=function(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},t.getBrowserVersion=function(){return this.getBrowser().version},t.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},t.parseOS=function(){var e=this;this.parsedResult.os={};var t=o.default.find(s.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.os=t.describe(this.getUA())),this.parsedResult.os},t.getOSName=function(e){var t=this.getOS().name;return e?String(t).toLowerCase()||"":t||""},t.getOSVersion=function(){return this.getOS().version},t.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},t.getPlatformType=function(e){void 0===e&&(e=!1);var t=this.getPlatform().type;return e?String(t).toLowerCase()||"":t||""},t.parsePlatform=function(){var e=this;this.parsedResult.platform={};var t=o.default.find(n.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.platform=t.describe(this.getUA())),this.parsedResult.platform},t.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},t.getEngineName=function(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},t.parseEngine=function(){var e=this;this.parsedResult.engine={};var t=o.default.find(a.default,(function(t){if("function"==typeof t.test)return t.test(e);if(t.test instanceof Array)return t.test.some((function(t){return e.test(t)}));throw new Error("Browser's test function is not valid")}));return t&&(this.parsedResult.engine=t.describe(this.getUA())),this.parsedResult.engine},t.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},t.getResult=function(){return o.default.assign({},this.parsedResult)},t.satisfies=function(e){var t=this,r={},i=0,s={},n=0;if(Object.keys(e).forEach((function(t){var a=e[t];"string"==typeof a?(s[t]=a,n+=1):"object"==typeof a&&(r[t]=a,i+=1)})),i>0){var a=Object.keys(r),c=o.default.find(a,(function(e){return t.isOS(e)}));if(c){var d=this.satisfies(r[c]);if(void 0!==d)return d}var p=o.default.find(a,(function(e){return t.isPlatform(e)}));if(p){var l=this.satisfies(r[p]);if(void 0!==l)return l}}if(n>0){var h=Object.keys(s),u=o.default.find(h,(function(e){return t.isBrowser(e,!0)}));if(void 0!==u)return this.compareVersion(s[u])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),i=e.toLowerCase(),s=o.default.getBrowserTypeByAlias(i);return t&&s&&(i=s.toLowerCase()),i===r},t.compareVersion=function(e){var t=[0],r=e,i=!1,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(o.default.compareVersions(s,r,i))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){t.__esModule=!0,t.default=void 0;var i,s=(i=r(17))&&i.__esModule?i:{default:i},n=/version\/(\d+(\.?_?\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=s.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},r=s.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},r=s.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=s.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=s.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},r=s.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=s.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},r=s.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=s.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=s.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},r=s.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},r=s.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},r=s.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=s.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=s.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},r=s.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=s.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=s.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},r=s.default.getFirstMatch(n,e)||s.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},r=s.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=s.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=s.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=s.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},r=s.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=s.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=s.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=s.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},r=s.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:"Android Browser"},r=s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=s.default.getFirstMatch(n,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:s.default.getFirstMatch(t,e),version:s.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){t.__esModule=!0,t.default=void 0;var i,s=(i=r(17))&&i.__esModule?i:{default:i},n=r(18),a=[{test:[/Roku\/DVP/],describe:function(e){var t=s.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:n.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=s.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:n.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=s.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=s.default.getWindowsVersionName(t);return{name:n.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:n.OS_MAP.iOS},r=s.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=s.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=s.default.getMacOSVersionName(t),i={name:n.OS_MAP.MacOS,version:t};return r&&(i.versionName=r),i}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=s.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:n.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=s.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=s.default.getAndroidVersionName(t),i={name:n.OS_MAP.Android,version:t};return r&&(i.versionName=r),i}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=s.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:n.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=s.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||s.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||s.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:n.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=s.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:n.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=s.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:n.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:n.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:n.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=s.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:n.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){t.__esModule=!0,t.default=void 0;var i,s=(i=r(17))&&i.__esModule?i:{default:i},n=r(18),a=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=s.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:n.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:n.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=s.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:n.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:n.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:n.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:n.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:function(){return{type:n.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:n.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){t.__esModule=!0,t.default=void 0;var i,s=(i=r(17))&&i.__esModule?i:{default:i},n=r(18),a=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:n.ENGINE_MAP.Blink};var t=s.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:n.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:n.ENGINE_MAP.Trident},r=s.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:n.ENGINE_MAP.Presto},r=s.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:n.ENGINE_MAP.Gecko},r=s.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:n.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:n.ENGINE_MAP.WebKit},r=s.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})},function(e,t,r){const i=r(20)("h264-profile-level-id");i.log=console.info.bind(console),t.ProfileConstrainedBaseline=1,t.ProfileBaseline=2,t.ProfileMain=3,t.ProfileConstrainedHigh=4,t.ProfileHigh=5,t.Level1_b=0,t.Level1=10,t.Level1_1=11,t.Level1_2=12,t.Level1_3=13,t.Level2=20,t.Level2_1=21,t.Level2_2=22,t.Level3=30,t.Level3_1=31,t.Level3_2=32,t.Level4=40,t.Level4_1=41,t.Level4_2=42,t.Level5=50,t.Level5_1=51,t.Level5_2=52;class s{constructor(e,t){this.profile=e,this.level=t}}t.ProfileLevelId=s;const n=new s(1,31);class a{constructor(e){this._mask=~d("x",e),this._maskedValue=d("1",e)}isMatch(e){return this._maskedValue===(e&this._mask)}}class o{constructor(e,t,r){this.profile_idc=e,this.profile_iop=t,this.profile=r}}const c=[new o(66,new a("x1xx0000"),1),new o(77,new a("1xxx0000"),1),new o(88,new a("11xx0000"),1),new o(66,new a("x0xx0000"),2),new o(88,new a("10xx0000"),2),new o(77,new a("0x0x0000"),3),new o(100,new a("00000000"),5),new o(100,new a("00001100"),4)];function d(e,t){return(t[0]===e)<<7|(t[1]===e)<<6|(t[2]===e)<<5|(t[3]===e)<<4|(t[4]===e)<<3|(t[5]===e)<<2|(t[6]===e)<<1|(t[7]===e)<<0}function p(e={}){const t=e["level-asymmetry-allowed"];return 1===t||"1"===t}t.parseProfileLevelId=function(e){if("string"!=typeof e||6!==e.length)return null;const t=parseInt(e,16);if(0===t)return null;const r=255&t,n=t>>8&255,a=t>>16&255;let o;switch(r){case 11:o=0!=(16&n)?0:11;break;case 10:case 12:case 13:case 20:case 21:case 22:case 30:case 31:case 32:case 40:case 41:case 42:case 50:case 51:case 52:o=r;break;default:return i("parseProfileLevelId() | unrecognized level_idc:%s",r),null}for(const e of c)if(a===e.profile_idc&&e.profile_iop.isMatch(n))return new s(e.profile,o);return i("parseProfileLevelId() | unrecognized profile_idc/profile_iop combination"),null},t.profileLevelIdToString=function(e){if(0==e.level)switch(e.profile){case 1:return"42f00b";case 2:return"42100b";case 3:return"4d100b";default:return i("profileLevelIdToString() | Level 1_b not is allowed for profile:%s",e.profile),null}let t;switch(e.profile){case 1:t="42e0";break;case 2:t="4200";break;case 3:t="4d00";break;case 4:t="640c";break;case 5:t="6400";break;default:return i("profileLevelIdToString() | unrecognized profile:%s",e.profile),null}let r=e.level.toString(16);return 1===r.length&&(r="0"+r),`${t}${r}`},t.parseSdpProfileLevelId=function(e={}){const r=e["profile-level-id"];return r?t.parseProfileLevelId(r):n},t.isSameProfile=function(e={},r={}){const i=t.parseSdpProfileLevelId(e),s=t.parseSdpProfileLevelId(r);return Boolean(i&&s&&i.profile===s.profile)},t.generateProfileLevelIdForAnswer=function(e={},r={}){if(!e["profile-level-id"]&&!r["profile-level-id"])return i("generateProfileLevelIdForAnswer() | no profile-level-id in local and remote params"),null;const n=t.parseSdpProfileLevelId(e),a=t.parseSdpProfileLevelId(r);if(!n)throw new TypeError("invalid local_profile_level_id");if(!a)throw new TypeError("invalid remote_profile_level_id");if(n.profile!==a.profile)throw new TypeError("H264 Profile mismatch");const o=p(e)&&p(r),c=n.level,d=function(e,t){return 0===e?10!==t&&0!==t:0===t?10!==e:e<t}(l=c,h=a.level)?l:h;var l,h;const u=o?c:d;return i("generateProfileLevelIdForAnswer() | result: [profile:%s, level:%s]",n.profile,u),t.profileLevelIdToString(new s(n.profile,u))}},function(e,t,r){var i=this&&this.__awaiter||function(e,t,r,i){return new(r||(r=Promise))((function(s,n){function a(e){try{c(i.next(e))}catch(e){n(e)}}function o(e){try{c(i.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,o)}c((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.AwaitQueue=class{constructor({ClosedErrorClass:e=Error,StoppedErrorClass:t=Error}={ClosedErrorClass:Error,StoppedErrorClass:Error}){this.closed=!1,this.pendingTasks=[],this.ClosedErrorClass=Error,this.StoppedErrorClass=Error,this.ClosedErrorClass=e,this.StoppedErrorClass=t}get size(){return this.pendingTasks.length}close(){if(!this.closed){this.closed=!0;for(const e of this.pendingTasks)e.stopped=!0,e.reject(new this.ClosedErrorClass("AwaitQueue closed"));this.pendingTasks.length=0}}push(e,t){return i(this,void 0,void 0,(function*(){if(this.closed)throw new this.ClosedErrorClass("AwaitQueue closed");if("function"!=typeof e)throw new TypeError("given task is not a function");if(!e.name&&t)try{Object.defineProperty(e,"name",{value:t})}catch(e){}return new Promise(((r,i)=>{const s={task:e,name:t,resolve:r,reject:i,stopped:!1,enqueuedAt:new Date,executedAt:void 0};this.pendingTasks.push(s),1===this.pendingTasks.length&&this.next()}))}))}stop(){if(!this.closed){for(const e of this.pendingTasks)e.stopped=!0,e.reject(new this.StoppedErrorClass("AwaitQueue stopped"));this.pendingTasks.length=0}}dump(){const e=new Date;return this.pendingTasks.map((t=>({task:t.task,name:t.name,enqueuedTime:t.executedAt?t.executedAt.getTime()-t.enqueuedAt.getTime():e.getTime()-t.enqueuedAt.getTime(),executingTime:t.executedAt?e.getTime()-t.executedAt.getTime():0})))}next(){return i(this,void 0,void 0,(function*(){const e=this.pendingTasks[0];e&&(yield this.executeTask(e),this.pendingTasks.shift(),this.next())}))}executeTask(e){return i(this,void 0,void 0,(function*(){if(!e.stopped){e.executedAt=new Date;try{const t=yield e.task();if(e.stopped)return;e.resolve(t)}catch(t){if(e.stopped)return;e.reject(t)}}}))}}},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Chrome74=void 0;const a=n(r(8)),o=r(0),c=n(r(1)),d=n(r(4)),p=n(r(11)),l=n(r(17)),h=r(9),u=r(12),f=r(21),m=new o.Logger("Chrome74"),g={OS:1024,MIS:1024};class b extends h.HandlerInterface{constructor(){super(),this._mapMidTransceiver=new Map,this._sendStream=new MediaStream,this._hasDataChannelMediaSection=!1,this._nextSendSctpStreamId=0,this._transportReady=!1}static createFactory(){return()=>new b}get name(){return"Chrome74"}close(){if(m.debug("close()"),this._pc)try{this._pc.close()}catch(e){}}async getNativeRtpCapabilities(){m.debug("getNativeRtpCapabilities()");const e=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"unified-plan"});try{e.addTransceiver("audio"),e.addTransceiver("video");const t=await e.createOffer();try{e.close()}catch(e){}const r=a.parse(t.sdp);return p.extractRtpCapabilities({sdpObject:r})}catch(t){try{e.close()}catch(e){}throw t}}async getNativeSctpCapabilities(){return m.debug("getNativeSctpCapabilities()"),{numStreams:g}}run({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,extendedRtpCapabilities:p}){m.debug("run()"),this._direction=e,this._remoteSdp=new u.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s}),this._sendingRtpParametersByKind={audio:d.getSendingRtpParameters("audio",p),video:d.getSendingRtpParameters("video",p)},this._sendingRemoteRtpParametersByKind={audio:d.getSendingRemoteRtpParameters("audio",p),video:d.getSendingRemoteRtpParameters("video",p)},i.role&&"auto"!==i.role&&(this._forcedLocalDtlsRole="server"===i.role?"client":"server"),this._pc=new RTCPeerConnection({iceServers:n||[],iceTransportPolicy:a||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"unified-plan",...o},c),this._pc.addEventListener("iceconnectionstatechange",(()=>{switch(this._pc.iceConnectionState){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected");break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed")}}))}async updateIceServers(e){m.debug("updateIceServers()");const t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(m.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),this._transportReady)if("send"===this._direction){const e=await this._pc.createOffer({iceRestart:!0});m.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e);const t={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setRemoteDescription(t)}else{const e={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();m.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",t),await this._pc.setLocalDescription(t)}}async getTransportStats(){return this._pc.getStats()}async send({track:e,encodings:t,codecOptions:r,codec:i}){var s;this._assertSendDirection(),m.debug("send() [kind:%s, track.id:%s]",e.kind,e.id),t&&t.length>1&&t.forEach(((e,t)=>{e.rid="r"+t}));const n=c.clone(this._sendingRtpParametersByKind[e.kind],{});n.codecs=d.reduceCodecs(n.codecs,i);const o=c.clone(this._sendingRemoteRtpParametersByKind[e.kind],{});o.codecs=d.reduceCodecs(o.codecs,i);const h=this._remoteSdp.getNextMediaSectionIdx(),u=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream],sendEncodings:t});let g,b=await this._pc.createOffer(),v=a.parse(b.sdp);this._transportReady||await this._setupTransport({localDtlsRole:null!==(s=this._forcedLocalDtlsRole)&&void 0!==s?s:"client",localSdpObject:v});let w=!1;const y=(0,f.parse)((t||[{}])[0].scalabilityMode);t&&1===t.length&&y.spatialLayers>1&&"video/vp9"===n.codecs[0].mimeType.toLowerCase()&&(m.debug("send() | enabling legacy simulcast for VP9 SVC"),w=!0,v=a.parse(b.sdp),g=v.media[h.idx],l.addLegacySimulcast({offerMediaObject:g,numStreams:y.spatialLayers}),b={type:"offer",sdp:a.write(v)}),m.debug("send() | calling pc.setLocalDescription() [offer:%o]",b),await this._pc.setLocalDescription(b);const _=u.mid;if(n.mid=_,v=a.parse(this._pc.localDescription.sdp),g=v.media[h.idx],n.rtcp.cname=p.getCname({offerMediaObject:g}),t)if(1===t.length){let e=l.getRtpEncodings({offerMediaObject:g});Object.assign(e[0],t[0]),w&&(e=[e[0]]),n.encodings=e}else n.encodings=t;else n.encodings=l.getRtpEncodings({offerMediaObject:g});if(n.encodings.length>1&&("video/vp8"===n.codecs[0].mimeType.toLowerCase()||"video/h264"===n.codecs[0].mimeType.toLowerCase()))for(const e of n.encodings)e.scalabilityMode="S1T3";this._remoteSdp.send({offerMediaObject:g,reuseMid:h.reuseMid,offerRtpParameters:n,answerRtpParameters:o,codecOptions:r,extmapAllowMixed:!0});const S={type:"answer",sdp:this._remoteSdp.getSdp()};return m.debug("send() | calling pc.setRemoteDescription() [answer:%o]",S),await this._pc.setRemoteDescription(S),this._mapMidTransceiver.set(_,u),{localId:_,rtpParameters:n,rtpSender:u.sender}}async stopSending(e){this._assertSendDirection(),m.debug("stopSending() [localId:%s]",e);const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid);const r=await this._pc.createOffer();m.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);const i={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._mapMidTransceiver.delete(e)}async replaceTrack(e,t){this._assertSendDirection(),t?m.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):m.debug("replaceTrack() [localId:%s, no track]",e);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");await r.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this._assertSendDirection(),m.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const i=r.sender.getParameters();i.encodings.forEach(((e,r)=>{e.active=r<=t})),await r.sender.setParameters(i)}async setRtpEncodingParameters(e,t){this._assertSendDirection(),m.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const i=r.sender.getParameters();i.encodings.forEach(((e,r)=>{i.encodings[r]={...e,...t}})),await r.sender.setParameters(i)}async getSenderStats(e){this._assertSendDirection();const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({ordered:e,maxPacketLifeTime:t,maxRetransmits:r,label:i,protocol:s}){var n;this._assertSendDirection();const o={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e,maxPacketLifeTime:t,maxRetransmits:r,protocol:s};m.debug("sendDataChannel() [options:%o]",o);const c=this._pc.createDataChannel(i,o);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%g.MIS,!this._hasDataChannelMediaSection){const e=await this._pc.createOffer(),t=a.parse(e.sdp),r=t.media.find((e=>"application"===e.type));this._transportReady||await this._setupTransport({localDtlsRole:null!==(n=this._forcedLocalDtlsRole)&&void 0!==n?n:"client",localSdpObject:t}),m.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e),this._remoteSdp.sendSctpAssociation({offerMediaObject:r});const i={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._hasDataChannelMediaSection=!0}return{dataChannel:c,sctpStreamParameters:{streamId:o.id,ordered:o.ordered,maxPacketLifeTime:o.maxPacketLifeTime,maxRetransmits:o.maxRetransmits}}}async receive(e){var t;this._assertRecvDirection();const r=[],i=new Map;for(const t of e){const{trackId:e,kind:r,rtpParameters:s}=t;m.debug("receive() [trackId:%s, kind:%s]",e,r);const n=s.mid||String(this._mapMidTransceiver.size);i.set(e,n),this._remoteSdp.receive({mid:n,kind:r,offerRtpParameters:s,streamId:s.rtcp.cname,trackId:e})}const s={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",s),await this._pc.setRemoteDescription(s);let n=await this._pc.createAnswer();const o=a.parse(n.sdp);for(const t of e){const{trackId:e,rtpParameters:r}=t,s=i.get(e),n=o.media.find((e=>String(e.mid)===s));p.applyCodecParameters({offerRtpParameters:r,answerMediaObject:n})}n={type:"answer",sdp:a.write(o)},this._transportReady||await this._setupTransport({localDtlsRole:null!==(t=this._forcedLocalDtlsRole)&&void 0!==t?t:"client",localSdpObject:o}),m.debug("receive() | calling pc.setLocalDescription() [answer:%o]",n),await this._pc.setLocalDescription(n);for(const t of e){const{trackId:e}=t,s=i.get(e),n=this._pc.getTransceivers().find((e=>e.mid===s));if(!n)throw new Error("new RTCRtpTransceiver not found");this._mapMidTransceiver.set(s,n),r.push({localId:s,track:n.receiver.track,rtpReceiver:n.receiver})}return r}async stopReceiving(e){this._assertRecvDirection(),m.debug("stopReceiving() [localId:%s]",e);const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(t.mid);const r={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",r),await this._pc.setRemoteDescription(r);const i=await this._pc.createAnswer();m.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",i),await this._pc.setLocalDescription(i),this._mapMidTransceiver.delete(e)}async pauseReceiving(e){this._assertRecvDirection();for(const t of e){m.debug("pauseReceiving() [localId:%s]",t);const e=this._mapMidTransceiver.get(t);if(!e)throw new Error("associated RTCRtpTransceiver not found");e.direction="inactive"}const t={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);const r=await this._pc.createAnswer();m.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async resumeReceiving(e){this._assertRecvDirection();for(const t of e){m.debug("resumeReceiving() [localId:%s]",t);const e=this._mapMidTransceiver.get(t);if(!e)throw new Error("associated RTCRtpTransceiver not found");e.direction="recvonly"}const t={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);const r=await this._pc.createAnswer();m.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async getReceiverStats(e){this._assertRecvDirection();const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({sctpStreamParameters:e,label:t,protocol:r}){var i;this._assertRecvDirection();const{streamId:s,ordered:n,maxPacketLifeTime:o,maxRetransmits:c}=e,d={negotiated:!0,id:s,ordered:n,maxPacketLifeTime:o,maxRetransmits:c,protocol:r};m.debug("receiveDataChannel() [options:%o]",d);const p=this._pc.createDataChannel(t,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();const e={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();if(!this._transportReady){const e=a.parse(t.sdp);await this._setupTransport({localDtlsRole:null!==(i=this._forcedLocalDtlsRole)&&void 0!==i?i:"client",localSdpObject:e})}m.debug("receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setLocalDescription(t),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}async _setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=a.parse(this._pc.localDescription.sdp));const r=p.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole("client"===e?"server":"client"),await this.safeEmitAsPromise("@connect",{dtlsParameters:r}),this._transportReady=!0}_assertSendDirection(){if("send"!==this._direction)throw new Error('method can just be called for handlers with "send" direction')}_assertRecvDirection(){if("recv"!==this._direction)throw new Error('method can just be called for handlers with "recv" direction')}}t.Chrome74=b},function(e,t,r){var i=function(e){return String(Number(e))===e?Number(e):e},s=function(e,t,r){var s=e.name&&e.names;e.push&&!t[e.push]?t[e.push]=[]:s&&!t[e.name]&&(t[e.name]={});var n=e.push?{}:s?t[e.name]:t;!function(e,t,r,s){if(s&&!r)t[s]=i(e[1]);else for(var n=0;n<r.length;n+=1)null!=e[n+1]&&(t[r[n]]=i(e[n+1]))}(r.match(e.reg),n,e.names,e.name),e.push&&t[e.push].push(n)},n=r(29),a=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(e){var t={},r=[],i=t;return e.split(/(\r\n|\r|\n)/).filter(a).forEach((function(e){var t=e[0],a=e.slice(2);"m"===t&&(r.push({rtp:[],fmtp:[]}),i=r[r.length-1]);for(var o=0;o<(n[t]||[]).length;o+=1){var c=n[t][o];if(c.reg.test(a))return s(c,i,a)}})),t.media=r,t};var o=function(e,t){var r=t.split(/=(.+)/,2);return 2===r.length?e[r[0]]=i(r[1]):1===r.length&&t.length>1&&(e[r[0]]=void 0),e};t.parseParams=function(e){return e.split(/;\s?/).reduce(o,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(e){return e.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(e){for(var t=[],r=e.split(" ").map(i),s=0;s<r.length;s+=3)t.push({component:r[s],ip:r[s+1],port:r[s+2]});return t},t.parseImageAttributes=function(e){return e.split(" ").map((function(e){return e.substring(1,e.length-1).split(",").reduce(o,{})}))},t.parseSimulcastStreamList=function(e){return e.split(";").map((function(e){return e.split(",").map((function(e){var t,r=!1;return"~"!==e[0]?t=i(e):(t=i(e.substring(1,e.length)),r=!0),{scid:t,paused:r}}))}))}},function(e,t,r){var i=r(29),s=/%[sdv%]/g,n=function(e){var t=1,r=arguments,i=r.length;return e.replace(s,(function(e){if(t>=i)return e;var s=r[t];switch(t+=1,e){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}}))},a=function(e,t,r){var i=[e+"="+(t.format instanceof Function?t.format(t.push?r:r[t.name]):t.format)];if(t.names)for(var s=0;s<t.names.length;s+=1){var a=t.names[s];t.name?i.push(r[t.name][a]):i.push(r[t.names[s]])}else i.push(r[t.name]);return n.apply(null,i)},o=["v","o","s","i","u","e","p","c","b","t","r","z","a"],c=["i","c","b","a"];e.exports=function(e,t){t=t||{},null==e.version&&(e.version=0),null==e.name&&(e.name=" "),e.media.forEach((function(e){null==e.payloads&&(e.payloads="")}));var r=t.outerOrder||o,s=t.innerOrder||c,n=[];return r.forEach((function(t){i[t].forEach((function(r){r.name in e&&null!=e[r.name]?n.push(a(t,r,e)):r.push in e&&null!=e[r.push]&&e[r.push].forEach((function(e){n.push(a(t,r,e))}))}))})),e.media.forEach((function(e){n.push(a("m",i.m[0],e)),s.forEach((function(t){i[t].forEach((function(r){r.name in e&&null!=e[r.name]?n.push(a(t,r,e)):r.push in e&&null!=e[r.push]&&e[r.push].forEach((function(e){n.push(a(t,r,e))}))}))}))})),n.join("\r\n")+"\r\n"}},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.OfferMediaSection=t.AnswerMediaSection=t.MediaSection=void 0;const a=n(r(1));class o{constructor({iceParameters:e,iceCandidates:t,dtlsParameters:r,planB:i=!1}){if(this._mediaObject={},this._planB=i,e&&this.setIceParameters(e),t){this._mediaObject.candidates=[];for(const e of t){const t={component:1};t.foundation=e.foundation,t.ip=e.ip,t.port=e.port,t.priority=e.priority,t.transport=e.protocol,t.type=e.type,e.tcpType&&(t.tcptype=e.tcpType),this._mediaObject.candidates.push(t)}this._mediaObject.endOfCandidates="end-of-candidates",this._mediaObject.iceOptions="renomination"}r&&this.setDtlsRole(r.role)}get mid(){return String(this._mediaObject.mid)}get closed(){return 0===this._mediaObject.port}getObject(){return this._mediaObject}setIceParameters(e){this._mediaObject.iceUfrag=e.usernameFragment,this._mediaObject.icePwd=e.password}disable(){this._mediaObject.direction="inactive",delete this._mediaObject.ext,delete this._mediaObject.ssrcs,delete this._mediaObject.ssrcGroups,delete this._mediaObject.simulcast,delete this._mediaObject.simulcast_03,delete this._mediaObject.rids}close(){this._mediaObject.direction="inactive",this._mediaObject.port=0,delete this._mediaObject.ext,delete this._mediaObject.ssrcs,delete this._mediaObject.ssrcGroups,delete this._mediaObject.simulcast,delete this._mediaObject.simulcast_03,delete this._mediaObject.rids,delete this._mediaObject.extmapAllowMixed}}function c(e){const t=new RegExp("^(audio|video)/(.+)","i").exec(e.mimeType);if(!t)throw new TypeError("invalid codec.mimeType");return t[2]}t.MediaSection=o,t.AnswerMediaSection=class extends o{constructor({iceParameters:e,iceCandidates:t,dtlsParameters:r,sctpParameters:i,plainRtpParameters:s,planB:n=!1,offerMediaObject:o,offerRtpParameters:d,answerRtpParameters:p,codecOptions:l,extmapAllowMixed:h=!1}){switch(super({iceParameters:e,iceCandidates:t,dtlsParameters:r,planB:n}),this._mediaObject.mid=String(o.mid),this._mediaObject.type=o.type,this._mediaObject.protocol=o.protocol,s?(this._mediaObject.connection={ip:s.ip,version:s.ipVersion},this._mediaObject.port=s.port):(this._mediaObject.connection={ip:"127.0.0.1",version:4},this._mediaObject.port=7),o.type){case"audio":case"video":this._mediaObject.direction="recvonly",this._mediaObject.rtp=[],this._mediaObject.rtcpFb=[],this._mediaObject.fmtp=[];for(const e of p.codecs){const t={payload:e.payloadType,codec:c(e),rate:e.clockRate};e.channels>1&&(t.encoding=e.channels),this._mediaObject.rtp.push(t);const r=a.clone(e.parameters,{});if(l){const{opusStereo:t,opusFec:i,opusDtx:s,opusMaxPlaybackRate:n,opusMaxAverageBitrate:a,opusPtime:o,videoGoogleStartBitrate:c,videoGoogleMaxBitrate:p,videoGoogleMinBitrate:h}=l,u=d.codecs.find((t=>t.payloadType===e.payloadType));switch(e.mimeType.toLowerCase()){case"audio/opus":void 0!==t&&(u.parameters["sprop-stereo"]=t?1:0,r.stereo=t?1:0),void 0!==i&&(u.parameters.useinbandfec=i?1:0,r.useinbandfec=i?1:0),void 0!==s&&(u.parameters.usedtx=s?1:0,r.usedtx=s?1:0),void 0!==n&&(r.maxplaybackrate=n),void 0!==a&&(r.maxaveragebitrate=a),void 0!==o&&(u.parameters.ptime=o,r.ptime=o);break;case"video/vp8":case"video/vp9":case"video/h264":case"video/h265":void 0!==c&&(r["x-google-start-bitrate"]=c),void 0!==p&&(r["x-google-max-bitrate"]=p),void 0!==h&&(r["x-google-min-bitrate"]=h)}}const i={payload:e.payloadType,config:""};for(const e of Object.keys(r))i.config&&(i.config+=";"),i.config+=`${e}=${r[e]}`;i.config&&this._mediaObject.fmtp.push(i);for(const t of e.rtcpFeedback)this._mediaObject.rtcpFb.push({payload:e.payloadType,type:t.type,subtype:t.parameter})}this._mediaObject.payloads=p.codecs.map((e=>e.payloadType)).join(" "),this._mediaObject.ext=[];for(const e of p.headerExtensions)(o.ext||[]).some((t=>t.uri===e.uri))&&this._mediaObject.ext.push({uri:e.uri,value:e.id});if(h&&"extmap-allow-mixed"===o.extmapAllowMixed&&(this._mediaObject.extmapAllowMixed="extmap-allow-mixed"),o.simulcast){this._mediaObject.simulcast={dir1:"recv",list1:o.simulcast.list1},this._mediaObject.rids=[];for(const e of o.rids||[])"send"===e.direction&&this._mediaObject.rids.push({id:e.id,direction:"recv"})}else if(o.simulcast_03){this._mediaObject.simulcast_03={value:o.simulcast_03.value.replace(/send/g,"recv")},this._mediaObject.rids=[];for(const e of o.rids||[])"send"===e.direction&&this._mediaObject.rids.push({id:e.id,direction:"recv"})}this._mediaObject.rtcpMux="rtcp-mux",this._mediaObject.rtcpRsize="rtcp-rsize",this._planB&&"video"===this._mediaObject.type&&(this._mediaObject.xGoogleFlag="conference");break;case"application":"number"==typeof o.sctpPort?(this._mediaObject.payloads="webrtc-datachannel",this._mediaObject.sctpPort=i.port,this._mediaObject.maxMessageSize=i.maxMessageSize):o.sctpmap&&(this._mediaObject.payloads=i.port,this._mediaObject.sctpmap={app:"webrtc-datachannel",sctpmapNumber:i.port,maxMessageSize:i.maxMessageSize})}}setDtlsRole(e){switch(e){case"client":this._mediaObject.setup="active";break;case"server":this._mediaObject.setup="passive";break;case"auto":this._mediaObject.setup="actpass"}}},t.OfferMediaSection=class extends o{constructor({iceParameters:e,iceCandidates:t,dtlsParameters:r,sctpParameters:i,plainRtpParameters:s,planB:n=!1,mid:a,kind:o,offerRtpParameters:d,streamId:p,trackId:l,oldDataChannelSpec:h=!1}){switch(super({iceParameters:e,iceCandidates:t,dtlsParameters:r,planB:n}),this._mediaObject.mid=String(a),this._mediaObject.type=o,s?(this._mediaObject.connection={ip:s.ip,version:s.ipVersion},this._mediaObject.protocol="RTP/AVP",this._mediaObject.port=s.port):(this._mediaObject.connection={ip:"127.0.0.1",version:4},this._mediaObject.protocol=i?"UDP/DTLS/SCTP":"UDP/TLS/RTP/SAVPF",this._mediaObject.port=7),o){case"audio":case"video":{this._mediaObject.direction="sendonly",this._mediaObject.rtp=[],this._mediaObject.rtcpFb=[],this._mediaObject.fmtp=[],this._planB||(this._mediaObject.msid=`${p||"-"} ${l}`);for(const e of d.codecs){const t={payload:e.payloadType,codec:c(e),rate:e.clockRate};e.channels>1&&(t.encoding=e.channels),this._mediaObject.rtp.push(t);const r={payload:e.payloadType,config:""};for(const t of Object.keys(e.parameters))r.config&&(r.config+=";"),r.config+=`${t}=${e.parameters[t]}`;r.config&&this._mediaObject.fmtp.push(r);for(const t of e.rtcpFeedback)this._mediaObject.rtcpFb.push({payload:e.payloadType,type:t.type,subtype:t.parameter})}this._mediaObject.payloads=d.codecs.map((e=>e.payloadType)).join(" "),this._mediaObject.ext=[];for(const e of d.headerExtensions)this._mediaObject.ext.push({uri:e.uri,value:e.id});this._mediaObject.rtcpMux="rtcp-mux",this._mediaObject.rtcpRsize="rtcp-rsize";const e=d.encodings[0],t=e.ssrc,r=e.rtx&&e.rtx.ssrc?e.rtx.ssrc:void 0;this._mediaObject.ssrcs=[],this._mediaObject.ssrcGroups=[],d.rtcp.cname&&this._mediaObject.ssrcs.push({id:t,attribute:"cname",value:d.rtcp.cname}),this._planB&&this._mediaObject.ssrcs.push({id:t,attribute:"msid",value:`${p||"-"} ${l}`}),r&&(d.rtcp.cname&&this._mediaObject.ssrcs.push({id:r,attribute:"cname",value:d.rtcp.cname}),this._planB&&this._mediaObject.ssrcs.push({id:r,attribute:"msid",value:`${p||"-"} ${l}`}),this._mediaObject.ssrcGroups.push({semantics:"FID",ssrcs:`${t} ${r}`}));break}case"application":h?(this._mediaObject.payloads=i.port,this._mediaObject.sctpmap={app:"webrtc-datachannel",sctpmapNumber:i.port,maxMessageSize:i.maxMessageSize}):(this._mediaObject.payloads="webrtc-datachannel",this._mediaObject.sctpPort=i.port,this._mediaObject.maxMessageSize=i.maxMessageSize)}}setDtlsRole(e){this._mediaObject.setup="actpass"}planBReceive({offerRtpParameters:e,streamId:t,trackId:r}){const i=e.encodings[0],s=i.ssrc,n=i.rtx&&i.rtx.ssrc?i.rtx.ssrc:void 0,a=this._mediaObject.payloads.split(" ");for(const t of e.codecs){if(a.includes(String(t.payloadType)))continue;const e={payload:t.payloadType,codec:c(t),rate:t.clockRate};t.channels>1&&(e.encoding=t.channels),this._mediaObject.rtp.push(e);const r={payload:t.payloadType,config:""};for(const e of Object.keys(t.parameters))r.config&&(r.config+=";"),r.config+=`${e}=${t.parameters[e]}`;r.config&&this._mediaObject.fmtp.push(r);for(const e of t.rtcpFeedback)this._mediaObject.rtcpFb.push({payload:t.payloadType,type:e.type,subtype:e.parameter})}this._mediaObject.payloads+=" "+e.codecs.filter((e=>!this._mediaObject.payloads.includes(e.payloadType))).map((e=>e.payloadType)).join(" "),this._mediaObject.payloads=this._mediaObject.payloads.trim(),e.rtcp.cname&&this._mediaObject.ssrcs.push({id:s,attribute:"cname",value:e.rtcp.cname}),this._mediaObject.ssrcs.push({id:s,attribute:"msid",value:`${t||"-"} ${r}`}),n&&(e.rtcp.cname&&this._mediaObject.ssrcs.push({id:n,attribute:"cname",value:e.rtcp.cname}),this._mediaObject.ssrcs.push({id:n,attribute:"msid",value:`${t||"-"} ${r}`}),this._mediaObject.ssrcGroups.push({semantics:"FID",ssrcs:`${s} ${n}`}))}planBStopReceiving({offerRtpParameters:e}){const t=e.encodings[0],r=t.ssrc,i=t.rtx&&t.rtx.ssrc?t.rtx.ssrc:void 0;this._mediaObject.ssrcs=this._mediaObject.ssrcs.filter((e=>e.id!==r&&e.id!==i)),i&&(this._mediaObject.ssrcGroups=this._mediaObject.ssrcGroups.filter((e=>e.ssrcs!==`${r} ${i}`)))}}},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Chrome70=void 0;const a=n(r(8)),o=r(0),c=n(r(1)),d=n(r(4)),p=n(r(11)),l=n(r(17)),h=r(9),u=r(12),f=r(21),m=new o.Logger("Chrome70"),g={OS:1024,MIS:1024};class b extends h.HandlerInterface{constructor(){super(),this._mapMidTransceiver=new Map,this._sendStream=new MediaStream,this._hasDataChannelMediaSection=!1,this._nextSendSctpStreamId=0,this._transportReady=!1}static createFactory(){return()=>new b}get name(){return"Chrome70"}close(){if(m.debug("close()"),this._pc)try{this._pc.close()}catch(e){}}async getNativeRtpCapabilities(){m.debug("getNativeRtpCapabilities()");const e=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"unified-plan"});try{e.addTransceiver("audio"),e.addTransceiver("video");const t=await e.createOffer();try{e.close()}catch(e){}const r=a.parse(t.sdp);return p.extractRtpCapabilities({sdpObject:r})}catch(t){try{e.close()}catch(e){}throw t}}async getNativeSctpCapabilities(){return m.debug("getNativeSctpCapabilities()"),{numStreams:g}}run({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,extendedRtpCapabilities:p}){m.debug("run()"),this._direction=e,this._remoteSdp=new u.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s}),this._sendingRtpParametersByKind={audio:d.getSendingRtpParameters("audio",p),video:d.getSendingRtpParameters("video",p)},this._sendingRemoteRtpParametersByKind={audio:d.getSendingRemoteRtpParameters("audio",p),video:d.getSendingRemoteRtpParameters("video",p)},i.role&&"auto"!==i.role&&(this._forcedLocalDtlsRole="server"===i.role?"client":"server"),this._pc=new RTCPeerConnection({iceServers:n||[],iceTransportPolicy:a||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"unified-plan",...o},c),this._pc.addEventListener("iceconnectionstatechange",(()=>{switch(this._pc.iceConnectionState){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected");break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed")}}))}async updateIceServers(e){m.debug("updateIceServers()");const t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(m.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),this._transportReady)if("send"===this._direction){const e=await this._pc.createOffer({iceRestart:!0});m.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e);const t={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setRemoteDescription(t)}else{const e={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();m.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",t),await this._pc.setLocalDescription(t)}}async getTransportStats(){return this._pc.getStats()}async send({track:e,encodings:t,codecOptions:r,codec:i}){var s;this._assertSendDirection(),m.debug("send() [kind:%s, track.id:%s]",e.kind,e.id);const n=c.clone(this._sendingRtpParametersByKind[e.kind],{});n.codecs=d.reduceCodecs(n.codecs,i);const o=c.clone(this._sendingRemoteRtpParametersByKind[e.kind],{});o.codecs=d.reduceCodecs(o.codecs,i);const h=this._remoteSdp.getNextMediaSectionIdx(),u=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream]});let g,b=await this._pc.createOffer(),v=a.parse(b.sdp);this._transportReady||await this._setupTransport({localDtlsRole:null!==(s=this._forcedLocalDtlsRole)&&void 0!==s?s:"client",localSdpObject:v}),t&&t.length>1&&(m.debug("send() | enabling legacy simulcast"),v=a.parse(b.sdp),g=v.media[h.idx],l.addLegacySimulcast({offerMediaObject:g,numStreams:t.length}),b={type:"offer",sdp:a.write(v)});let w=!1;const y=(0,f.parse)((t||[{}])[0].scalabilityMode);if(t&&1===t.length&&y.spatialLayers>1&&"video/vp9"===n.codecs[0].mimeType.toLowerCase()&&(m.debug("send() | enabling legacy simulcast for VP9 SVC"),w=!0,v=a.parse(b.sdp),g=v.media[h.idx],l.addLegacySimulcast({offerMediaObject:g,numStreams:y.spatialLayers}),b={type:"offer",sdp:a.write(v)}),m.debug("send() | calling pc.setLocalDescription() [offer:%o]",b),await this._pc.setLocalDescription(b),t){m.debug("send() | applying given encodings");const e=u.sender.getParameters();for(let r=0;r<(e.encodings||[]).length;++r){const i=e.encodings[r],s=t[r];if(!s)break;e.encodings[r]=Object.assign(i,s)}await u.sender.setParameters(e)}const _=u.mid;if(n.mid=_,v=a.parse(this._pc.localDescription.sdp),g=v.media[h.idx],n.rtcp.cname=p.getCname({offerMediaObject:g}),n.encodings=l.getRtpEncodings({offerMediaObject:g}),t)for(let e=0;e<n.encodings.length;++e)t[e]&&Object.assign(n.encodings[e],t[e]);if(w&&(n.encodings=[n.encodings[0]]),n.encodings.length>1&&("video/vp8"===n.codecs[0].mimeType.toLowerCase()||"video/h264"===n.codecs[0].mimeType.toLowerCase()))for(const e of n.encodings)e.scalabilityMode="S1T3";this._remoteSdp.send({offerMediaObject:g,reuseMid:h.reuseMid,offerRtpParameters:n,answerRtpParameters:o,codecOptions:r});const S={type:"answer",sdp:this._remoteSdp.getSdp()};return m.debug("send() | calling pc.setRemoteDescription() [answer:%o]",S),await this._pc.setRemoteDescription(S),this._mapMidTransceiver.set(_,u),{localId:_,rtpParameters:n,rtpSender:u.sender}}async stopSending(e){this._assertSendDirection(),m.debug("stopSending() [localId:%s]",e);const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid);const r=await this._pc.createOffer();m.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);const i={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._mapMidTransceiver.delete(e)}async replaceTrack(e,t){this._assertSendDirection(),t?m.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):m.debug("replaceTrack() [localId:%s, no track]",e);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");await r.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this._assertSendDirection(),m.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const i=r.sender.getParameters();i.encodings.forEach(((e,r)=>{e.active=r<=t})),await r.sender.setParameters(i)}async setRtpEncodingParameters(e,t){this._assertSendDirection(),m.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const i=r.sender.getParameters();i.encodings.forEach(((e,r)=>{i.encodings[r]={...e,...t}})),await r.sender.setParameters(i)}async getSenderStats(e){this._assertSendDirection();const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({ordered:e,maxPacketLifeTime:t,maxRetransmits:r,label:i,protocol:s}){var n;this._assertSendDirection();const o={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e,maxPacketLifeTime:t,maxRetransmitTime:t,maxRetransmits:r,protocol:s};m.debug("sendDataChannel() [options:%o]",o);const c=this._pc.createDataChannel(i,o);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%g.MIS,!this._hasDataChannelMediaSection){const e=await this._pc.createOffer(),t=a.parse(e.sdp),r=t.media.find((e=>"application"===e.type));this._transportReady||await this._setupTransport({localDtlsRole:null!==(n=this._forcedLocalDtlsRole)&&void 0!==n?n:"client",localSdpObject:t}),m.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e),this._remoteSdp.sendSctpAssociation({offerMediaObject:r});const i={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._hasDataChannelMediaSection=!0}return{dataChannel:c,sctpStreamParameters:{streamId:o.id,ordered:o.ordered,maxPacketLifeTime:o.maxPacketLifeTime,maxRetransmits:o.maxRetransmits}}}async receive(e){var t;this._assertRecvDirection();const r=[],i=new Map;for(const t of e){const{trackId:e,kind:r,rtpParameters:s}=t;m.debug("receive() [trackId:%s, kind:%s]",e,r);const n=s.mid||String(this._mapMidTransceiver.size);i.set(e,n),this._remoteSdp.receive({mid:n,kind:r,offerRtpParameters:s,streamId:s.rtcp.cname,trackId:e})}const s={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",s),await this._pc.setRemoteDescription(s);let n=await this._pc.createAnswer();const o=a.parse(n.sdp);for(const t of e){const{trackId:e,rtpParameters:r}=t,s=i.get(e),n=o.media.find((e=>String(e.mid)===s));p.applyCodecParameters({offerRtpParameters:r,answerMediaObject:n})}n={type:"answer",sdp:a.write(o)},this._transportReady||await this._setupTransport({localDtlsRole:null!==(t=this._forcedLocalDtlsRole)&&void 0!==t?t:"client",localSdpObject:o}),m.debug("receive() | calling pc.setLocalDescription() [answer:%o]",n),await this._pc.setLocalDescription(n);for(const t of e){const{trackId:e}=t,s=i.get(e),n=this._pc.getTransceivers().find((e=>e.mid===s));if(!n)throw new Error("new RTCRtpTransceiver not found");this._mapMidTransceiver.set(s,n),r.push({localId:s,track:n.receiver.track,rtpReceiver:n.receiver})}return r}async stopReceiving(e){this._assertRecvDirection(),m.debug("stopReceiving() [localId:%s]",e);const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(t.mid);const r={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",r),await this._pc.setRemoteDescription(r);const i=await this._pc.createAnswer();m.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",i),await this._pc.setLocalDescription(i),this._mapMidTransceiver.delete(e)}async pauseReceiving(e){}async resumeReceiving(e){}async getReceiverStats(e){this._assertRecvDirection();const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({sctpStreamParameters:e,label:t,protocol:r}){var i;this._assertRecvDirection();const{streamId:s,ordered:n,maxPacketLifeTime:o,maxRetransmits:c}=e,d={negotiated:!0,id:s,ordered:n,maxPacketLifeTime:o,maxRetransmitTime:o,maxRetransmits:c,protocol:r};m.debug("receiveDataChannel() [options:%o]",d);const p=this._pc.createDataChannel(t,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();const e={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();if(!this._transportReady){const e=a.parse(t.sdp);await this._setupTransport({localDtlsRole:null!==(i=this._forcedLocalDtlsRole)&&void 0!==i?i:"client",localSdpObject:e})}m.debug("receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setLocalDescription(t),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}async _setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=a.parse(this._pc.localDescription.sdp));const r=p.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole("client"===e?"server":"client"),await this.safeEmitAsPromise("@connect",{dtlsParameters:r}),this._transportReady=!0}_assertSendDirection(){if("send"!==this._direction)throw new Error('method can just be called for handlers with "send" direction')}_assertRecvDirection(){if("recv"!==this._direction)throw new Error('method can just be called for handlers with "recv" direction')}}t.Chrome70=b},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Chrome67=void 0;const a=n(r(8)),o=r(0),c=n(r(1)),d=n(r(4)),p=n(r(11)),l=n(r(18)),h=r(9),u=r(12),f=new o.Logger("Chrome67"),m={OS:1024,MIS:1024};class g extends h.HandlerInterface{constructor(){super(),this._sendStream=new MediaStream,this._mapSendLocalIdRtpSender=new Map,this._nextSendLocalId=0,this._mapRecvLocalIdInfo=new Map,this._hasDataChannelMediaSection=!1,this._nextSendSctpStreamId=0,this._transportReady=!1}static createFactory(){return()=>new g}get name(){return"Chrome67"}close(){if(f.debug("close()"),this._pc)try{this._pc.close()}catch(e){}}async getNativeRtpCapabilities(){f.debug("getNativeRtpCapabilities()");const e=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"plan-b"});try{const t=await e.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});try{e.close()}catch(e){}const r=a.parse(t.sdp);return p.extractRtpCapabilities({sdpObject:r})}catch(t){try{e.close()}catch(e){}throw t}}async getNativeSctpCapabilities(){return f.debug("getNativeSctpCapabilities()"),{numStreams:m}}run({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,extendedRtpCapabilities:p}){f.debug("run()"),this._direction=e,this._remoteSdp=new u.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,planB:!0}),this._sendingRtpParametersByKind={audio:d.getSendingRtpParameters("audio",p),video:d.getSendingRtpParameters("video",p)},this._sendingRemoteRtpParametersByKind={audio:d.getSendingRemoteRtpParameters("audio",p),video:d.getSendingRemoteRtpParameters("video",p)},i.role&&"auto"!==i.role&&(this._forcedLocalDtlsRole="server"===i.role?"client":"server"),this._pc=new RTCPeerConnection({iceServers:n||[],iceTransportPolicy:a||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"plan-b",...o},c),this._pc.addEventListener("iceconnectionstatechange",(()=>{switch(this._pc.iceConnectionState){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected");break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed")}}))}async updateIceServers(e){f.debug("updateIceServers()");const t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(f.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),this._transportReady)if("send"===this._direction){const e=await this._pc.createOffer({iceRestart:!0});f.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e);const t={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setRemoteDescription(t)}else{const e={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();f.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",t),await this._pc.setLocalDescription(t)}}async getTransportStats(){return this._pc.getStats()}async send({track:e,encodings:t,codecOptions:r,codec:i}){var s;this._assertSendDirection(),f.debug("send() [kind:%s, track.id:%s]",e.kind,e.id),i&&f.warn("send() | codec selection is not available in %s handler",this.name),this._sendStream.addTrack(e),this._pc.addTrack(e,this._sendStream);let n,o=await this._pc.createOffer(),h=a.parse(o.sdp);const u=c.clone(this._sendingRtpParametersByKind[e.kind],{});u.codecs=d.reduceCodecs(u.codecs);const m=c.clone(this._sendingRemoteRtpParametersByKind[e.kind],{});if(m.codecs=d.reduceCodecs(m.codecs),this._transportReady||await this._setupTransport({localDtlsRole:null!==(s=this._forcedLocalDtlsRole)&&void 0!==s?s:"client",localSdpObject:h}),"video"===e.kind&&t&&t.length>1&&(f.debug("send() | enabling simulcast"),h=a.parse(o.sdp),n=h.media.find((e=>"video"===e.type)),l.addLegacySimulcast({offerMediaObject:n,track:e,numStreams:t.length}),o={type:"offer",sdp:a.write(h)}),f.debug("send() | calling pc.setLocalDescription() [offer:%o]",o),await this._pc.setLocalDescription(o),h=a.parse(this._pc.localDescription.sdp),n=h.media.find((t=>t.type===e.kind)),u.rtcp.cname=p.getCname({offerMediaObject:n}),u.encodings=l.getRtpEncodings({offerMediaObject:n,track:e}),t)for(let e=0;e<u.encodings.length;++e)t[e]&&Object.assign(u.encodings[e],t[e]);if(u.encodings.length>1&&"video/vp8"===u.codecs[0].mimeType.toLowerCase())for(const e of u.encodings)e.scalabilityMode="S1T3";this._remoteSdp.send({offerMediaObject:n,offerRtpParameters:u,answerRtpParameters:m,codecOptions:r});const g={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("send() | calling pc.setRemoteDescription() [answer:%o]",g),await this._pc.setRemoteDescription(g);const b=String(this._nextSendLocalId);this._nextSendLocalId++;const v=this._pc.getSenders().find((t=>t.track===e));return this._mapSendLocalIdRtpSender.set(b,v),{localId:b,rtpParameters:u,rtpSender:v}}async stopSending(e){this._assertSendDirection(),f.debug("stopSending() [localId:%s]",e);const t=this._mapSendLocalIdRtpSender.get(e);if(!t)throw new Error("associated RTCRtpSender not found");this._pc.removeTrack(t),t.track&&this._sendStream.removeTrack(t.track),this._mapSendLocalIdRtpSender.delete(e);const r=await this._pc.createOffer();f.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",r);try{await this._pc.setLocalDescription(r)}catch(e){if(0===this._sendStream.getTracks().length)return void f.warn("stopSending() | ignoring expected error due no sending tracks: %s",e.toString());throw e}if("stable"===this._pc.signalingState)return;const i={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async replaceTrack(e,t){this._assertSendDirection(),t?f.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):f.debug("replaceTrack() [localId:%s, no track]",e);const r=this._mapSendLocalIdRtpSender.get(e);if(!r)throw new Error("associated RTCRtpSender not found");const i=r.track;await r.replaceTrack(t),i&&this._sendStream.removeTrack(i),t&&this._sendStream.addTrack(t)}async setMaxSpatialLayer(e,t){this._assertSendDirection(),f.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);const r=this._mapSendLocalIdRtpSender.get(e);if(!r)throw new Error("associated RTCRtpSender not found");const i=r.getParameters();i.encodings.forEach(((e,r)=>{e.active=r<=t})),await r.setParameters(i)}async setRtpEncodingParameters(e,t){this._assertSendDirection(),f.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);const r=this._mapSendLocalIdRtpSender.get(e);if(!r)throw new Error("associated RTCRtpSender not found");const i=r.getParameters();i.encodings.forEach(((e,r)=>{i.encodings[r]={...e,...t}})),await r.setParameters(i)}async getSenderStats(e){this._assertSendDirection();const t=this._mapSendLocalIdRtpSender.get(e);if(!t)throw new Error("associated RTCRtpSender not found");return t.getStats()}async sendDataChannel({ordered:e,maxPacketLifeTime:t,maxRetransmits:r,label:i,protocol:s}){var n;this._assertSendDirection();const o={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e,maxPacketLifeTime:t,maxRetransmitTime:t,maxRetransmits:r,protocol:s};f.debug("sendDataChannel() [options:%o]",o);const c=this._pc.createDataChannel(i,o);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%m.MIS,!this._hasDataChannelMediaSection){const e=await this._pc.createOffer(),t=a.parse(e.sdp),r=t.media.find((e=>"application"===e.type));this._transportReady||await this._setupTransport({localDtlsRole:null!==(n=this._forcedLocalDtlsRole)&&void 0!==n?n:"client",localSdpObject:t}),f.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e),this._remoteSdp.sendSctpAssociation({offerMediaObject:r});const i={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._hasDataChannelMediaSection=!0}return{dataChannel:c,sctpStreamParameters:{streamId:o.id,ordered:o.ordered,maxPacketLifeTime:o.maxPacketLifeTime,maxRetransmits:o.maxRetransmits}}}async receive(e){var t;this._assertRecvDirection();const r=[];for(const t of e){const{trackId:e,kind:r,rtpParameters:i}=t;f.debug("receive() [trackId:%s, kind:%s]",e,r);const s=r;this._remoteSdp.receive({mid:s,kind:r,offerRtpParameters:i,streamId:i.rtcp.cname,trackId:e})}const i={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);let s=await this._pc.createAnswer();const n=a.parse(s.sdp);for(const t of e){const{kind:e,rtpParameters:r}=t,i=e,s=n.media.find((e=>String(e.mid)===i));p.applyCodecParameters({offerRtpParameters:r,answerMediaObject:s})}s={type:"answer",sdp:a.write(n)},this._transportReady||await this._setupTransport({localDtlsRole:null!==(t=this._forcedLocalDtlsRole)&&void 0!==t?t:"client",localSdpObject:n}),f.debug("receive() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s);for(const t of e){const{kind:e,trackId:i,rtpParameters:s}=t,n=i,a=e,o=this._pc.getReceivers().find((e=>e.track&&e.track.id===n));if(!o)throw new Error("new RTCRtpReceiver not");this._mapRecvLocalIdInfo.set(n,{mid:a,rtpParameters:s,rtpReceiver:o}),r.push({localId:n,track:o.track,rtpReceiver:o})}return r}async stopReceiving(e){this._assertRecvDirection(),f.debug("stopReceiving() [localId:%s]",e);const{mid:t,rtpParameters:r}=this._mapRecvLocalIdInfo.get(e)||{};this._mapRecvLocalIdInfo.delete(e),this._remoteSdp.planBStopReceiving({mid:t,offerRtpParameters:r});const i={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);const s=await this._pc.createAnswer();f.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async pauseReceiving(e){}async resumeReceiving(e){}async getReceiverStats(e){this._assertRecvDirection();const{rtpReceiver:t}=this._mapRecvLocalIdInfo.get(e)||{};if(!t)throw new Error("associated RTCRtpReceiver not found");return t.getStats()}async receiveDataChannel({sctpStreamParameters:e,label:t,protocol:r}){var i;this._assertRecvDirection();const{streamId:s,ordered:n,maxPacketLifeTime:o,maxRetransmits:c}=e,d={negotiated:!0,id:s,ordered:n,maxPacketLifeTime:o,maxRetransmitTime:o,maxRetransmits:c,protocol:r};f.debug("receiveDataChannel() [options:%o]",d);const p=this._pc.createDataChannel(t,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation({oldDataChannelSpec:!0});const e={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();if(!this._transportReady){const e=a.parse(t.sdp);await this._setupTransport({localDtlsRole:null!==(i=this._forcedLocalDtlsRole)&&void 0!==i?i:"client",localSdpObject:e})}f.debug("receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setLocalDescription(t),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}async _setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=a.parse(this._pc.localDescription.sdp));const r=p.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole("client"===e?"server":"client"),await this.safeEmitAsPromise("@connect",{dtlsParameters:r}),this._transportReady=!0}_assertSendDirection(){if("send"!==this._direction)throw new Error('method can just be called for handlers with "send" direction')}_assertRecvDirection(){if("recv"!==this._direction)throw new Error('method can just be called for handlers with "recv" direction')}}t.Chrome67=g},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Chrome55=void 0;const a=n(r(8)),o=r(0),c=r(7),d=n(r(1)),p=n(r(4)),l=n(r(11)),h=n(r(18)),u=r(9),f=r(12),m=new o.Logger("Chrome55"),g={OS:1024,MIS:1024};class b extends u.HandlerInterface{constructor(){super(),this._sendStream=new MediaStream,this._mapSendLocalIdTrack=new Map,this._nextSendLocalId=0,this._mapRecvLocalIdInfo=new Map,this._hasDataChannelMediaSection=!1,this._nextSendSctpStreamId=0,this._transportReady=!1}static createFactory(){return()=>new b}get name(){return"Chrome55"}close(){if(m.debug("close()"),this._pc)try{this._pc.close()}catch(e){}}async getNativeRtpCapabilities(){m.debug("getNativeRtpCapabilities()");const e=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"plan-b"});try{const t=await e.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});try{e.close()}catch(e){}const r=a.parse(t.sdp);return l.extractRtpCapabilities({sdpObject:r})}catch(t){try{e.close()}catch(e){}throw t}}async getNativeSctpCapabilities(){return m.debug("getNativeSctpCapabilities()"),{numStreams:g}}run({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,extendedRtpCapabilities:d}){m.debug("run()"),this._direction=e,this._remoteSdp=new f.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,planB:!0}),this._sendingRtpParametersByKind={audio:p.getSendingRtpParameters("audio",d),video:p.getSendingRtpParameters("video",d)},this._sendingRemoteRtpParametersByKind={audio:p.getSendingRemoteRtpParameters("audio",d),video:p.getSendingRemoteRtpParameters("video",d)},i.role&&"auto"!==i.role&&(this._forcedLocalDtlsRole="server"===i.role?"client":"server"),this._pc=new RTCPeerConnection({iceServers:n||[],iceTransportPolicy:a||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"plan-b",...o},c),this._pc.addEventListener("iceconnectionstatechange",(()=>{switch(this._pc.iceConnectionState){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected");break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed")}}))}async updateIceServers(e){m.debug("updateIceServers()");const t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(m.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),this._transportReady)if("send"===this._direction){const e=await this._pc.createOffer({iceRestart:!0});m.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e);const t={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setRemoteDescription(t)}else{const e={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();m.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",t),await this._pc.setLocalDescription(t)}}async getTransportStats(){return this._pc.getStats()}async send({track:e,encodings:t,codecOptions:r,codec:i}){var s;this._assertSendDirection(),m.debug("send() [kind:%s, track.id:%s]",e.kind,e.id),i&&m.warn("send() | codec selection is not available in %s handler",this.name),this._sendStream.addTrack(e),this._pc.addStream(this._sendStream);let n,o=await this._pc.createOffer(),c=a.parse(o.sdp);const u=d.clone(this._sendingRtpParametersByKind[e.kind],{});u.codecs=p.reduceCodecs(u.codecs);const f=d.clone(this._sendingRemoteRtpParametersByKind[e.kind],{});if(f.codecs=p.reduceCodecs(f.codecs),this._transportReady||await this._setupTransport({localDtlsRole:null!==(s=this._forcedLocalDtlsRole)&&void 0!==s?s:"client",localSdpObject:c}),"video"===e.kind&&t&&t.length>1&&(m.debug("send() | enabling simulcast"),c=a.parse(o.sdp),n=c.media.find((e=>"video"===e.type)),h.addLegacySimulcast({offerMediaObject:n,track:e,numStreams:t.length}),o={type:"offer",sdp:a.write(c)}),m.debug("send() | calling pc.setLocalDescription() [offer:%o]",o),await this._pc.setLocalDescription(o),c=a.parse(this._pc.localDescription.sdp),n=c.media.find((t=>t.type===e.kind)),u.rtcp.cname=l.getCname({offerMediaObject:n}),u.encodings=h.getRtpEncodings({offerMediaObject:n,track:e}),t)for(let e=0;e<u.encodings.length;++e)t[e]&&Object.assign(u.encodings[e],t[e]);if(u.encodings.length>1&&"video/vp8"===u.codecs[0].mimeType.toLowerCase())for(const e of u.encodings)e.scalabilityMode="S1T3";this._remoteSdp.send({offerMediaObject:n,offerRtpParameters:u,answerRtpParameters:f,codecOptions:r});const g={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("send() | calling pc.setRemoteDescription() [answer:%o]",g),await this._pc.setRemoteDescription(g);const b=String(this._nextSendLocalId);return this._nextSendLocalId++,this._mapSendLocalIdTrack.set(b,e),{localId:b,rtpParameters:u}}async stopSending(e){this._assertSendDirection(),m.debug("stopSending() [localId:%s]",e);const t=this._mapSendLocalIdTrack.get(e);if(!t)throw new Error("track not found");this._mapSendLocalIdTrack.delete(e),this._sendStream.removeTrack(t),this._pc.addStream(this._sendStream);const r=await this._pc.createOffer();m.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",r);try{await this._pc.setLocalDescription(r)}catch(e){if(0===this._sendStream.getTracks().length)return void m.warn("stopSending() | ignoring expected error due no sending tracks: %s",e.toString());throw e}if("stable"===this._pc.signalingState)return;const i={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async replaceTrack(e,t){throw new c.UnsupportedError("not implemented")}async setMaxSpatialLayer(e,t){throw new c.UnsupportedError(" not implemented")}async setRtpEncodingParameters(e,t){throw new c.UnsupportedError("not supported")}async getSenderStats(e){throw new c.UnsupportedError("not implemented")}async sendDataChannel({ordered:e,maxPacketLifeTime:t,maxRetransmits:r,label:i,protocol:s}){var n;this._assertSendDirection();const o={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e,maxPacketLifeTime:t,maxRetransmitTime:t,maxRetransmits:r,protocol:s};m.debug("sendDataChannel() [options:%o]",o);const c=this._pc.createDataChannel(i,o);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%g.MIS,!this._hasDataChannelMediaSection){const e=await this._pc.createOffer(),t=a.parse(e.sdp),r=t.media.find((e=>"application"===e.type));this._transportReady||await this._setupTransport({localDtlsRole:null!==(n=this._forcedLocalDtlsRole)&&void 0!==n?n:"client",localSdpObject:t}),m.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e),this._remoteSdp.sendSctpAssociation({offerMediaObject:r});const i={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._hasDataChannelMediaSection=!0}return{dataChannel:c,sctpStreamParameters:{streamId:o.id,ordered:o.ordered,maxPacketLifeTime:o.maxPacketLifeTime,maxRetransmits:o.maxRetransmits}}}async receive(e){var t;this._assertRecvDirection();const r=[];for(const t of e){const{trackId:e,kind:r,rtpParameters:i}=t;m.debug("receive() [trackId:%s, kind:%s]",e,r);const s=r,n=i.rtcp.cname;this._remoteSdp.receive({mid:s,kind:r,offerRtpParameters:i,streamId:n,trackId:e})}const i={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);let s=await this._pc.createAnswer();const n=a.parse(s.sdp);for(const t of e){const{kind:e,rtpParameters:r}=t,i=e,s=n.media.find((e=>String(e.mid)===i));l.applyCodecParameters({offerRtpParameters:r,answerMediaObject:s})}s={type:"answer",sdp:a.write(n)},this._transportReady||await this._setupTransport({localDtlsRole:null!==(t=this._forcedLocalDtlsRole)&&void 0!==t?t:"client",localSdpObject:n}),m.debug("receive() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s);for(const t of e){const{kind:e,trackId:i,rtpParameters:s}=t,n=e,a=i,o=s.rtcp.cname,c=this._pc.getRemoteStreams().find((e=>e.id===o)).getTrackById(a);if(!c)throw new Error("remote track not found");this._mapRecvLocalIdInfo.set(a,{mid:n,rtpParameters:s}),r.push({localId:a,track:c})}return r}async stopReceiving(e){this._assertRecvDirection(),m.debug("stopReceiving() [localId:%s]",e);const{mid:t,rtpParameters:r}=this._mapRecvLocalIdInfo.get(e)||{};this._mapRecvLocalIdInfo.delete(e),this._remoteSdp.planBStopReceiving({mid:t,offerRtpParameters:r});const i={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);const s=await this._pc.createAnswer();m.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async pauseReceiving(e){}async resumeReceiving(e){}async getReceiverStats(e){throw new c.UnsupportedError("not implemented")}async receiveDataChannel({sctpStreamParameters:e,label:t,protocol:r}){var i;this._assertRecvDirection();const{streamId:s,ordered:n,maxPacketLifeTime:o,maxRetransmits:c}=e,d={negotiated:!0,id:s,ordered:n,maxPacketLifeTime:o,maxRetransmitTime:o,maxRetransmits:c,protocol:r};m.debug("receiveDataChannel() [options:%o]",d);const p=this._pc.createDataChannel(t,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation({oldDataChannelSpec:!0});const e={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();if(!this._transportReady){const e=a.parse(t.sdp);await this._setupTransport({localDtlsRole:null!==(i=this._forcedLocalDtlsRole)&&void 0!==i?i:"client",localSdpObject:e})}m.debug("receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setLocalDescription(t),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}async _setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=a.parse(this._pc.localDescription.sdp));const r=l.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole("client"===e?"server":"client"),await this.safeEmitAsPromise("@connect",{dtlsParameters:r}),this._transportReady=!0}_assertSendDirection(){if("send"!==this._direction)throw new Error('method can just be called for handlers with "send" direction')}_assertRecvDirection(){if("recv"!==this._direction)throw new Error('method can just be called for handlers with "recv" direction')}}t.Chrome55=b},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Firefox60=void 0;const a=n(r(8)),o=r(0),c=r(7),d=n(r(1)),p=n(r(4)),l=n(r(11)),h=n(r(17)),u=r(9),f=r(12),m=new o.Logger("Firefox60"),g={OS:16,MIS:2048};class b extends u.HandlerInterface{constructor(){super(),this._mapMidTransceiver=new Map,this._sendStream=new MediaStream,this._hasDataChannelMediaSection=!1,this._nextSendSctpStreamId=0,this._transportReady=!1}static createFactory(){return()=>new b}get name(){return"Firefox60"}close(){if(m.debug("close()"),this._pc)try{this._pc.close()}catch(e){}}async getNativeRtpCapabilities(){m.debug("getNativeRtpCapabilities()");const e=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"}),t=document.createElement("canvas");t.getContext("2d");const r=t.captureStream().getVideoTracks()[0];try{e.addTransceiver("audio",{direction:"sendrecv"});const i=e.addTransceiver(r,{direction:"sendrecv"}),s=i.sender.getParameters(),n=[{rid:"r0",maxBitrate:1e5},{rid:"r1",maxBitrate:5e5}];s.encodings=n,await i.sender.setParameters(s);const o=await e.createOffer();try{t.remove()}catch(e){}try{r.stop()}catch(e){}try{e.close()}catch(e){}const c=a.parse(o.sdp);return l.extractRtpCapabilities({sdpObject:c})}catch(i){try{t.remove()}catch(e){}try{r.stop()}catch(e){}try{e.close()}catch(e){}throw i}}async getNativeSctpCapabilities(){return m.debug("getNativeSctpCapabilities()"),{numStreams:g}}run({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,extendedRtpCapabilities:d}){m.debug("run()"),this._direction=e,this._remoteSdp=new f.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s}),this._sendingRtpParametersByKind={audio:p.getSendingRtpParameters("audio",d),video:p.getSendingRtpParameters("video",d)},this._sendingRemoteRtpParametersByKind={audio:p.getSendingRemoteRtpParameters("audio",d),video:p.getSendingRemoteRtpParameters("video",d)},this._pc=new RTCPeerConnection({iceServers:n||[],iceTransportPolicy:a||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...o},c),this._pc.addEventListener("iceconnectionstatechange",(()=>{switch(this._pc.iceConnectionState){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected");break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed")}}))}async updateIceServers(e){throw new c.UnsupportedError("not supported")}async restartIce(e){if(m.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),this._transportReady)if("send"===this._direction){const e=await this._pc.createOffer({iceRestart:!0});m.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e);const t={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setRemoteDescription(t)}else{const e={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();m.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",t),await this._pc.setLocalDescription(t)}}async getTransportStats(){return this._pc.getStats()}async send({track:e,encodings:t,codecOptions:r,codec:i}){this._assertSendDirection(),m.debug("send() [kind:%s, track.id:%s]",e.kind,e.id),t&&(t=d.clone(t,[])).length>1&&(t.forEach(((e,t)=>{e.rid="r"+t})),t.reverse());const s=d.clone(this._sendingRtpParametersByKind[e.kind],{});s.codecs=p.reduceCodecs(s.codecs,i);const n=d.clone(this._sendingRemoteRtpParametersByKind[e.kind],{});n.codecs=p.reduceCodecs(n.codecs,i);const o=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream]});if(t){const e=o.sender.getParameters();e.encodings=t,await o.sender.setParameters(e)}const c=await this._pc.createOffer();let u=a.parse(c.sdp);this._transportReady||await this._setupTransport({localDtlsRole:"client",localSdpObject:u}),m.debug("send() | calling pc.setLocalDescription() [offer:%o]",c),await this._pc.setLocalDescription(c);const f=o.mid;s.mid=f,u=a.parse(this._pc.localDescription.sdp);const g=u.media[u.media.length-1];if(s.rtcp.cname=l.getCname({offerMediaObject:g}),t)if(1===t.length){const e=h.getRtpEncodings({offerMediaObject:g});Object.assign(e[0],t[0]),s.encodings=e}else s.encodings=t.reverse();else s.encodings=h.getRtpEncodings({offerMediaObject:g});if(s.encodings.length>1&&("video/vp8"===s.codecs[0].mimeType.toLowerCase()||"video/h264"===s.codecs[0].mimeType.toLowerCase()))for(const e of s.encodings)e.scalabilityMode="S1T3";this._remoteSdp.send({offerMediaObject:g,offerRtpParameters:s,answerRtpParameters:n,codecOptions:r,extmapAllowMixed:!0});const b={type:"answer",sdp:this._remoteSdp.getSdp()};return m.debug("send() | calling pc.setRemoteDescription() [answer:%o]",b),await this._pc.setRemoteDescription(b),this._mapMidTransceiver.set(f,o),{localId:f,rtpParameters:s,rtpSender:o.sender}}async stopSending(e){m.debug("stopSending() [localId:%s]",e);const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated transceiver not found");t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.disableMediaSection(t.mid);const r=await this._pc.createOffer();m.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);const i={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._mapMidTransceiver.delete(e)}async replaceTrack(e,t){this._assertSendDirection(),t?m.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):m.debug("replaceTrack() [localId:%s, no track]",e);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");await r.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this._assertSendDirection(),m.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated transceiver not found");const i=r.sender.getParameters();t=i.encodings.length-1-t,i.encodings.forEach(((e,r)=>{e.active=r>=t})),await r.sender.setParameters(i)}async setRtpEncodingParameters(e,t){this._assertSendDirection(),m.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const i=r.sender.getParameters();i.encodings.forEach(((e,r)=>{i.encodings[r]={...e,...t}})),await r.sender.setParameters(i)}async getSenderStats(e){this._assertSendDirection();const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({ordered:e,maxPacketLifeTime:t,maxRetransmits:r,label:i,protocol:s}){this._assertSendDirection();const n={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e,maxPacketLifeTime:t,maxRetransmits:r,protocol:s};m.debug("sendDataChannel() [options:%o]",n);const o=this._pc.createDataChannel(i,n);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%g.MIS,!this._hasDataChannelMediaSection){const e=await this._pc.createOffer(),t=a.parse(e.sdp),r=t.media.find((e=>"application"===e.type));this._transportReady||await this._setupTransport({localDtlsRole:"client",localSdpObject:t}),m.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e),this._remoteSdp.sendSctpAssociation({offerMediaObject:r});const i={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._hasDataChannelMediaSection=!0}return{dataChannel:o,sctpStreamParameters:{streamId:n.id,ordered:n.ordered,maxPacketLifeTime:n.maxPacketLifeTime,maxRetransmits:n.maxRetransmits}}}async receive(e){this._assertRecvDirection();const t=[],r=new Map;for(const t of e){const{trackId:e,kind:i,rtpParameters:s}=t;m.debug("receive() [trackId:%s, kind:%s]",e,i);const n=s.mid||String(this._mapMidTransceiver.size);r.set(e,n),this._remoteSdp.receive({mid:n,kind:i,offerRtpParameters:s,streamId:s.rtcp.cname,trackId:e})}const i={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);let s=await this._pc.createAnswer();const n=a.parse(s.sdp);for(const t of e){const{trackId:e,rtpParameters:i}=t,o=r.get(e),c=n.media.find((e=>String(e.mid)===o));l.applyCodecParameters({offerRtpParameters:i,answerMediaObject:c}),s={type:"answer",sdp:a.write(n)}}this._transportReady||await this._setupTransport({localDtlsRole:"client",localSdpObject:n}),m.debug("receive() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s);for(const i of e){const{trackId:e}=i,s=r.get(e),n=this._pc.getTransceivers().find((e=>e.mid===s));if(!n)throw new Error("new RTCRtpTransceiver not found");this._mapMidTransceiver.set(s,n),t.push({localId:s,track:n.receiver.track,rtpReceiver:n.receiver})}return t}async stopReceiving(e){this._assertRecvDirection(),m.debug("stopReceiving() [localId:%s]",e);const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(t.mid);const r={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",r),await this._pc.setRemoteDescription(r);const i=await this._pc.createAnswer();m.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",i),await this._pc.setLocalDescription(i),this._mapMidTransceiver.delete(e)}async pauseReceiving(e){this._assertRecvDirection();for(const t of e){m.debug("pauseReceiving() [localId:%s]",t);const e=this._mapMidTransceiver.get(t);if(!e)throw new Error("associated RTCRtpTransceiver not found");e.direction="inactive"}const t={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);const r=await this._pc.createAnswer();m.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async resumeReceiving(e){this._assertRecvDirection();for(const t of e){m.debug("resumeReceiving() [localId:%s]",t);const e=this._mapMidTransceiver.get(t);if(!e)throw new Error("associated RTCRtpTransceiver not found");e.direction="recvonly"}const t={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);const r=await this._pc.createAnswer();m.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async getReceiverStats(e){this._assertRecvDirection();const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({sctpStreamParameters:e,label:t,protocol:r}){this._assertRecvDirection();const{streamId:i,ordered:s,maxPacketLifeTime:n,maxRetransmits:o}=e,c={negotiated:!0,id:i,ordered:s,maxPacketLifeTime:n,maxRetransmits:o,protocol:r};m.debug("receiveDataChannel() [options:%o]",c);const d=this._pc.createDataChannel(t,c);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();const e={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();if(!this._transportReady){const e=a.parse(t.sdp);await this._setupTransport({localDtlsRole:"client",localSdpObject:e})}m.debug("receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setLocalDescription(t),this._hasDataChannelMediaSection=!0}return{dataChannel:d}}async _setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=a.parse(this._pc.localDescription.sdp));const r=l.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole("client"===e?"server":"client"),await this.safeEmitAsPromise("@connect",{dtlsParameters:r}),this._transportReady=!0}_assertSendDirection(){if("send"!==this._direction)throw new Error('method can just be called for handlers with "send" direction')}_assertRecvDirection(){if("recv"!==this._direction)throw new Error('method can just be called for handlers with "recv" direction')}}t.Firefox60=b},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Safari12=void 0;const a=n(r(8)),o=r(0),c=n(r(1)),d=n(r(4)),p=n(r(11)),l=n(r(17)),h=r(9),u=r(12),f=new o.Logger("Safari12"),m={OS:1024,MIS:1024};class g extends h.HandlerInterface{constructor(){super(),this._mapMidTransceiver=new Map,this._sendStream=new MediaStream,this._hasDataChannelMediaSection=!1,this._nextSendSctpStreamId=0,this._transportReady=!1}static createFactory(){return()=>new g}get name(){return"Safari12"}close(){if(f.debug("close()"),this._pc)try{this._pc.close()}catch(e){}}async getNativeRtpCapabilities(){f.debug("getNativeRtpCapabilities()");const e=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"});try{e.addTransceiver("audio"),e.addTransceiver("video");const t=await e.createOffer();try{e.close()}catch(e){}const r=a.parse(t.sdp);return p.extractRtpCapabilities({sdpObject:r})}catch(t){try{e.close()}catch(e){}throw t}}async getNativeSctpCapabilities(){return f.debug("getNativeSctpCapabilities()"),{numStreams:m}}run({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,extendedRtpCapabilities:p}){f.debug("run()"),this._direction=e,this._remoteSdp=new u.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s}),this._sendingRtpParametersByKind={audio:d.getSendingRtpParameters("audio",p),video:d.getSendingRtpParameters("video",p)},this._sendingRemoteRtpParametersByKind={audio:d.getSendingRemoteRtpParameters("audio",p),video:d.getSendingRemoteRtpParameters("video",p)},i.role&&"auto"!==i.role&&(this._forcedLocalDtlsRole="server"===i.role?"client":"server"),this._pc=new RTCPeerConnection({iceServers:n||[],iceTransportPolicy:a||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...o},c),this._pc.addEventListener("iceconnectionstatechange",(()=>{switch(this._pc.iceConnectionState){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected");break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed")}}))}async updateIceServers(e){f.debug("updateIceServers()");const t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(f.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),this._transportReady)if("send"===this._direction){const e=await this._pc.createOffer({iceRestart:!0});f.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e);const t={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setRemoteDescription(t)}else{const e={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();f.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",t),await this._pc.setLocalDescription(t)}}async getTransportStats(){return this._pc.getStats()}async send({track:e,encodings:t,codecOptions:r,codec:i}){var s;this._assertSendDirection(),f.debug("send() [kind:%s, track.id:%s]",e.kind,e.id);const n=c.clone(this._sendingRtpParametersByKind[e.kind],{});n.codecs=d.reduceCodecs(n.codecs,i);const o=c.clone(this._sendingRemoteRtpParametersByKind[e.kind],{});o.codecs=d.reduceCodecs(o.codecs,i);const h=this._remoteSdp.getNextMediaSectionIdx(),u=this._pc.addTransceiver(e,{direction:"sendonly",streams:[this._sendStream]});let m,g=await this._pc.createOffer(),b=a.parse(g.sdp);this._transportReady||await this._setupTransport({localDtlsRole:null!==(s=this._forcedLocalDtlsRole)&&void 0!==s?s:"client",localSdpObject:b}),t&&t.length>1&&(f.debug("send() | enabling legacy simulcast"),b=a.parse(g.sdp),m=b.media[h.idx],l.addLegacySimulcast({offerMediaObject:m,numStreams:t.length}),g={type:"offer",sdp:a.write(b)}),f.debug("send() | calling pc.setLocalDescription() [offer:%o]",g),await this._pc.setLocalDescription(g);const v=u.mid;if(n.mid=v,b=a.parse(this._pc.localDescription.sdp),m=b.media[h.idx],n.rtcp.cname=p.getCname({offerMediaObject:m}),n.encodings=l.getRtpEncodings({offerMediaObject:m}),t)for(let e=0;e<n.encodings.length;++e)t[e]&&Object.assign(n.encodings[e],t[e]);if(n.encodings.length>1&&("video/vp8"===n.codecs[0].mimeType.toLowerCase()||"video/h264"===n.codecs[0].mimeType.toLowerCase()))for(const e of n.encodings)e.scalabilityMode="S1T3";this._remoteSdp.send({offerMediaObject:m,reuseMid:h.reuseMid,offerRtpParameters:n,answerRtpParameters:o,codecOptions:r});const w={type:"answer",sdp:this._remoteSdp.getSdp()};return f.debug("send() | calling pc.setRemoteDescription() [answer:%o]",w),await this._pc.setRemoteDescription(w),this._mapMidTransceiver.set(v,u),{localId:v,rtpParameters:n,rtpSender:u.sender}}async stopSending(e){this._assertSendDirection(),f.debug("stopSending() [localId:%s]",e);const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");t.sender.replaceTrack(null),this._pc.removeTrack(t.sender),this._remoteSdp.closeMediaSection(t.mid);const r=await this._pc.createOffer();f.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",r),await this._pc.setLocalDescription(r);const i={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._mapMidTransceiver.delete(e)}async replaceTrack(e,t){this._assertSendDirection(),t?f.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):f.debug("replaceTrack() [localId:%s, no track]",e);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");await r.sender.replaceTrack(t)}async setMaxSpatialLayer(e,t){this._assertSendDirection(),f.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const i=r.sender.getParameters();i.encodings.forEach(((e,r)=>{e.active=r<=t})),await r.sender.setParameters(i)}async setRtpEncodingParameters(e,t){this._assertSendDirection(),f.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);const r=this._mapMidTransceiver.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const i=r.sender.getParameters();i.encodings.forEach(((e,r)=>{i.encodings[r]={...e,...t}})),await r.sender.setParameters(i)}async getSenderStats(e){this._assertSendDirection();const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.sender.getStats()}async sendDataChannel({ordered:e,maxPacketLifeTime:t,maxRetransmits:r,label:i,protocol:s}){var n;this._assertSendDirection();const o={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e,maxPacketLifeTime:t,maxRetransmits:r,protocol:s};f.debug("sendDataChannel() [options:%o]",o);const c=this._pc.createDataChannel(i,o);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%m.MIS,!this._hasDataChannelMediaSection){const e=await this._pc.createOffer(),t=a.parse(e.sdp),r=t.media.find((e=>"application"===e.type));this._transportReady||await this._setupTransport({localDtlsRole:null!==(n=this._forcedLocalDtlsRole)&&void 0!==n?n:"client",localSdpObject:t}),f.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e),this._remoteSdp.sendSctpAssociation({offerMediaObject:r});const i={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._hasDataChannelMediaSection=!0}return{dataChannel:c,sctpStreamParameters:{streamId:o.id,ordered:o.ordered,maxPacketLifeTime:o.maxPacketLifeTime,maxRetransmits:o.maxRetransmits}}}async receive(e){var t;this._assertRecvDirection();const r=[],i=new Map;for(const t of e){const{trackId:e,kind:r,rtpParameters:s}=t;f.debug("receive() [trackId:%s, kind:%s]",e,r);const n=s.mid||String(this._mapMidTransceiver.size);i.set(e,n),this._remoteSdp.receive({mid:n,kind:r,offerRtpParameters:s,streamId:s.rtcp.cname,trackId:e})}const s={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",s),await this._pc.setRemoteDescription(s);let n=await this._pc.createAnswer();const o=a.parse(n.sdp);for(const t of e){const{trackId:e,rtpParameters:r}=t,s=i.get(e),n=o.media.find((e=>String(e.mid)===s));p.applyCodecParameters({offerRtpParameters:r,answerMediaObject:n})}n={type:"answer",sdp:a.write(o)},this._transportReady||await this._setupTransport({localDtlsRole:null!==(t=this._forcedLocalDtlsRole)&&void 0!==t?t:"client",localSdpObject:o}),f.debug("receive() | calling pc.setLocalDescription() [answer:%o]",n),await this._pc.setLocalDescription(n);for(const t of e){const{trackId:e}=t,s=i.get(e),n=this._pc.getTransceivers().find((e=>e.mid===s));if(!n)throw new Error("new RTCRtpTransceiver not found");this._mapMidTransceiver.set(s,n),r.push({localId:s,track:n.receiver.track,rtpReceiver:n.receiver})}return r}async stopReceiving(e){this._assertRecvDirection(),f.debug("stopReceiving() [localId:%s]",e);const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");this._remoteSdp.closeMediaSection(t.mid);const r={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",r),await this._pc.setRemoteDescription(r);const i=await this._pc.createAnswer();f.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",i),await this._pc.setLocalDescription(i),this._mapMidTransceiver.delete(e)}async pauseReceiving(e){this._assertRecvDirection();for(const t of e){f.debug("pauseReceiving() [localId:%s]",t);const e=this._mapMidTransceiver.get(t);if(!e)throw new Error("associated RTCRtpTransceiver not found");e.direction="inactive"}const t={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("pauseReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);const r=await this._pc.createAnswer();f.debug("pauseReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async resumeReceiving(e){this._assertRecvDirection();for(const t of e){f.debug("resumeReceiving() [localId:%s]",t);const e=this._mapMidTransceiver.get(t);if(!e)throw new Error("associated RTCRtpTransceiver not found");e.direction="recvonly"}const t={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("resumeReceiving() | calling pc.setRemoteDescription() [offer:%o]",t),await this._pc.setRemoteDescription(t);const r=await this._pc.createAnswer();f.debug("resumeReceiving() | calling pc.setLocalDescription() [answer:%o]",r),await this._pc.setLocalDescription(r)}async getReceiverStats(e){this._assertRecvDirection();const t=this._mapMidTransceiver.get(e);if(!t)throw new Error("associated RTCRtpTransceiver not found");return t.receiver.getStats()}async receiveDataChannel({sctpStreamParameters:e,label:t,protocol:r}){var i;this._assertRecvDirection();const{streamId:s,ordered:n,maxPacketLifeTime:o,maxRetransmits:c}=e,d={negotiated:!0,id:s,ordered:n,maxPacketLifeTime:o,maxRetransmits:c,protocol:r};f.debug("receiveDataChannel() [options:%o]",d);const p=this._pc.createDataChannel(t,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation();const e={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();if(!this._transportReady){const e=a.parse(t.sdp);await this._setupTransport({localDtlsRole:null!==(i=this._forcedLocalDtlsRole)&&void 0!==i?i:"client",localSdpObject:e})}f.debug("receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setLocalDescription(t),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}async _setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=a.parse(this._pc.localDescription.sdp));const r=p.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole("client"===e?"server":"client"),await this.safeEmitAsPromise("@connect",{dtlsParameters:r}),this._transportReady=!0}_assertSendDirection(){if("send"!==this._direction)throw new Error('method can just be called for handlers with "send" direction')}_assertRecvDirection(){if("recv"!==this._direction)throw new Error('method can just be called for handlers with "recv" direction')}}t.Safari12=g},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Safari11=void 0;const a=n(r(8)),o=r(0),c=n(r(1)),d=n(r(4)),p=n(r(11)),l=n(r(18)),h=r(9),u=r(12),f=new o.Logger("Safari11"),m={OS:1024,MIS:1024};class g extends h.HandlerInterface{constructor(){super(),this._sendStream=new MediaStream,this._mapSendLocalIdRtpSender=new Map,this._nextSendLocalId=0,this._mapRecvLocalIdInfo=new Map,this._hasDataChannelMediaSection=!1,this._nextSendSctpStreamId=0,this._transportReady=!1}static createFactory(){return()=>new g}get name(){return"Safari11"}close(){if(f.debug("close()"),this._pc)try{this._pc.close()}catch(e){}}async getNativeRtpCapabilities(){f.debug("getNativeRtpCapabilities()");const e=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"plan-b"});try{const t=await e.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});try{e.close()}catch(e){}const r=a.parse(t.sdp);return p.extractRtpCapabilities({sdpObject:r})}catch(t){try{e.close()}catch(e){}throw t}}async getNativeSctpCapabilities(){return f.debug("getNativeSctpCapabilities()"),{numStreams:m}}run({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,extendedRtpCapabilities:p}){f.debug("run()"),this._direction=e,this._remoteSdp=new u.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,planB:!0}),this._sendingRtpParametersByKind={audio:d.getSendingRtpParameters("audio",p),video:d.getSendingRtpParameters("video",p)},this._sendingRemoteRtpParametersByKind={audio:d.getSendingRemoteRtpParameters("audio",p),video:d.getSendingRemoteRtpParameters("video",p)},i.role&&"auto"!==i.role&&(this._forcedLocalDtlsRole="server"===i.role?"client":"server"),this._pc=new RTCPeerConnection({iceServers:n||[],iceTransportPolicy:a||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",...o},c),this._pc.addEventListener("iceconnectionstatechange",(()=>{switch(this._pc.iceConnectionState){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected");break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed")}}))}async updateIceServers(e){f.debug("updateIceServers()");const t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(f.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),this._transportReady)if("send"===this._direction){const e=await this._pc.createOffer({iceRestart:!0});f.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e);const t={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setRemoteDescription(t)}else{const e={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();f.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",t),await this._pc.setLocalDescription(t)}}async getTransportStats(){return this._pc.getStats()}async send({track:e,encodings:t,codecOptions:r,codec:i}){var s;this._assertSendDirection(),f.debug("send() [kind:%s, track.id:%s]",e.kind,e.id),i&&f.warn("send() | codec selection is not available in %s handler",this.name),this._sendStream.addTrack(e),this._pc.addTrack(e,this._sendStream);let n,o=await this._pc.createOffer(),h=a.parse(o.sdp);const u=c.clone(this._sendingRtpParametersByKind[e.kind],{});u.codecs=d.reduceCodecs(u.codecs);const m=c.clone(this._sendingRemoteRtpParametersByKind[e.kind],{});if(m.codecs=d.reduceCodecs(m.codecs),this._transportReady||await this._setupTransport({localDtlsRole:null!==(s=this._forcedLocalDtlsRole)&&void 0!==s?s:"client",localSdpObject:h}),"video"===e.kind&&t&&t.length>1&&(f.debug("send() | enabling simulcast"),h=a.parse(o.sdp),n=h.media.find((e=>"video"===e.type)),l.addLegacySimulcast({offerMediaObject:n,track:e,numStreams:t.length}),o={type:"offer",sdp:a.write(h)}),f.debug("send() | calling pc.setLocalDescription() [offer:%o]",o),await this._pc.setLocalDescription(o),h=a.parse(this._pc.localDescription.sdp),n=h.media.find((t=>t.type===e.kind)),u.rtcp.cname=p.getCname({offerMediaObject:n}),u.encodings=l.getRtpEncodings({offerMediaObject:n,track:e}),t)for(let e=0;e<u.encodings.length;++e)t[e]&&Object.assign(u.encodings[e],t[e]);if(u.encodings.length>1&&"video/vp8"===u.codecs[0].mimeType.toLowerCase())for(const e of u.encodings)e.scalabilityMode="S1T3";this._remoteSdp.send({offerMediaObject:n,offerRtpParameters:u,answerRtpParameters:m,codecOptions:r});const g={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("send() | calling pc.setRemoteDescription() [answer:%o]",g),await this._pc.setRemoteDescription(g);const b=String(this._nextSendLocalId);this._nextSendLocalId++;const v=this._pc.getSenders().find((t=>t.track===e));return this._mapSendLocalIdRtpSender.set(b,v),{localId:b,rtpParameters:u,rtpSender:v}}async stopSending(e){this._assertSendDirection();const t=this._mapSendLocalIdRtpSender.get(e);if(!t)throw new Error("associated RTCRtpSender not found");t.track&&this._sendStream.removeTrack(t.track),this._mapSendLocalIdRtpSender.delete(e);const r=await this._pc.createOffer();f.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",r);try{await this._pc.setLocalDescription(r)}catch(e){if(0===this._sendStream.getTracks().length)return void f.warn("stopSending() | ignoring expected error due no sending tracks: %s",e.toString());throw e}if("stable"===this._pc.signalingState)return;const i={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async replaceTrack(e,t){this._assertSendDirection(),t?f.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):f.debug("replaceTrack() [localId:%s, no track]",e);const r=this._mapSendLocalIdRtpSender.get(e);if(!r)throw new Error("associated RTCRtpSender not found");const i=r.track;await r.replaceTrack(t),i&&this._sendStream.removeTrack(i),t&&this._sendStream.addTrack(t)}async setMaxSpatialLayer(e,t){this._assertSendDirection(),f.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);const r=this._mapSendLocalIdRtpSender.get(e);if(!r)throw new Error("associated RTCRtpSender not found");const i=r.getParameters();i.encodings.forEach(((e,r)=>{e.active=r<=t})),await r.setParameters(i)}async setRtpEncodingParameters(e,t){this._assertSendDirection(),f.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);const r=this._mapSendLocalIdRtpSender.get(e);if(!r)throw new Error("associated RTCRtpSender not found");const i=r.getParameters();i.encodings.forEach(((e,r)=>{i.encodings[r]={...e,...t}})),await r.setParameters(i)}async getSenderStats(e){this._assertSendDirection();const t=this._mapSendLocalIdRtpSender.get(e);if(!t)throw new Error("associated RTCRtpSender not found");return t.getStats()}async sendDataChannel({ordered:e,maxPacketLifeTime:t,maxRetransmits:r,label:i,protocol:s}){var n;this._assertSendDirection();const o={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e,maxPacketLifeTime:t,maxRetransmits:r,protocol:s};f.debug("sendDataChannel() [options:%o]",o);const c=this._pc.createDataChannel(i,o);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%m.MIS,!this._hasDataChannelMediaSection){const e=await this._pc.createOffer(),t=a.parse(e.sdp),r=t.media.find((e=>"application"===e.type));this._transportReady||await this._setupTransport({localDtlsRole:null!==(n=this._forcedLocalDtlsRole)&&void 0!==n?n:"client",localSdpObject:t}),f.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e),this._remoteSdp.sendSctpAssociation({offerMediaObject:r});const i={type:"answer",sdp:this._remoteSdp.getSdp()};f.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._hasDataChannelMediaSection=!0}return{dataChannel:c,sctpStreamParameters:{streamId:o.id,ordered:o.ordered,maxPacketLifeTime:o.maxPacketLifeTime,maxRetransmits:o.maxRetransmits}}}async receive(e){var t;this._assertRecvDirection();const r=[];for(const t of e){const{trackId:e,kind:r,rtpParameters:i}=t;f.debug("receive() [trackId:%s, kind:%s]",e,r);const s=r;this._remoteSdp.receive({mid:s,kind:r,offerRtpParameters:i,streamId:i.rtcp.cname,trackId:e})}const i={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);let s=await this._pc.createAnswer();const n=a.parse(s.sdp);for(const t of e){const{kind:e,rtpParameters:r}=t,i=e,s=n.media.find((e=>String(e.mid)===i));p.applyCodecParameters({offerRtpParameters:r,answerMediaObject:s})}s={type:"answer",sdp:a.write(n)},this._transportReady||await this._setupTransport({localDtlsRole:null!==(t=this._forcedLocalDtlsRole)&&void 0!==t?t:"client",localSdpObject:n}),f.debug("receive() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s);for(const t of e){const{kind:e,trackId:i,rtpParameters:s}=t,n=e,a=i,o=this._pc.getReceivers().find((e=>e.track&&e.track.id===a));if(!o)throw new Error("new RTCRtpReceiver not");this._mapRecvLocalIdInfo.set(a,{mid:n,rtpParameters:s,rtpReceiver:o}),r.push({localId:a,track:o.track,rtpReceiver:o})}return r}async stopReceiving(e){this._assertRecvDirection(),f.debug("stopReceiving() [localId:%s]",e);const{mid:t,rtpParameters:r}=this._mapRecvLocalIdInfo.get(e)||{};this._mapRecvLocalIdInfo.delete(e),this._remoteSdp.planBStopReceiving({mid:t,offerRtpParameters:r});const i={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);const s=await this._pc.createAnswer();f.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async getReceiverStats(e){this._assertRecvDirection();const{rtpReceiver:t}=this._mapRecvLocalIdInfo.get(e)||{};if(!t)throw new Error("associated RTCRtpReceiver not found");return t.getStats()}async pauseReceiving(e){}async resumeReceiving(e){}async receiveDataChannel({sctpStreamParameters:e,label:t,protocol:r}){var i;this._assertRecvDirection();const{streamId:s,ordered:n,maxPacketLifeTime:o,maxRetransmits:c}=e,d={negotiated:!0,id:s,ordered:n,maxPacketLifeTime:o,maxRetransmits:c,protocol:r};f.debug("receiveDataChannel() [options:%o]",d);const p=this._pc.createDataChannel(t,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation({oldDataChannelSpec:!0});const e={type:"offer",sdp:this._remoteSdp.getSdp()};f.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();if(!this._transportReady){const e=a.parse(t.sdp);await this._setupTransport({localDtlsRole:null!==(i=this._forcedLocalDtlsRole)&&void 0!==i?i:"client",localSdpObject:e})}f.debug("receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setLocalDescription(t),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}async _setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=a.parse(this._pc.localDescription.sdp));const r=p.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole("client"===e?"server":"client"),await this.safeEmitAsPromise("@connect",{dtlsParameters:r}),this._transportReady=!0}_assertSendDirection(){if("send"!==this._direction)throw new Error('method can just be called for handlers with "send" direction')}_assertRecvDirection(){if("recv"!==this._direction)throw new Error('method can just be called for handlers with "recv" direction')}}t.Safari11=g},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Edge11=void 0;const a=r(0),o=r(7),c=n(r(1)),d=n(r(4)),p=n(r(54)),l=r(9),h=new a.Logger("Edge11");class u extends l.HandlerInterface{constructor(){super(),this._rtpSenders=new Map,this._rtpReceivers=new Map,this._nextSendLocalId=0,this._transportReady=!1}static createFactory(){return()=>new u}get name(){return"Edge11"}close(){h.debug("close()");try{this._iceGatherer.close()}catch(e){}try{this._iceTransport.stop()}catch(e){}try{this._dtlsTransport.stop()}catch(e){}for(const e of this._rtpSenders.values())try{e.stop()}catch(e){}for(const e of this._rtpReceivers.values())try{e.stop()}catch(e){}}async getNativeRtpCapabilities(){return h.debug("getNativeRtpCapabilities()"),p.getCapabilities()}async getNativeSctpCapabilities(){return h.debug("getNativeSctpCapabilities()"),{numStreams:{OS:0,MIS:0}}}run({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:p,extendedRtpCapabilities:l}){h.debug("run()"),this._sendingRtpParametersByKind={audio:d.getSendingRtpParameters("audio",l),video:d.getSendingRtpParameters("video",l)},this._remoteIceParameters=t,this._remoteIceCandidates=r,this._remoteDtlsParameters=i,this._cname="CNAME-"+c.generateRandomNumber(),this._setIceGatherer({iceServers:n,iceTransportPolicy:a}),this._setIceTransport(),this._setDtlsTransport()}async updateIceServers(e){throw new o.UnsupportedError("not supported")}async restartIce(e){if(h.debug("restartIce()"),this._remoteIceParameters=e,this._transportReady){h.debug("restartIce() | calling iceTransport.start()"),this._iceTransport.start(this._iceGatherer,e,"controlling");for(const e of this._remoteIceCandidates)this._iceTransport.addRemoteCandidate(e);this._iceTransport.addRemoteCandidate({})}}async getTransportStats(){return this._iceTransport.getStats()}async send({track:e,encodings:t,codecOptions:r,codec:i}){h.debug("send() [kind:%s, track.id:%s]",e.kind,e.id),this._transportReady||await this._setupTransport({localDtlsRole:"server"}),h.debug("send() | calling new RTCRtpSender()");const s=new RTCRtpSender(e,this._dtlsTransport),n=c.clone(this._sendingRtpParametersByKind[e.kind],{});n.codecs=d.reduceCodecs(n.codecs,i);const a=n.codecs.some((e=>/.+\/rtx$/i.test(e.mimeType)));t||(t=[{}]);for(const e of t)e.ssrc=c.generateRandomNumber(),a&&(e.rtx={ssrc:c.generateRandomNumber()});n.encodings=t,n.rtcp={cname:this._cname,reducedSize:!0,mux:!0};const o=p.mangleRtpParameters(n);h.debug("send() | calling rtpSender.send() [params:%o]",o),await s.send(o);const l=String(this._nextSendLocalId);return this._nextSendLocalId++,this._rtpSenders.set(l,s),{localId:l,rtpParameters:n,rtpSender:s}}async stopSending(e){h.debug("stopSending() [localId:%s]",e);const t=this._rtpSenders.get(e);if(!t)throw new Error("RTCRtpSender not found");this._rtpSenders.delete(e);try{h.debug("stopSending() | calling rtpSender.stop()"),t.stop()}catch(e){throw h.warn("stopSending() | rtpSender.stop() failed:%o",e),e}}async replaceTrack(e,t){t?h.debug("replaceTrack() [localId:%s, track.id:%s]",e,t.id):h.debug("replaceTrack() [localId:%s, no track]",e);const r=this._rtpSenders.get(e);if(!r)throw new Error("RTCRtpSender not found");r.setTrack(t)}async setMaxSpatialLayer(e,t){h.debug("setMaxSpatialLayer() [localId:%s, spatialLayer:%s]",e,t);const r=this._rtpSenders.get(e);if(!r)throw new Error("RTCRtpSender not found");const i=r.getParameters();i.encodings.forEach(((e,r)=>{e.active=r<=t})),await r.setParameters(i)}async setRtpEncodingParameters(e,t){h.debug("setRtpEncodingParameters() [localId:%s, params:%o]",e,t);const r=this._rtpSenders.get(e);if(!r)throw new Error("RTCRtpSender not found");const i=r.getParameters();i.encodings.forEach(((e,r)=>{i.encodings[r]={...e,...t}})),await r.setParameters(i)}async getSenderStats(e){const t=this._rtpSenders.get(e);if(!t)throw new Error("RTCRtpSender not found");return t.getStats()}async sendDataChannel(e){throw new o.UnsupportedError("not implemented")}async receive(e){const t=[];for(const t of e){const{trackId:e,kind:r}=t;h.debug("receive() [trackId:%s, kind:%s]",e,r)}this._transportReady||await this._setupTransport({localDtlsRole:"server"});for(const r of e){const{trackId:e,kind:i,rtpParameters:s}=r;h.debug("receive() | calling new RTCRtpReceiver()");const n=new RTCRtpReceiver(this._dtlsTransport,i);n.addEventListener("error",(e=>{h.error('rtpReceiver "error" event [event:%o]',e)}));const a=p.mangleRtpParameters(s);h.debug("receive() | calling rtpReceiver.receive() [params:%o]",a),await n.receive(a);const o=e;this._rtpReceivers.set(o,n),t.push({localId:o,track:n.track,rtpReceiver:n})}return t}async stopReceiving(e){h.debug("stopReceiving() [localId:%s]",e);const t=this._rtpReceivers.get(e);if(!t)throw new Error("RTCRtpReceiver not found");this._rtpReceivers.delete(e);try{h.debug("stopReceiving() | calling rtpReceiver.stop()"),t.stop()}catch(e){h.warn("stopReceiving() | rtpReceiver.stop() failed:%o",e)}}async pauseReceiving(e){}async resumeReceiving(e){}async getReceiverStats(e){const t=this._rtpReceivers.get(e);if(!t)throw new Error("RTCRtpReceiver not found");return t.getStats()}async receiveDataChannel(e){throw new o.UnsupportedError("not implemented")}_setIceGatherer({iceServers:e,iceTransportPolicy:t}){const r=new RTCIceGatherer({iceServers:e||[],gatherPolicy:t||"all"});r.addEventListener("error",(e=>{h.error('iceGatherer "error" event [event:%o]',e)}));try{r.gather()}catch(e){h.debug("_setIceGatherer() | iceGatherer.gather() failed: %s",e.toString())}this._iceGatherer=r}_setIceTransport(){const e=new RTCIceTransport(this._iceGatherer);e.addEventListener("statechange",(()=>{switch(e.state){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected");break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed")}})),e.addEventListener("icestatechange",(()=>{switch(e.state){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected");break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed")}})),e.addEventListener("candidatepairchange",(e=>{h.debug('iceTransport "candidatepairchange" event [pair:%o]',e.pair)})),this._iceTransport=e}_setDtlsTransport(){const e=new RTCDtlsTransport(this._iceTransport);e.addEventListener("statechange",(()=>{h.debug('dtlsTransport "statechange" event [state:%s]',e.state)})),e.addEventListener("dtlsstatechange",(()=>{h.debug('dtlsTransport "dtlsstatechange" event [state:%s]',e.state),"closed"===e.state&&this.emit("@connectionstatechange","closed")})),e.addEventListener("error",(e=>{h.error('dtlsTransport "error" event [event:%o]',e)})),this._dtlsTransport=e}async _setupTransport({localDtlsRole:e}){h.debug("_setupTransport()");const t=this._dtlsTransport.getLocalParameters();t.role=e,await this.safeEmitAsPromise("@connect",{dtlsParameters:t}),this._iceTransport.start(this._iceGatherer,this._remoteIceParameters,"controlling");for(const e of this._remoteIceCandidates)this._iceTransport.addRemoteCandidate(e);this._iceTransport.addRemoteCandidate({}),this._remoteDtlsParameters.fingerprints=this._remoteDtlsParameters.fingerprints.filter((e=>"sha-256"===e.algorithm||"sha-384"===e.algorithm||"sha-512"===e.algorithm)),this._dtlsTransport.start(this._remoteDtlsParameters),this._transportReady=!0}}t.Edge11=u},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.mangleRtpParameters=t.getCapabilities=void 0;const a=n(r(1));t.getCapabilities=function(){const e=RTCRtpReceiver.getCapabilities(),t=a.clone(e,{});for(const e of t.codecs){if(e.channels=e.numChannels,delete e.numChannels,e.mimeType=e.mimeType||`${e.kind}/${e.name}`,e.parameters){const t=e.parameters;t.apt&&(t.apt=Number(t.apt)),t["packetization-mode"]&&(t["packetization-mode"]=Number(t["packetization-mode"]))}for(const t of e.rtcpFeedback||[])t.parameter||(t.parameter="")}return t},t.mangleRtpParameters=function(e){const t=a.clone(e,{});t.mid&&(t.muxId=t.mid,delete t.mid);for(const e of t.codecs)e.channels&&(e.numChannels=e.channels,delete e.channels),e.mimeType&&!e.name&&(e.name=e.mimeType.split("/")[1]),delete e.mimeType;return t}},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&i(t,e,r);return s(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.ReactNative=void 0;const a=n(r(8)),o=r(0),c=r(7),d=n(r(1)),p=n(r(4)),l=n(r(11)),h=n(r(18)),u=r(9),f=r(12),m=new o.Logger("ReactNative"),g={OS:1024,MIS:1024};class b extends u.HandlerInterface{constructor(){super(),this._sendStream=new MediaStream,this._mapSendLocalIdTrack=new Map,this._nextSendLocalId=0,this._mapRecvLocalIdInfo=new Map,this._hasDataChannelMediaSection=!1,this._nextSendSctpStreamId=0,this._transportReady=!1}static createFactory(){return()=>new b}get name(){return"ReactNative"}close(){if(m.debug("close()"),this._sendStream.release(!1),this._pc)try{this._pc.close()}catch(e){}}async getNativeRtpCapabilities(){m.debug("getNativeRtpCapabilities()");const e=new RTCPeerConnection({iceServers:[],iceTransportPolicy:"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"plan-b"});try{const t=await e.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});try{e.close()}catch(e){}const r=a.parse(t.sdp);return l.extractRtpCapabilities({sdpObject:r})}catch(t){try{e.close()}catch(e){}throw t}}async getNativeSctpCapabilities(){return m.debug("getNativeSctpCapabilities()"),{numStreams:g}}run({direction:e,iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,iceServers:n,iceTransportPolicy:a,additionalSettings:o,proprietaryConstraints:c,extendedRtpCapabilities:d}){m.debug("run()"),this._direction=e,this._remoteSdp=new f.RemoteSdp({iceParameters:t,iceCandidates:r,dtlsParameters:i,sctpParameters:s,planB:!0}),this._sendingRtpParametersByKind={audio:p.getSendingRtpParameters("audio",d),video:p.getSendingRtpParameters("video",d)},this._sendingRemoteRtpParametersByKind={audio:p.getSendingRemoteRtpParameters("audio",d),video:p.getSendingRemoteRtpParameters("video",d)},i.role&&"auto"!==i.role&&(this._forcedLocalDtlsRole="server"===i.role?"client":"server"),this._pc=new RTCPeerConnection({iceServers:n||[],iceTransportPolicy:a||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"plan-b",...o},c),this._pc.addEventListener("iceconnectionstatechange",(()=>{switch(this._pc.iceConnectionState){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected");break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed")}}))}async updateIceServers(e){m.debug("updateIceServers()");const t=this._pc.getConfiguration();t.iceServers=e,this._pc.setConfiguration(t)}async restartIce(e){if(m.debug("restartIce()"),this._remoteSdp.updateIceParameters(e),this._transportReady)if("send"===this._direction){const e=await this._pc.createOffer({iceRestart:!0});m.debug("restartIce() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e);const t={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("restartIce() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setRemoteDescription(t)}else{const e={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("restartIce() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();m.debug("restartIce() | calling pc.setLocalDescription() [answer:%o]",t),await this._pc.setLocalDescription(t)}}async getTransportStats(){return this._pc.getStats()}async send({track:e,encodings:t,codecOptions:r,codec:i}){var s;this._assertSendDirection(),m.debug("send() [kind:%s, track.id:%s]",e.kind,e.id),i&&m.warn("send() | codec selection is not available in %s handler",this.name),this._sendStream.addTrack(e),this._pc.addStream(this._sendStream);let n,o=await this._pc.createOffer(),c=a.parse(o.sdp);const u=d.clone(this._sendingRtpParametersByKind[e.kind],{});u.codecs=p.reduceCodecs(u.codecs);const f=d.clone(this._sendingRemoteRtpParametersByKind[e.kind],{});if(f.codecs=p.reduceCodecs(f.codecs),this._transportReady||await this._setupTransport({localDtlsRole:null!==(s=this._forcedLocalDtlsRole)&&void 0!==s?s:"client",localSdpObject:c}),"video"===e.kind&&t&&t.length>1&&(m.debug("send() | enabling simulcast"),c=a.parse(o.sdp),n=c.media.find((e=>"video"===e.type)),h.addLegacySimulcast({offerMediaObject:n,track:e,numStreams:t.length}),o={type:"offer",sdp:a.write(c)}),m.debug("send() | calling pc.setLocalDescription() [offer:%o]",o),await this._pc.setLocalDescription(o),c=a.parse(this._pc.localDescription.sdp),n=c.media.find((t=>t.type===e.kind)),u.rtcp.cname=l.getCname({offerMediaObject:n}),u.encodings=h.getRtpEncodings({offerMediaObject:n,track:e}),t)for(let e=0;e<u.encodings.length;++e)t[e]&&Object.assign(u.encodings[e],t[e]);if(u.encodings.length>1&&("video/vp8"===u.codecs[0].mimeType.toLowerCase()||"video/h264"===u.codecs[0].mimeType.toLowerCase()))for(const e of u.encodings)e.scalabilityMode="S1T3";this._remoteSdp.send({offerMediaObject:n,offerRtpParameters:u,answerRtpParameters:f,codecOptions:r});const g={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("send() | calling pc.setRemoteDescription() [answer:%o]",g),await this._pc.setRemoteDescription(g);const b=String(this._nextSendLocalId);return this._nextSendLocalId++,this._mapSendLocalIdTrack.set(b,e),{localId:b,rtpParameters:u}}async stopSending(e){this._assertSendDirection(),m.debug("stopSending() [localId:%s]",e);const t=this._mapSendLocalIdTrack.get(e);if(!t)throw new Error("track not found");this._mapSendLocalIdTrack.delete(e),this._sendStream.removeTrack(t),this._pc.addStream(this._sendStream);const r=await this._pc.createOffer();m.debug("stopSending() | calling pc.setLocalDescription() [offer:%o]",r);try{await this._pc.setLocalDescription(r)}catch(e){if(0===this._sendStream.getTracks().length)return void m.warn("stopSending() | ignoring expected error due no sending tracks: %s",e.toString());throw e}if("stable"===this._pc.signalingState)return;const i={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("stopSending() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i)}async replaceTrack(e,t){throw new c.UnsupportedError("not implemented")}async setMaxSpatialLayer(e,t){throw new c.UnsupportedError("not implemented")}async setRtpEncodingParameters(e,t){throw new c.UnsupportedError("not implemented")}async getSenderStats(e){throw new c.UnsupportedError("not implemented")}async sendDataChannel({ordered:e,maxPacketLifeTime:t,maxRetransmits:r,label:i,protocol:s}){var n;this._assertSendDirection();const o={negotiated:!0,id:this._nextSendSctpStreamId,ordered:e,maxPacketLifeTime:t,maxRetransmitTime:t,maxRetransmits:r,protocol:s};m.debug("sendDataChannel() [options:%o]",o);const c=this._pc.createDataChannel(i,o);if(this._nextSendSctpStreamId=++this._nextSendSctpStreamId%g.MIS,!this._hasDataChannelMediaSection){const e=await this._pc.createOffer(),t=a.parse(e.sdp),r=t.media.find((e=>"application"===e.type));this._transportReady||await this._setupTransport({localDtlsRole:null!==(n=this._forcedLocalDtlsRole)&&void 0!==n?n:"client",localSdpObject:t}),m.debug("sendDataChannel() | calling pc.setLocalDescription() [offer:%o]",e),await this._pc.setLocalDescription(e),this._remoteSdp.sendSctpAssociation({offerMediaObject:r});const i={type:"answer",sdp:this._remoteSdp.getSdp()};m.debug("sendDataChannel() | calling pc.setRemoteDescription() [answer:%o]",i),await this._pc.setRemoteDescription(i),this._hasDataChannelMediaSection=!0}return{dataChannel:c,sctpStreamParameters:{streamId:o.id,ordered:o.ordered,maxPacketLifeTime:o.maxPacketLifeTime,maxRetransmits:o.maxRetransmits}}}async receive(e){var t;this._assertRecvDirection();const r=[],i=new Map;for(const t of e){const{trackId:e,kind:r,rtpParameters:s}=t;m.debug("receive() [trackId:%s, kind:%s]",e,r);const n=r;let a=s.rtcp.cname;m.debug("receive() | forcing a random remote streamId to avoid well known bug in react-native-webrtc"),a+="-hack-"+d.generateRandomNumber(),i.set(e,a),this._remoteSdp.receive({mid:n,kind:r,offerRtpParameters:s,streamId:a,trackId:e})}const s={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("receive() | calling pc.setRemoteDescription() [offer:%o]",s),await this._pc.setRemoteDescription(s);let n=await this._pc.createAnswer();const o=a.parse(n.sdp);for(const t of e){const{kind:e,rtpParameters:r}=t,i=e,s=o.media.find((e=>String(e.mid)===i));l.applyCodecParameters({offerRtpParameters:r,answerMediaObject:s})}n={type:"answer",sdp:a.write(o)},this._transportReady||await this._setupTransport({localDtlsRole:null!==(t=this._forcedLocalDtlsRole)&&void 0!==t?t:"client",localSdpObject:o}),m.debug("receive() | calling pc.setLocalDescription() [answer:%o]",n),await this._pc.setLocalDescription(n);for(const t of e){const{kind:e,trackId:s,rtpParameters:n}=t,a=s,o=e,c=i.get(s),d=this._pc.getRemoteStreams().find((e=>e.id===c)).getTrackById(a);if(!d)throw new Error("remote track not found");this._mapRecvLocalIdInfo.set(a,{mid:o,rtpParameters:n}),r.push({localId:a,track:d})}return r}async stopReceiving(e){this._assertRecvDirection(),m.debug("stopReceiving() [localId:%s]",e);const{mid:t,rtpParameters:r}=this._mapRecvLocalIdInfo.get(e)||{};this._mapRecvLocalIdInfo.delete(e),this._remoteSdp.planBStopReceiving({mid:t,offerRtpParameters:r});const i={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("stopReceiving() | calling pc.setRemoteDescription() [offer:%o]",i),await this._pc.setRemoteDescription(i);const s=await this._pc.createAnswer();m.debug("stopReceiving() | calling pc.setLocalDescription() [answer:%o]",s),await this._pc.setLocalDescription(s)}async pauseReceiving(e){}async resumeReceiving(e){}async getReceiverStats(e){throw new c.UnsupportedError("not implemented")}async receiveDataChannel({sctpStreamParameters:e,label:t,protocol:r}){var i;this._assertRecvDirection();const{streamId:s,ordered:n,maxPacketLifeTime:o,maxRetransmits:c}=e,d={negotiated:!0,id:s,ordered:n,maxPacketLifeTime:o,maxRetransmitTime:o,maxRetransmits:c,protocol:r};m.debug("receiveDataChannel() [options:%o]",d);const p=this._pc.createDataChannel(t,d);if(!this._hasDataChannelMediaSection){this._remoteSdp.receiveSctpAssociation({oldDataChannelSpec:!0});const e={type:"offer",sdp:this._remoteSdp.getSdp()};m.debug("receiveDataChannel() | calling pc.setRemoteDescription() [offer:%o]",e),await this._pc.setRemoteDescription(e);const t=await this._pc.createAnswer();if(!this._transportReady){const e=a.parse(t.sdp);await this._setupTransport({localDtlsRole:null!==(i=this._forcedLocalDtlsRole)&&void 0!==i?i:"client",localSdpObject:e})}m.debug("receiveDataChannel() | calling pc.setRemoteDescription() [answer:%o]",t),await this._pc.setLocalDescription(t),this._hasDataChannelMediaSection=!0}return{dataChannel:p}}async _setupTransport({localDtlsRole:e,localSdpObject:t}){t||(t=a.parse(this._pc.localDescription.sdp));const r=l.extractDtlsParameters({sdpObject:t});r.role=e,this._remoteSdp.updateDtlsRole("client"===e?"server":"client"),await this.safeEmitAsPromise("@connect",{dtlsParameters:r}),this._transportReady=!0}_assertSendDirection(){if("send"!==this._direction)throw new Error('method can just be called for handlers with "send" direction')}_assertRecvDirection(){if("recv"!==this._direction)throw new Error('method can just be called for handlers with "recv" direction')}}t.ReactNative=b},function(e,t,r){var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){void 0===i&&(i=r),Object.defineProperty(e,i,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,i){void 0===i&&(i=r),e[i]=t[r]}),s=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||i(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),s(r(23),t),s(r(24),t),s(r(25),t),s(r(26),t),s(r(27),t),s(r(28),t),s(r(57),t),s(r(58),t),s(r(9),t),s(r(7),t)},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0})},function(e,t,r){var i;!function(s,n){var a="model",o="name",c="type",d="vendor",p="version",l="mobile",h="tablet",u="smarttv",f=function(e){for(var t={},r=0;r<e.length;r++)t[e[r].toUpperCase()]=e[r];return t},m=function(e,t){return"string"==typeof e&&-1!==g(t).indexOf(g(e))},g=function(e){return e.toLowerCase()},b=function(e,t){if("string"==typeof e)return e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),void 0===t?e:e.substring(0,255)},v=function(e,t){for(var r,i,s,n,a,o,c=0;c<t.length&&!a;){var d=t[c],p=t[c+1];for(r=i=0;r<d.length&&!a;)if(a=d[r++].exec(e))for(s=0;s<p.length;s++)o=a[++i],"object"==typeof(n=p[s])&&n.length>0?2===n.length?"function"==typeof n[1]?this[n[0]]=n[1].call(this,o):this[n[0]]=n[1]:3===n.length?"function"!=typeof n[1]||n[1].exec&&n[1].test?this[n[0]]=o?o.replace(n[1],n[2]):void 0:this[n[0]]=o?n[1].call(this,o,n[2]):void 0:4===n.length&&(this[n[0]]=o?n[3].call(this,o.replace(n[1],n[2])):void 0):this[n]=o||void 0;c+=2}},w=function(e,t){for(var r in t)if("object"==typeof t[r]&&t[r].length>0){for(var i=0;i<t[r].length;i++)if(m(t[r][i],e))return"?"===r?void 0:r}else if(m(t[r],e))return"?"===r?void 0:r;return e},y={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2",8.1:"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},_={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[p,[o,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[p,[o,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[o,p],[/opios[\/ ]+([\w\.]+)/i],[p,[o,"Opera Mini"]],[/\bopr\/([\w\.]+)/i],[p,[o,"Opera"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i,/(ba?idubrowser)[\/ ]?([\w\.]+)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i,/(weibo)__([\d\.]+)/i],[o,p],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[p,[o,"UCBrowser"]],[/\bqbcore\/([\w\.]+)/i],[p,[o,"WeChat(Win) Desktop"]],[/micromessenger\/([\w\.]+)/i],[p,[o,"WeChat"]],[/konqueror\/([\w\.]+)/i],[p,[o,"Konqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[p,[o,"IE"]],[/yabrowser\/([\w\.]+)/i],[p,[o,"Yandex"]],[/(avast|avg)\/([\w\.]+)/i],[[o,/(.+)/,"$1 Secure Browser"],p],[/\bfocus\/([\w\.]+)/i],[p,[o,"Firefox Focus"]],[/\bopt\/([\w\.]+)/i],[p,[o,"Opera Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[p,[o,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[p,[o,"Dolphin"]],[/coast\/([\w\.]+)/i],[p,[o,"Opera Coast"]],[/miuibrowser\/([\w\.]+)/i],[p,[o,"MIUI Browser"]],[/fxios\/([-\w\.]+)/i],[p,[o,"Firefox"]],[/\bqihu|(qi?ho?o?|360)browser/i],[[o,"360 Browser"]],[/(oculus|samsung|sailfish)browser\/([\w\.]+)/i],[[o,/(.+)/,"$1 Browser"],p],[/(comodo_dragon)\/([\w\.]+)/i],[[o,/_/g," "],p],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i],[o,p],[/(metasr)[\/ ]?([\w\.]+)/i,/(lbbrowser)/i],[o],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[o,"Facebook"],p],[/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(chromium|instagram)[\/ ]([-\w\.]+)/i],[o,p],[/\bgsa\/([\w\.]+) .*safari\//i],[p,[o,"GSA"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[p,[o,"Chrome Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[o,"Chrome WebView"],p],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[p,[o,"Android Browser"]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[o,p],[/version\/([\w\.]+) .*mobile\/\w+ (safari)/i],[p,[o,"Mobile Safari"]],[/version\/([\w\.]+) .*(mobile ?safari|safari)/i],[p,o],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[o,[p,w,{"1.0":"/8",1.2:"/1",1.3:"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(webkit|khtml)\/([\w\.]+)/i],[o,p],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[o,"Netscape"],p],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[p,[o,"Firefox Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[o,p]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[["architecture","amd64"]],[/(ia32(?=;))/i],[["architecture",g]],[/((?:i[346]|x)86)[;\)]/i],[["architecture","ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[["architecture","arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[["architecture","armhf"]],[/windows (ce|mobile); ppc;/i],[["architecture","arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[["architecture",/ower/,"",g]],[/(sun4\w)[;\)]/i],[["architecture","sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[["architecture",g]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[a,[d,"Samsung"],[c,h]],[/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[a,[d,"Samsung"],[c,l]],[/\((ip(?:hone|od)[\w ]*);/i],[a,[d,"Apple"],[c,l]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[a,[d,"Apple"],[c,h]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[a,[d,"Huawei"],[c,h]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i],[a,[d,"Huawei"],[c,l]],[/\b(poco[\w ]+)(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[a,/_/g," "],[d,"Xiaomi"],[c,l]],[/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[a,/_/g," "],[d,"Xiaomi"],[c,h]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[a,[d,"OPPO"],[c,l]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[a,[d,"Vivo"],[c,l]],[/\b(rmx[12]\d{3})(?: bui|;|\))/i],[a,[d,"Realme"],[c,l]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[a,[d,"Motorola"],[c,l]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[a,[d,"Motorola"],[c,h]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[a,[d,"LG"],[c,h]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[a,[d,"LG"],[c,l]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[a,[d,"Lenovo"],[c,h]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[a,/_/g," "],[d,"Nokia"],[c,l]],[/(pixel c)\b/i],[a,[d,"Google"],[c,h]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[a,[d,"Google"],[c,l]],[/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[a,[d,"Sony"],[c,l]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[a,"Xperia Tablet"],[d,"Sony"],[c,h]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[a,[d,"OnePlus"],[c,l]],[/(alexa)webm/i,/(kf[a-z]{2}wi)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[a,[d,"Amazon"],[c,h]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[a,/(.+)/g,"Fire Phone $1"],[d,"Amazon"],[c,l]],[/(playbook);[-\w\),; ]+(rim)/i],[a,d,[c,h]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[a,[d,"BlackBerry"],[c,l]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[a,[d,"ASUS"],[c,h]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[a,[d,"ASUS"],[c,l]],[/(nexus 9)/i],[a,[d,"HTC"],[c,h]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i],[d,[a,/_/g," "],[c,l]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[a,[d,"Acer"],[c,h]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[a,[d,"Meizu"],[c,l]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[a,[d,"Sharp"],[c,l]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[d,a,[c,l]],[/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[d,a,[c,h]],[/(surface duo)/i],[a,[d,"Microsoft"],[c,h]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[a,[d,"Fairphone"],[c,l]],[/(u304aa)/i],[a,[d,"AT&T"],[c,l]],[/\bsie-(\w*)/i],[a,[d,"Siemens"],[c,l]],[/\b(rct\w+) b/i],[a,[d,"RCA"],[c,h]],[/\b(venue[\d ]{2,7}) b/i],[a,[d,"Dell"],[c,h]],[/\b(q(?:mv|ta)\w+) b/i],[a,[d,"Verizon"],[c,h]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[a,[d,"Barnes & Noble"],[c,h]],[/\b(tm\d{3}\w+) b/i],[a,[d,"NuVision"],[c,h]],[/\b(k88) b/i],[a,[d,"ZTE"],[c,h]],[/\b(nx\d{3}j) b/i],[a,[d,"ZTE"],[c,l]],[/\b(gen\d{3}) b.+49h/i],[a,[d,"Swiss"],[c,l]],[/\b(zur\d{3}) b/i],[a,[d,"Swiss"],[c,h]],[/\b((zeki)?tb.*\b) b/i],[a,[d,"Zeki"],[c,h]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[d,"Dragon Touch"],a,[c,h]],[/\b(ns-?\w{0,9}) b/i],[a,[d,"Insignia"],[c,h]],[/\b((nxa|next)-?\w{0,9}) b/i],[a,[d,"NextBook"],[c,h]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[d,"Voice"],a,[c,l]],[/\b(lvtel\-)?(v1[12]) b/i],[[d,"LvTel"],a,[c,l]],[/\b(ph-1) /i],[a,[d,"Essential"],[c,l]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[a,[d,"Envizen"],[c,h]],[/\b(trio[-\w\. ]+) b/i],[a,[d,"MachSpeed"],[c,h]],[/\btu_(1491) b/i],[a,[d,"Rotor"],[c,h]],[/(shield[\w ]+) b/i],[a,[d,"Nvidia"],[c,h]],[/(sprint) (\w+)/i],[d,a,[c,l]],[/(kin\.[onetw]{3})/i],[[a,/\./g," "],[d,"Microsoft"],[c,l]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[a,[d,"Zebra"],[c,h]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[a,[d,"Zebra"],[c,l]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[d,a,[c,"console"]],[/droid.+; (shield) bui/i],[a,[d,"Nvidia"],[c,"console"]],[/(playstation [345portablevi]+)/i],[a,[d,"Sony"],[c,"console"]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[a,[d,"Microsoft"],[c,"console"]],[/smart-tv.+(samsung)/i],[d,[c,u]],[/hbbtv.+maple;(\d+)/i],[[a,/^/,"SmartTV"],[d,"Samsung"],[c,u]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[d,"LG"],[c,u]],[/(apple) ?tv/i],[d,[a,"Apple TV"],[c,u]],[/crkey/i],[[a,"Chromecast"],[d,"Google"],[c,u]],[/droid.+aft(\w)( bui|\))/i],[a,[d,"Amazon"],[c,u]],[/\(dtv[\);].+(aquos)/i],[a,[d,"Sharp"],[c,u]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i],[[d,b],[a,b],[c,u]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[c,u]],[/((pebble))app/i],[d,a,[c,"wearable"]],[/droid.+; (glass) \d/i],[a,[d,"Google"],[c,"wearable"]],[/droid.+; (wt63?0{2,3})\)/i],[a,[d,"Zebra"],[c,"wearable"]],[/(quest( 2)?)/i],[a,[d,"Facebook"],[c,"wearable"]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[d,[c,"embedded"]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i],[a,[c,l]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[a,[c,h]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[c,h]],[/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i],[[c,l]],[/(android[-\w\. ]{0,9});.+buil/i],[a,[d,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[p,[o,"EdgeHTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[p,[o,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i],[o,p],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[p,o]],os:[[/microsoft (windows) (vista|xp)/i],[o,p],[/(windows) nt 6\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i,/(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i],[o,[p,w,y]],[/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[o,"Windows"],[p,w,y]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/cfnetwork\/.+darwin/i],[[p,/_/g,"."],[o,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[o,"Mac OS"],[p,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86)/i],[p,o],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[o,p],[/\(bb(10);/i],[p,[o,"BlackBerry"]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[p,[o,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[p,[o,"Firefox OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[p,[o,"webOS"]],[/crkey\/([\d\.]+)/i],[p,[o,"Chromecast"]],[/(cros) [\w]+ ([\w\.]+\w)/i],[[o,"Chromium OS"],p],[/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[o,p],[/(sunos) ?([\w\.\d]*)/i],[[o,"Solaris"],p],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i,/(unix) ?([\w\.]*)/i],[o,p]]},S=function(e,t){if("object"==typeof e&&(t=e,e=void 0),!(this instanceof S))return new S(e,t).getResult();var r=e||(void 0!==s&&s.navigator&&s.navigator.userAgent?s.navigator.userAgent:""),i=t?function(e,t){var r={};for(var i in e)t[i]&&t[i].length%2==0?r[i]=t[i].concat(e[i]):r[i]=e[i];return r}(_,t):_;return this.getBrowser=function(){var e,t={name:void 0,version:void 0};return v.call(t,r,i.browser),t.major="string"==typeof(e=t.version)?e.replace(/[^\d\.]/g,"").split(".")[0]:void 0,t},this.getCPU=function(){var e={architecture:void 0};return v.call(e,r,i.cpu),e},this.getDevice=function(){var e={vendor:void 0,model:void 0,type:void 0};return v.call(e,r,i.device),e},this.getEngine=function(){var e={name:void 0,version:void 0};return v.call(e,r,i.engine),e},this.getOS=function(){var e={name:void 0,version:void 0};return v.call(e,r,i.os),e},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return r},this.setUA=function(e){return r="string"==typeof e&&e.length>255?b(e,255):e,this},this.setUA(r),this};S.VERSION="1.0.2",S.BROWSER=f([o,p,"major"]),S.CPU=f(["architecture"]),S.DEVICE=f([a,d,c,"console",l,u,h,"wearable","embedded"]),S.ENGINE=S.OS=f([o,p]),void 0!==t?(void 0!==e&&e.exports&&(t=e.exports=S),t.UAParser=S):r(60)?void 0===(i=function(){return S}.call(t,r,t,e))||(e.exports=i):void 0!==s&&(s.UAParser=S);var R=void 0!==s&&(s.jQuery||s.Zepto);if(R&&!R.ua){var P=new S;R.ua=P.getResult(),R.ua.get=function(){return P.getUA()},R.ua.set=function(e){P.setUA(e);var t=P.getResult();for(var r in t)R.ua[r]=t[r]}}}("object"==typeof window?window:this)},function(e,t){(function(t){e.exports=t}).call(this,{})},function(e,t,r){(function(e){var i=r(63),s=r(64),n=r(65);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function o(e,t){if(a()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,r){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return l(this,e)}return d(this,e,t,r)}function d(e,t,r,i){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,i){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(i||0))throw new RangeError("'length' is out of bounds");return t=void 0===r&&void 0===i?new Uint8Array(t):void 0===i?new Uint8Array(t,r):new Uint8Array(t,r,i),c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=h(e,t),e}(e,t,r,i):"string"==typeof t?function(e,t,r){if("string"==typeof r&&""!==r||(r="utf8"),!c.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var i=0|f(t,r),s=(e=o(e,i)).write(t,r);return s!==i&&(e=e.slice(0,s)),e}(e,t,r):function(e,t){if(c.isBuffer(t)){var r=0|u(t.length);return 0===(e=o(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(i=t.length)!=i?o(e,0):h(e,t);if("Buffer"===t.type&&n(t.data))return h(e,t.data)}var i;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function p(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function l(e,t){if(p(t),e=o(e,t<0?0:0|u(t)),!c.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function h(e,t){var r=t.length<0?0:0|u(t.length);e=o(e,r);for(var i=0;i<r;i+=1)e[i]=255&t[i];return e}function u(e){if(e>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function f(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var i=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return Z(e).length;default:if(i)return z(e).length;t=(""+t).toLowerCase(),i=!0}}function m(e,t,r){var i=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return D(this,t,r);case"utf8":case"utf-8":return T(this,t,r);case"ascii":return k(this,t,r);case"latin1":case"binary":return I(this,t,r);case"base64":return C(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,r);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function g(e,t,r){var i=e[t];e[t]=e[r],e[r]=i}function b(e,t,r,i,s){if(0===e.length)return-1;if("string"==typeof r?(i=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=s?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(s)return-1;r=e.length-1}else if(r<0){if(!s)return-1;r=0}if("string"==typeof t&&(t=c.from(t,i)),c.isBuffer(t))return 0===t.length?-1:v(e,t,r,i,s);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,i,s);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,i,s){var n,a=1,o=e.length,c=t.length;if(void 0!==i&&("ucs2"===(i=String(i).toLowerCase())||"ucs-2"===i||"utf16le"===i||"utf-16le"===i)){if(e.length<2||t.length<2)return-1;a=2,o/=2,c/=2,r/=2}function d(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(s){var p=-1;for(n=r;n<o;n++)if(d(e,n)===d(t,-1===p?0:n-p)){if(-1===p&&(p=n),n-p+1===c)return p*a}else-1!==p&&(n-=n-p),p=-1}else for(r+c>o&&(r=o-c),n=r;n>=0;n--){for(var l=!0,h=0;h<c;h++)if(d(e,n+h)!==d(t,h)){l=!1;break}if(l)return n}return-1}function w(e,t,r,i){r=Number(r)||0;var s=e.length-r;i?(i=Number(i))>s&&(i=s):i=s;var n=t.length;if(n%2!=0)throw new TypeError("Invalid hex string");i>n/2&&(i=n/2);for(var a=0;a<i;++a){var o=parseInt(t.substr(2*a,2),16);if(isNaN(o))return a;e[r+a]=o}return a}function y(e,t,r,i){return U(z(t,e.length-r),e,r,i)}function _(e,t,r,i){return U(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,i)}function S(e,t,r,i){return _(e,t,r,i)}function R(e,t,r,i){return U(Z(t),e,r,i)}function P(e,t,r,i){return U(function(e,t){for(var r,i,s,n=[],a=0;a<e.length&&!((t-=2)<0);++a)i=(r=e.charCodeAt(a))>>8,s=r%256,n.push(s),n.push(i);return n}(t,e.length-r),e,r,i)}function C(e,t,r){return 0===t&&r===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,r))}function T(e,t,r){r=Math.min(e.length,r);for(var i=[],s=t;s<r;){var n,a,o,c,d=e[s],p=null,l=d>239?4:d>223?3:d>191?2:1;if(s+l<=r)switch(l){case 1:d<128&&(p=d);break;case 2:128==(192&(n=e[s+1]))&&(c=(31&d)<<6|63&n)>127&&(p=c);break;case 3:n=e[s+1],a=e[s+2],128==(192&n)&&128==(192&a)&&(c=(15&d)<<12|(63&n)<<6|63&a)>2047&&(c<55296||c>57343)&&(p=c);break;case 4:n=e[s+1],a=e[s+2],o=e[s+3],128==(192&n)&&128==(192&a)&&128==(192&o)&&(c=(15&d)<<18|(63&n)<<12|(63&a)<<6|63&o)>65535&&c<1114112&&(p=c)}null===p?(p=65533,l=1):p>65535&&(p-=65536,i.push(p>>>10&1023|55296),p=56320|1023&p),i.push(p),s+=l}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);for(var r="",i=0;i<t;)r+=String.fromCharCode.apply(String,e.slice(i,i+=4096));return r}(i)}function k(e,t,r){var i="";r=Math.min(e.length,r);for(var s=t;s<r;++s)i+=String.fromCharCode(127&e[s]);return i}function I(e,t,r){var i="";r=Math.min(e.length,r);for(var s=t;s<r;++s)i+=String.fromCharCode(e[s]);return i}function D(e,t,r){var i=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>i)&&(r=i);for(var s="",n=t;n<r;++n)s+=F(e[n]);return s}function M(e,t,r){for(var i=e.slice(t,r),s="",n=0;n<i.length;n+=2)s+=String.fromCharCode(i[n]+256*i[n+1]);return s}function E(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function x(e,t,r,i,s,n){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||t<n)throw new RangeError('"value" argument is out of bounds');if(r+i>e.length)throw new RangeError("Index out of range")}function O(e,t,r,i){t<0&&(t=65535+t+1);for(var s=0,n=Math.min(e.length-r,2);s<n;++s)e[r+s]=(t&255<<8*(i?s:1-s))>>>8*(i?s:1-s)}function A(e,t,r,i){t<0&&(t=4294967295+t+1);for(var s=0,n=Math.min(e.length-r,4);s<n;++s)e[r+s]=t>>>8*(i?s:3-s)&255}function L(e,t,r,i,s,n){if(r+i>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function j(e,t,r,i,n){return n||L(e,0,r,4),s.write(e,t,r,i,23,4),r+4}function N(e,t,r,i,n){return n||L(e,0,r,8),s.write(e,t,r,i,52,8),r+8}t.Buffer=c,t.SlowBuffer=function(e){return+e!=e&&(e=0),c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=a(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,r){return d(null,e,t,r)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,r){return function(e,t,r,i){return p(t),t<=0?o(e,t):void 0!==r?"string"==typeof i?o(e,t).fill(r,i):o(e,t).fill(r):o(e,t)}(null,e,t,r)},c.allocUnsafe=function(e){return l(null,e)},c.allocUnsafeSlow=function(e){return l(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,i=t.length,s=0,n=Math.min(r,i);s<n;++s)if(e[s]!==t[s]){r=e[s],i=t[s];break}return r<i?-1:i<r?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!n(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var i=c.allocUnsafe(t),s=0;for(r=0;r<e.length;++r){var a=e[r];if(!c.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(i,s),s+=a.length}return i},c.byteLength=f,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?T(this,0,e):m.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,r,i,s){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===i&&(i=0),void 0===s&&(s=this.length),t<0||r>e.length||i<0||s>this.length)throw new RangeError("out of range index");if(i>=s&&t>=r)return 0;if(i>=s)return-1;if(t>=r)return 1;if(this===e)return 0;for(var n=(s>>>=0)-(i>>>=0),a=(r>>>=0)-(t>>>=0),o=Math.min(n,a),d=this.slice(i,s),p=e.slice(t,r),l=0;l<o;++l)if(d[l]!==p[l]){n=d[l],a=p[l];break}return n<a?-1:a<n?1:0},c.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},c.prototype.indexOf=function(e,t,r){return b(this,e,t,r,!0)},c.prototype.lastIndexOf=function(e,t,r){return b(this,e,t,r,!1)},c.prototype.write=function(e,t,r,i){if(void 0===t)i="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)i=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===i&&(i="utf8")):(i=r,r=void 0)}var s=this.length-t;if((void 0===r||r>s)&&(r=s),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");for(var n=!1;;)switch(i){case"hex":return w(this,e,t,r);case"utf8":case"utf-8":return y(this,e,t,r);case"ascii":return _(this,e,t,r);case"latin1":case"binary":return S(this,e,t,r);case"base64":return R(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,e,t,r);default:if(n)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),n=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},c.prototype.slice=function(e,t){var r,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(t=void 0===t?i:~~t)<0?(t+=i)<0&&(t=0):t>i&&(t=i),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=c.prototype;else{var s=t-e;r=new c(s,void 0);for(var n=0;n<s;++n)r[n]=this[n+e]}return r},c.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||E(e,t,this.length);for(var i=this[e],s=1,n=0;++n<t&&(s*=256);)i+=this[e+n]*s;return i},c.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||E(e,t,this.length);for(var i=this[e+--t],s=1;t>0&&(s*=256);)i+=this[e+--t]*s;return i},c.prototype.readUInt8=function(e,t){return t||E(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||E(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||E(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||E(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||E(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||E(e,t,this.length);for(var i=this[e],s=1,n=0;++n<t&&(s*=256);)i+=this[e+n]*s;return i>=(s*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||E(e,t,this.length);for(var i=t,s=1,n=this[e+--i];i>0&&(s*=256);)n+=this[e+--i]*s;return n>=(s*=128)&&(n-=Math.pow(2,8*t)),n},c.prototype.readInt8=function(e,t){return t||E(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||E(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(e,t){t||E(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(e,t){return t||E(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||E(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||E(e,4,this.length),s.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||E(e,4,this.length),s.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||E(e,8,this.length),s.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||E(e,8,this.length),s.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,r,i){e=+e,t|=0,r|=0,i||x(this,e,t,r,Math.pow(2,8*r)-1,0);var s=1,n=0;for(this[t]=255&e;++n<r&&(s*=256);)this[t+n]=e/s&255;return t+r},c.prototype.writeUIntBE=function(e,t,r,i){e=+e,t|=0,r|=0,i||x(this,e,t,r,Math.pow(2,8*r)-1,0);var s=r-1,n=1;for(this[t+s]=255&e;--s>=0&&(n*=256);)this[t+s]=e/n&255;return t+r},c.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):O(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):O(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):A(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):A(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,r,i){if(e=+e,t|=0,!i){var s=Math.pow(2,8*r-1);x(this,e,t,r,s-1,-s)}var n=0,a=1,o=0;for(this[t]=255&e;++n<r&&(a*=256);)e<0&&0===o&&0!==this[t+n-1]&&(o=1),this[t+n]=(e/a>>0)-o&255;return t+r},c.prototype.writeIntBE=function(e,t,r,i){if(e=+e,t|=0,!i){var s=Math.pow(2,8*r-1);x(this,e,t,r,s-1,-s)}var n=r-1,a=1,o=0;for(this[t+n]=255&e;--n>=0&&(a*=256);)e<0&&0===o&&0!==this[t+n+1]&&(o=1),this[t+n]=(e/a>>0)-o&255;return t+r},c.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):O(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):O(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):A(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||x(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):A(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,r){return j(this,e,t,!0,r)},c.prototype.writeFloatBE=function(e,t,r){return j(this,e,t,!1,r)},c.prototype.writeDoubleLE=function(e,t,r){return N(this,e,t,!0,r)},c.prototype.writeDoubleBE=function(e,t,r){return N(this,e,t,!1,r)},c.prototype.copy=function(e,t,r,i){if(r||(r=0),i||0===i||(i=this.length),t>=e.length&&(t=e.length),t||(t=0),i>0&&i<r&&(i=r),i===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),e.length-t<i-r&&(i=e.length-t+r);var s,n=i-r;if(this===e&&r<t&&t<i)for(s=n-1;s>=0;--s)e[s+t]=this[s+r];else if(n<1e3||!c.TYPED_ARRAY_SUPPORT)for(s=0;s<n;++s)e[s+t]=this[s+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+n),t);return n},c.prototype.fill=function(e,t,r,i){if("string"==typeof e){if("string"==typeof t?(i=t,t=0,r=this.length):"string"==typeof r&&(i=r,r=this.length),1===e.length){var s=e.charCodeAt(0);s<256&&(e=s)}if(void 0!==i&&"string"!=typeof i)throw new TypeError("encoding must be a string");if("string"==typeof i&&!c.isEncoding(i))throw new TypeError("Unknown encoding: "+i)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var n;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(n=t;n<r;++n)this[n]=e;else{var a=c.isBuffer(e)?e:z(new c(e,i).toString()),o=a.length;for(n=0;n<r-t;++n)this[n+t]=a[n%o]}return this};var B=/[^+\/0-9A-Za-z-_]/g;function F(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){var r;t=t||1/0;for(var i=e.length,s=null,n=[],a=0;a<i;++a){if((r=e.charCodeAt(a))>55295&&r<57344){if(!s){if(r>56319){(t-=3)>-1&&n.push(239,191,189);continue}if(a+1===i){(t-=3)>-1&&n.push(239,191,189);continue}s=r;continue}if(r<56320){(t-=3)>-1&&n.push(239,191,189),s=r;continue}r=65536+(s-55296<<10|r-56320)}else s&&(t-=3)>-1&&n.push(239,191,189);if(s=null,r<128){if((t-=1)<0)break;n.push(r)}else if(r<2048){if((t-=2)<0)break;n.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;n.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;n.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return n}function Z(e){return i.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(B,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function U(e,t,r,i){for(var s=0;s<i&&!(s+r>=t.length||s>=e.length);++s)t[s+r]=e[s];return s}}).call(this,r(62))},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){t.byteLength=function(e){var t=d(e),r=t[0],i=t[1];return 3*(r+i)/4-i},t.toByteArray=function(e){var t,r,i=d(e),a=i[0],o=i[1],c=new n(function(e,t,r){return 3*(t+r)/4-r}(0,a,o)),p=0,l=o>0?a-4:a;for(r=0;r<l;r+=4)t=s[e.charCodeAt(r)]<<18|s[e.charCodeAt(r+1)]<<12|s[e.charCodeAt(r+2)]<<6|s[e.charCodeAt(r+3)],c[p++]=t>>16&255,c[p++]=t>>8&255,c[p++]=255&t;return 2===o&&(t=s[e.charCodeAt(r)]<<2|s[e.charCodeAt(r+1)]>>4,c[p++]=255&t),1===o&&(t=s[e.charCodeAt(r)]<<10|s[e.charCodeAt(r+1)]<<4|s[e.charCodeAt(r+2)]>>2,c[p++]=t>>8&255,c[p++]=255&t),c},t.fromByteArray=function(e){for(var t,r=e.length,s=r%3,n=[],a=0,o=r-s;a<o;a+=16383)n.push(p(e,a,a+16383>o?o:a+16383));return 1===s?(t=e[r-1],n.push(i[t>>2]+i[t<<4&63]+"==")):2===s&&(t=(e[r-2]<<8)+e[r-1],n.push(i[t>>10]+i[t>>4&63]+i[t<<2&63]+"=")),n.join("")};for(var i=[],s=[],n="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,c=a.length;o<c;++o)i[o]=a[o],s[a.charCodeAt(o)]=o;function d(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function p(e,t,r){for(var s,n,a=[],o=t;o<r;o+=3)s=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(255&e[o+2]),a.push(i[(n=s)>>18&63]+i[n>>12&63]+i[n>>6&63]+i[63&n]);return a.join("")}s["-".charCodeAt(0)]=62,s["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,r,i,s){var n,a,o=8*s-i-1,c=(1<<o)-1,d=c>>1,p=-7,l=r?s-1:0,h=r?-1:1,u=e[t+l];for(l+=h,n=u&(1<<-p)-1,u>>=-p,p+=o;p>0;n=256*n+e[t+l],l+=h,p-=8);for(a=n&(1<<-p)-1,n>>=-p,p+=i;p>0;a=256*a+e[t+l],l+=h,p-=8);if(0===n)n=1-d;else{if(n===c)return a?NaN:1/0*(u?-1:1);a+=Math.pow(2,i),n-=d}return(u?-1:1)*a*Math.pow(2,n-i)},t.write=function(e,t,r,i,s,n){var a,o,c,d=8*n-s-1,p=(1<<d)-1,l=p>>1,h=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,u=i?0:n-1,f=i?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=p):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+l>=1?h/c:h*Math.pow(2,1-l))*c>=2&&(a++,c/=2),a+l>=p?(o=0,a=p):a+l>=1?(o=(t*c-1)*Math.pow(2,s),a+=l):(o=t*Math.pow(2,l-1)*Math.pow(2,s),a=0));s>=8;e[r+u]=255&o,u+=f,o/=256,s-=8);for(a=a<<s|o,d+=s;d>0;e[r+u]=255&a,u+=f,a/=256,d-=8);e[r+u-f]|=128*m}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){r.r(t),r.d(t,"protocol",(function(){return M})),r.d(t,"Manager",(function(){return z})),r.d(t,"Socket",(function(){return N})),r.d(t,"io",(function(){return U})),r.d(t,"connect",(function(){return U})),r.d(t,"default",(function(){return U}));var i={};r.r(i),r.d(i,"protocol",(function(){return M})),r.d(i,"PacketType",(function(){return E})),r.d(i,"Encoder",(function(){return x})),r.d(i,"Decoder",(function(){return O}));var s=r(16),n=r.n(s),a=r(30),o=r.n(a),c=r(3),d=function(e){const t=e.xdomain;try{if("undefined"!=typeof XMLHttpRequest&&(!t||o.a))return new XMLHttpRequest}catch(e){}if(!t)try{return new(c.a[["Active"].concat("Object").join("X")])("Microsoft.XMLHTTP")}catch(e){}},p=r(5),l=r(2),h=r(14),u=r(19),f=r.n(u),m=r(15),g=r.n(m),b=r(10);class v extends h.a{constructor(){super(...arguments),this.polling=!1}get name(){return"polling"}doOpen(){this.poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this.polling||!this.writable){let e=0;this.polling&&(e++,this.once("pollComplete",(function(){--e||t()}))),this.writable||(e++,this.once("drain",(function(){--e||t()})))}else t()}poll(){this.polling=!0,this.doPoll(),this.emit("poll")}onData(e){Object(b.b)(e,this.socket.binaryType).forEach((e=>{if("opening"===this.readyState&&"open"===e.type&&this.onOpen(),"close"===e.type)return this.onClose(),!1;this.onPacket(e)})),"closed"!==this.readyState&&(this.polling=!1,this.emit("pollComplete"),"open"===this.readyState&&this.poll())}doClose(){const e=()=>{this.write([{type:"close"}])};"open"===this.readyState?e():this.once("open",e)}write(e){this.writable=!1,Object(b.d)(e,(e=>{this.doWrite(e,(()=>{this.writable=!0,this.emit("drain")}))}))}uri(){let e=this.query||{};const t=this.opts.secure?"https":"http";let r="";!1!==this.opts.timestampRequests&&(e[this.opts.timestampParam]=f()()),this.supportsBinary||e.sid||(e.b64=1),this.opts.port&&("https"===t&&443!==Number(this.opts.port)||"http"===t&&80!==Number(this.opts.port))&&(r=":"+this.opts.port);const i=g.a.encode(e);return t+"://"+(-1!==this.opts.hostname.indexOf(":")?"["+this.opts.hostname+"]":this.opts.hostname)+r+this.opts.path+(i.length?"?"+i:"")}}function w(){}const y=null!=new d({xdomain:!1}).responseType;class _ extends l.Emitter{constructor(e,t){super(),Object(p.a)(this,t),this.opts=t,this.method=t.method||"GET",this.uri=e,this.async=!1!==t.async,this.data=void 0!==t.data?t.data:null,this.create()}create(){const e=Object(p.b)(this.opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");e.xdomain=!!this.opts.xd,e.xscheme=!!this.opts.xs;const t=this.xhr=new d(e);try{t.open(this.method,this.uri,this.async);try{if(this.opts.extraHeaders){t.setDisableHeaderCheck&&t.setDisableHeaderCheck(!0);for(let e in this.opts.extraHeaders)this.opts.extraHeaders.hasOwnProperty(e)&&t.setRequestHeader(e,this.opts.extraHeaders[e])}}catch(e){}if("POST"===this.method)try{t.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(e){}try{t.setRequestHeader("Accept","*/*")}catch(e){}"withCredentials"in t&&(t.withCredentials=this.opts.withCredentials),this.opts.requestTimeout&&(t.timeout=this.opts.requestTimeout),t.onreadystatechange=()=>{4===t.readyState&&(200===t.status||1223===t.status?this.onLoad():this.setTimeoutFn((()=>{this.onError("number"==typeof t.status?t.status:0)}),0))},t.send(this.data)}catch(e){return void this.setTimeoutFn((()=>{this.onError(e)}),0)}"undefined"!=typeof document&&(this.index=_.requestsCount++,_.requests[this.index]=this)}onSuccess(){this.emit("success"),this.cleanup()}onData(e){this.emit("data",e),this.onSuccess()}onError(e){this.emit("error",e),this.cleanup(!0)}cleanup(e){if(void 0!==this.xhr&&null!==this.xhr){if(this.xhr.onreadystatechange=w,e)try{this.xhr.abort()}catch(e){}"undefined"!=typeof document&&delete _.requests[this.index],this.xhr=null}}onLoad(){const e=this.xhr.responseText;null!==e&&this.onData(e)}abort(){this.cleanup()}}if(_.requestsCount=0,_.requests={},"undefined"!=typeof document)if("function"==typeof attachEvent)attachEvent("onunload",S);else if("function"==typeof addEventListener){const e="onpagehide"in c.a?"pagehide":"unload";addEventListener(e,S,!1)}function S(){for(let e in _.requests)_.requests.hasOwnProperty(e)&&_.requests[e].abort()}const R={websocket:r(31).a,polling:class extends v{constructor(e){if(super(e),"undefined"!=typeof location){const t="https:"===location.protocol;let r=location.port;r||(r=t?"443":"80"),this.xd="undefined"!=typeof location&&e.hostname!==location.hostname||r!==e.port,this.xs=e.secure!==t}const t=e&&e.forceBase64;this.supportsBinary=y&&!t}request(e={}){return Object.assign(e,{xd:this.xd,xs:this.xs},this.opts),new _(this.uri(),e)}doWrite(e,t){const r=this.request({method:"POST",data:e});r.on("success",t),r.on("error",(e=>{this.onError("xhr post error",e)}))}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(e=>{this.onError("xhr poll error",e)})),this.pollXhr=e}}};class P extends l.Emitter{constructor(e,t={}){super(),e&&"object"==typeof e&&(t=e,e=null),e?(e=n()(e),t.hostname=e.host,t.secure="https"===e.protocol||"wss"===e.protocol,t.port=e.port,e.query&&(t.query=e.query)):t.host&&(t.hostname=n()(t.host).host),Object(p.a)(this,t),this.secure=null!=t.secure?t.secure:"undefined"!=typeof location&&"https:"===location.protocol,t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||("undefined"!=typeof location?location.hostname:"localhost"),this.port=t.port||("undefined"!=typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=t.transports||["polling","websocket"],this.readyState="",this.writeBuffer=[],this.prevBufferLen=0,this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!0},t),this.opts.path=this.opts.path.replace(/\/$/,"")+"/","string"==typeof this.opts.query&&(this.opts.query=g.a.decode(this.opts.query)),this.id=null,this.upgrades=null,this.pingInterval=null,this.pingTimeout=null,this.pingTimeoutTimer=null,"function"==typeof addEventListener&&(this.opts.closeOnBeforeunload&&addEventListener("beforeunload",(()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())}),!1),"localhost"!==this.hostname&&(this.offlineEventListener=()=>{this.onClose("transport close")},addEventListener("offline",this.offlineEventListener,!1))),this.open()}createTransport(e){const t=function(e){const t={};for(let r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}(this.opts.query);t.EIO=b.e,t.transport=e,this.id&&(t.sid=this.id);const r=Object.assign({},this.opts.transportOptions[e],this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port});return new R[e](r)}open(){let e;if(this.opts.rememberUpgrade&&P.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket"))e="websocket";else{if(0===this.transports.length)return void this.setTimeoutFn((()=>{this.emitReserved("error","No transports available")}),0);e=this.transports[0]}this.readyState="opening";try{e=this.createTransport(e)}catch(e){return this.transports.shift(),void this.open()}e.open(),this.setTransport(e)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this.onDrain.bind(this)).on("packet",this.onPacket.bind(this)).on("error",this.onError.bind(this)).on("close",(()=>{this.onClose("transport close")}))}probe(e){let t=this.createTransport(e),r=!1;P.priorWebsocketSuccess=!1;const i=()=>{r||(t.send([{type:"ping",data:"probe"}]),t.once("packet",(e=>{if(!r)if("pong"===e.type&&"probe"===e.data){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;P.priorWebsocketSuccess="websocket"===t.name,this.transport.pause((()=>{r||"closed"!==this.readyState&&(d(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())}))}else{const e=new Error("probe error");e.transport=t.name,this.emitReserved("upgradeError",e)}})))};function s(){r||(r=!0,d(),t.close(),t=null)}const n=e=>{const r=new Error("probe error: "+e);r.transport=t.name,s(),this.emitReserved("upgradeError",r)};function a(){n("transport closed")}function o(){n("socket closed")}function c(e){t&&e.name!==t.name&&s()}const d=()=>{t.removeListener("open",i),t.removeListener("error",n),t.removeListener("close",a),this.off("close",o),this.off("upgrading",c)};t.once("open",i),t.once("error",n),t.once("close",a),this.once("close",o),this.once("upgrading",c),t.open()}onOpen(){if(this.readyState="open",P.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush(),"open"===this.readyState&&this.opts.upgrade&&this.transport.pause){let e=0;const t=this.upgrades.length;for(;e<t;e++)this.probe(this.upgrades[e])}}onPacket(e){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this.resetPingTimeout(),this.sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong");break;case"error":const t=new Error("server error");t.code=e.data,this.onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data)}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this.upgrades=this.filterUpgrades(e.upgrades),this.pingInterval=e.pingInterval,this.pingTimeout=e.pingTimeout,this.onOpen(),"closed"!==this.readyState&&this.resetPingTimeout()}resetPingTimeout(){this.clearTimeoutFn(this.pingTimeoutTimer),this.pingTimeoutTimer=this.setTimeoutFn((()=>{this.onClose("ping timeout")}),this.pingInterval+this.pingTimeout),this.opts.autoUnref&&this.pingTimeoutTimer.unref()}onDrain(){this.writeBuffer.splice(0,this.prevBufferLen),this.prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){"closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length&&(this.transport.send(this.writeBuffer),this.prevBufferLen=this.writeBuffer.length,this.emitReserved("flush"))}write(e,t,r){return this.sendPacket("message",e,t,r),this}send(e,t,r){return this.sendPacket("message",e,t,r),this}sendPacket(e,t,r,i){if("function"==typeof t&&(i=t,t=void 0),"function"==typeof r&&(i=r,r=null),"closing"===this.readyState||"closed"===this.readyState)return;(r=r||{}).compress=!1!==r.compress;const s={type:e,data:t,options:r};this.emitReserved("packetCreate",s),this.writeBuffer.push(s),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this.onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},r=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return"opening"!==this.readyState&&"open"!==this.readyState||(this.readyState="closing",this.writeBuffer.length?this.once("drain",(()=>{this.upgrading?r():e()})):this.upgrading?r():e()),this}onError(e){P.priorWebsocketSuccess=!1,this.emitReserved("error",e),this.onClose("transport error",e)}onClose(e,t){"opening"!==this.readyState&&"open"!==this.readyState&&"closing"!==this.readyState||(this.clearTimeoutFn(this.pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),"function"==typeof removeEventListener&&removeEventListener("offline",this.offlineEventListener,!1),this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this.prevBufferLen=0)}filterUpgrades(e){const t=[];let r=0;const i=e.length;for(;r<i;r++)~this.transports.indexOf(e[r])&&t.push(e[r]);return t}}P.protocol=b.e,P.protocol;const C="function"==typeof ArrayBuffer,T=Object.prototype.toString,k="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===T.call(Blob),I="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===T.call(File);function D(e){return C&&(e instanceof ArrayBuffer||(e=>"function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer)(e))||k&&e instanceof Blob||I&&e instanceof File}const M=5;var E;!function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"}(E||(E={}));class x{encode(e){return e.type!==E.EVENT&&e.type!==E.ACK||!function e(t,r){if(!t||"object"!=typeof t)return!1;if(Array.isArray(t)){for(let r=0,i=t.length;r<i;r++)if(e(t[r]))return!0;return!1}if(D(t))return!0;if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return e(t.toJSON(),!0);for(const r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e(t[r]))return!0;return!1}(e)?[this.encodeAsString(e)]:(e.type=e.type===E.EVENT?E.BINARY_EVENT:E.BINARY_ACK,this.encodeAsBinary(e))}encodeAsString(e){let t=""+e.type;return e.type!==E.BINARY_EVENT&&e.type!==E.BINARY_ACK||(t+=e.attachments+"-"),e.nsp&&"/"!==e.nsp&&(t+=e.nsp+","),null!=e.id&&(t+=e.id),null!=e.data&&(t+=JSON.stringify(e.data)),t}encodeAsBinary(e){const t=function(e){const t=[],r=e.data,i=e;return i.data=function e(t,r){if(!t)return t;if(D(t)){const e={_placeholder:!0,num:r.length};return r.push(t),e}if(Array.isArray(t)){const i=new Array(t.length);for(let s=0;s<t.length;s++)i[s]=e(t[s],r);return i}if("object"==typeof t&&!(t instanceof Date)){const i={};for(const s in t)Object.prototype.hasOwnProperty.call(t,s)&&(i[s]=e(t[s],r));return i}return t}(r,t),i.attachments=t.length,{packet:i,buffers:t}}(e),r=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(r),i}}class O extends l.Emitter{constructor(){super()}add(e){let t;if("string"==typeof e)t=this.decodeString(e),t.type===E.BINARY_EVENT||t.type===E.BINARY_ACK?(this.reconstructor=new A(t),0===t.attachments&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t);else{if(!D(e)&&!e.base64)throw new Error("Unknown type: "+e);if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet");t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t))}}decodeString(e){let t=0;const r={type:Number(e.charAt(0))};if(void 0===E[r.type])throw new Error("unknown packet type "+r.type);if(r.type===E.BINARY_EVENT||r.type===E.BINARY_ACK){const i=t+1;for(;"-"!==e.charAt(++t)&&t!=e.length;);const s=e.substring(i,t);if(s!=Number(s)||"-"!==e.charAt(t))throw new Error("Illegal attachments");r.attachments=Number(s)}if("/"===e.charAt(t+1)){const i=t+1;for(;++t&&","!==e.charAt(t)&&t!==e.length;);r.nsp=e.substring(i,t)}else r.nsp="/";const i=e.charAt(t+1);if(""!==i&&Number(i)==i){const i=t+1;for(;++t;){const r=e.charAt(t);if(null==r||Number(r)!=r){--t;break}if(t===e.length)break}r.id=Number(e.substring(i,t+1))}if(e.charAt(++t)){const i=function(e){try{return JSON.parse(e)}catch(e){return!1}}(e.substr(t));if(!O.isPayloadValid(r.type,i))throw new Error("invalid payload");r.data=i}return r}static isPayloadValid(e,t){switch(e){case E.CONNECT:return"object"==typeof t;case E.DISCONNECT:return void 0===t;case E.CONNECT_ERROR:return"string"==typeof t||"object"==typeof t;case E.EVENT:case E.BINARY_EVENT:return Array.isArray(t)&&t.length>0;case E.ACK:case E.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&this.reconstructor.finishedReconstruction()}}class A{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const e=function(e,t){return e.data=function e(t,r){if(!t)return t;if(t&&t._placeholder)return r[t.num];if(Array.isArray(t))for(let i=0;i<t.length;i++)t[i]=e(t[i],r);else if("object"==typeof t)for(const i in t)Object.prototype.hasOwnProperty.call(t,i)&&(t[i]=e(t[i],r));return t}(e.data,t),e.attachments=void 0,e}(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}function L(e,t,r){return e.on(t,r),function(){e.off(t,r)}}const j=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class N extends l.Emitter{constructor(e,t,r){super(),this.connected=!1,this.disconnected=!0,this.receiveBuffer=[],this.sendBuffer=[],this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,r&&r.auth&&(this.auth=r.auth),this.io._autoConnect&&this.open()}subEvents(){if(this.subs)return;const e=this.io;this.subs=[L(e,"open",this.onopen.bind(this)),L(e,"packet",this.onpacket.bind(this)),L(e,"error",this.onerror.bind(this)),L(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){if(j.hasOwnProperty(e))throw new Error('"'+e+'" is a reserved event name');t.unshift(e);const r={type:E.EVENT,data:t,options:{}};if(r.options.compress=!1!==this.flags.compress,"function"==typeof t[t.length-1]){const e=this.ids++,i=t.pop();this._registerAckCallback(e,i),r.id=e}const i=this.io.engine&&this.io.engine.transport&&this.io.engine.transport.writable;return this.flags.volatile&&(!i||!this.connected)||(this.connected?this.packet(r):this.sendBuffer.push(r)),this.flags={},this}_registerAckCallback(e,t){const r=this.flags.timeout;if(void 0===r)return void(this.acks[e]=t);const i=this.io.setTimeoutFn((()=>{delete this.acks[e];for(let t=0;t<this.sendBuffer.length;t++)this.sendBuffer[t].id===e&&this.sendBuffer.splice(t,1);t.call(this,new Error("operation has timed out"))}),r);this.acks[e]=(...e)=>{this.io.clearTimeoutFn(i),t.apply(this,[null,...e])}}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){"function"==typeof this.auth?this.auth((e=>{this.packet({type:E.CONNECT,data:e})})):this.packet({type:E.CONNECT,data:this.auth})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e){this.connected=!1,this.disconnected=!0,delete this.id,this.emitReserved("disconnect",e)}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case E.CONNECT:if(e.data&&e.data.sid){const t=e.data.sid;this.onconnect(t)}else this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case E.EVENT:case E.BINARY_EVENT:this.onevent(e);break;case E.ACK:case E.BINARY_ACK:this.onack(e);break;case E.DISCONNECT:this.ondisconnect();break;case E.CONNECT_ERROR:this.destroy();const t=new Error(e.data.message);t.data=e.data.data,this.emitReserved("connect_error",t)}}onevent(e){const t=e.data||[];null!=e.id&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const r of t)r.apply(this,e)}super.emit.apply(this,e)}ack(e){const t=this;let r=!1;return function(...i){r||(r=!0,t.packet({type:E.ACK,id:e,data:i}))}}onack(e){const t=this.acks[e.id];"function"==typeof t&&(t.apply(this,e.data),delete this.acks[e.id])}onconnect(e){this.id=e,this.connected=!0,this.disconnected=!1,this.emitBuffered(),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach((e=>this.emitEvent(e))),this.receiveBuffer=[],this.sendBuffer.forEach((e=>this.packet(e))),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach((e=>e())),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:E.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let r=0;r<t.length;r++)if(e===t[r])return t.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}}var B=r(32),F=r.n(B);class z extends l.Emitter{constructor(e,t){var r;super(),this.nsps={},this.subs=[],e&&"object"==typeof e&&(t=e,e=void 0),(t=t||{}).path=t.path||"/socket.io",this.opts=t,Object(p.a)(this,t),this.reconnection(!1!==t.reconnection),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor(null!==(r=t.randomizationFactor)&&void 0!==r?r:.5),this.backoff=new F.a({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==t.timeout?2e4:t.timeout),this._readyState="closed",this.uri=e;const s=t.parser||i;this.encoder=new s.Encoder,this.decoder=new s.Decoder,this._autoConnect=!1!==t.autoConnect,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,this):this._reconnection}reconnectionAttempts(e){return void 0===e?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return void 0===e?this._reconnectionDelay:(this._reconnectionDelay=e,null===(t=this.backoff)||void 0===t||t.setMin(e),this)}randomizationFactor(e){var t;return void 0===e?this._randomizationFactor:(this._randomizationFactor=e,null===(t=this.backoff)||void 0===t||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return void 0===e?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,null===(t=this.backoff)||void 0===t||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new P(this.uri,this.opts);const t=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const i=L(t,"open",(function(){r.onopen(),e&&e()})),s=L(t,"error",(t=>{r.cleanup(),r._readyState="closed",this.emitReserved("error",t),e?e(t):r.maybeReconnectOnOpen()}));if(!1!==this._timeout){const e=this._timeout;0===e&&i();const r=this.setTimeoutFn((()=>{i(),t.close(),t.emit("error",new Error("timeout"))}),e);this.opts.autoUnref&&r.unref(),this.subs.push((function(){clearTimeout(r)}))}return this.subs.push(i),this.subs.push(s),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(L(e,"ping",this.onping.bind(this)),L(e,"data",this.ondata.bind(this)),L(e,"error",this.onerror.bind(this)),L(e,"close",this.onclose.bind(this)),L(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){this.decoder.add(e)}ondecoded(e){this.emitReserved("packet",e)}onerror(e){this.emitReserved("error",e)}socket(e,t){let r=this.nsps[e];return r||(r=new N(this,e,t),this.nsps[e]=r),r}_destroy(e){const t=Object.keys(this.nsps);for(const e of t)if(this.nsps[e].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let r=0;r<t.length;r++)this.engine.write(t[r],e.options)}cleanup(){this.subs.forEach((e=>e())),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close"),this.engine&&this.engine.close()}disconnect(){return this._close()}onclose(e){this.cleanup(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn((()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),e.skipReconnect||e.open((t=>{t?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",t)):e.onreconnect()})))}),t);this.opts.autoUnref&&r.unref(),this.subs.push((function(){clearTimeout(r)}))}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const Z={};function U(e,t){"object"==typeof e&&(t=e,e=void 0);const r=function(e,t="",r){let i=e;r=r||"undefined"!=typeof location&&location,null==e&&(e=r.protocol+"//"+r.host),"string"==typeof e&&("/"===e.charAt(0)&&(e="/"===e.charAt(1)?r.protocol+e:r.host+e),/^(https?|wss?):\/\//.test(e)||(e=void 0!==r?r.protocol+"//"+e:"https://"+e),i=n()(e)),i.port||(/^(http|ws)$/.test(i.protocol)?i.port="80":/^(http|ws)s$/.test(i.protocol)&&(i.port="443")),i.path=i.path||"/";const s=-1!==i.host.indexOf(":")?"["+i.host+"]":i.host;return i.id=i.protocol+"://"+s+":"+i.port+t,i.href=i.protocol+"://"+s+(r&&r.port===i.port?"":":"+i.port),i}(e,(t=t||{}).path||"/socket.io"),i=r.source,s=r.id,a=r.path,o=Z[s]&&a in Z[s].nsps;let c;return t.forceNew||t["force new connection"]||!1===t.multiplex||o?c=new z(i,t):(Z[s]||(Z[s]=new z(i,t)),c=Z[s]),r.query&&!t.query&&(t.query=r.queryKey),c.socket(r.path,t)}Object.assign(U,{Manager:z,Socket:N,io:U,connect:U})}])},"object"==typeof exports&&"object"==typeof module?module.exports=s():"function"==typeof define&&define.amd?define("Liveness",[],s):"object"==typeof exports?exports.Liveness=s():i.Liveness=s();var o=function(e,t,r,i){return new(r||(r=Promise))((function(s,n){function a(e){try{c(i.next(e))}catch(e){n(e)}}function o(e){try{c(i.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,o)}c((i=i.apply(e,t||[])).next())}))};const c=window.Liveness,d=e=>{const t=document.createElement("img");switch(t.style.objectFit="cover",t.style.height="100%",t.style.width="100%",t.style.position="relative",t.style.zIndex="1",e){case"green":t.src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjMTRmZmMwIiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=";break;case"red":t.src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjZmY0NzQ3IiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=";break;default:t.src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo="}return t},p={vendor:"ocrlabs",initialise(e){return o(this,void 0,void 0,(function*(){return l(e),{vendor:"ocrlabs"}}))}},l=e=>{const{mountElement:t}=e,r=t.cloneNode(!0);t.parentNode.replaceChild(r,t),r.id="onesdk_idv_container",r.style.height="100%",r.style.minHeight="50px",r.style.width="100%",r.style.position="absolute",r.style.top="0",r.style.left="0",r.style.overflow="hidden",r.style.backgroundColor="#000";const i=document.createElement("div");i.id="onesdk_idv_loader",i.style.position="absolute",i.style.top="20px",i.style.left="50%",i.style.transform="translate(-50%, 0)",i.style.color="#fff",i.style.fontFamily='"Helvetica Neue", Helvetica, Arial, sans-serif',i.style.fontSize="24px",i.innerText="Loading...",r.appendChild(i);const s=document.createElement("video");s.id="onesdk_idv_video",s.autoplay=!0,s.muted=!0,s.style.position="absolute",s.style.top="0",s.style.left="0",s.playsInline=!0,s.style.height="100%",s.style.width="100%",s.style.display="none",s.style.zIndex="1",s.style.objectFit="cover",r.appendChild(s);const n=document.createElement("div");n.id="onesdk_idv_overlay",n.style.position="absolute",n.style.top="0",n.style.left="0",n.style.height="100%",n.style.width="100%",n.style.display="none",n.style.zIndex="2",n.appendChild(d("white")),r.appendChild(n);const a=document.createElement("div");return a.id="onesdk_idv_instructions",a.style.position="absolute",a.style.bottom="20px",a.style.left="50%",a.style.transform="translate(-50%, 0)",a.style.color="#fff",a.style.fontFamily='"Helvetica Neue", Helvetica, Arial, sans-serif',a.style.fontSize="24px",a.style.zIndex="3",r.appendChild(a),u(e),s},h=e=>o(void 0,void 0,void 0,(function*(){const{eventHub:t,mountElement:r}=e,i=document.getElementById("onesdk_idv_container");i&&i.parentNode.replaceChild(r,i);try{yield c.close(),t.emit("session_closed")}catch(e){const{message:r}=e;t.emit("error",new n.$("Error from vendor SDK 'OcrLabs'",{message:r}))}})),u=e=>o(void 0,void 0,void 0,(function*(){const t=new a.B(e.frankieClient),{eventHub:r,recipe:i}=e,{token:s}=yield t.getToken(),o={session_id:s,tx_id:i.biometrics.provider.tx_id};r.emit("session_data_generated",{session:o});const d=document.getElementById("onesdk_idv_video"),p=document.getElementById("onesdk_idv_loader"),l=document.getElementById("onesdk_idv_overlay");c.observer.on("error",(t=>{const{message:i}=t;r.emit("error",new n.$("Error from vendor SDK 'OcrLabs'",{message:i})),h(e)}));try{yield c.createSession("wss://engine.au.v3.liveness.idkit.io",{videoElement:d,auth:o}),p.remove(),d.style.display="block",l.style.display="block",r.emit("ready"),f(e,t)}catch(t){r.emit("session_data_failed_loading",{code:t.code||null,message:t.message}),h(e)}})),f=(e,t)=>o(void 0,void 0,void 0,(function*(){const{eventHub:r,recipe:{biometrics:{is_synchronous:i}}}=e,s=document.getElementById("onesdk_idv_overlay"),p=document.getElementById("onesdk_idv_instructions");s.style.display="block",p.style.display="block";const l=(t,i)=>o(void 0,void 0,void 0,(function*(){const n=c.delay||2e3;return new Promise(((a,l)=>o(void 0,void 0,void 0,(function*(){p.innerText=i,s.removeChild(s.firstChild),s.appendChild(d("white"));try{yield c.detect(t,{retry:!0,timeout:7500}),p.innerText="Thanks!",s.removeChild(s.firstChild),s.appendChild(d("green")),setTimeout((()=>{a(!0)}),n)}catch(t){p.innerText="Something went wrong",s.removeChild(s.firstChild),s.appendChild(d("red")),r.emit("detection_failed",{message:t&&t.message?t.message:null}),setTimeout((()=>{h(e),a(!1)}),n)}}))))}));yield l("face","Position your face within the frame"),yield l("smile","Please give us a BIG Smile!"),r.emit("detection_complete");try{yield h(e);const{checkStatus:s}=yield t.initProcess({isSynchronous:!!i});switch(s){case a.q.PROVIDER_OFFLINE:r.emit("error",new n.$("Error initialising liveness check with OCRLabs. The service doesn't appear to be available.",{checkStatus:s})),h(e);break;case a.q.WAITING_SELFIE_UPLOAD:r.emit("error",new n.$("Error initialising liveness check with OCRLabs. You might need to run the 'ocr' component before running 'biometrics'.",{checkStatus:s})),h(e);break;default:r.emit(i?"results":"processing",{checkStatus:s})}}catch(e){const{message:t}=e;r.emit("error",new n.$("Error calling initProcess",{message:t}))}h(e)}))}}]);
2
3
  //# sourceMappingURL=biometrics-ocrlabs.js.map